จากวิกิพีเดีย:
ผลคูณไขว้เป็นการดำเนินการไบนารีบนเวกเตอร์สองตัวในปริภูมิแบบยุคลิดสามมิติที่ส่งผลให้เวกเตอร์อื่นตั้งฉากกับระนาบที่มีเวกเตอร์อินพุตสองตัว
เนื่องจากคำจำกัดความถูกกำหนดเฉพาะในมิติสาม ( หรือเจ็ดหนึ่งและศูนย์ ) หนึ่งจะคำนวณผลคูณไขว้ของเวกเตอร์ 2d สองตัวได้อย่างไร
ฉันได้เห็นการใช้งานสองอย่าง หนึ่งส่งคืนเวกเตอร์ใหม่ (แต่ยอมรับเพียงเวกเตอร์เดียว) อีกตัวส่งคืนสเกลาร์ (แต่เป็นการคำนวณระหว่างเวกเตอร์สองตัว)
การนำไปใช้ 1 (ส่งกลับสเกลาร์):
float CrossProduct(const Vector2D & v1, const Vector2D & v2) const
{
return (v1.X*v2.Y) - (v1.Y*v2.X);
}
การนำไปใช้ 2 (ส่งคืนเวกเตอร์):
Vector2D CrossProduct(const Vector2D & v) const
{
return Vector2D(v.Y, -v.X);
}
ทำไมการใช้งานที่แตกต่างกัน? ฉันจะใช้การปรับใช้สเกลาร์เพื่ออะไร ฉันจะใช้การใช้งานเวกเตอร์เพื่ออะไร
เหตุผลที่ฉันถามเพราะฉันกำลังเขียนคลาส Vector2D ด้วยตัวเองและไม่รู้ว่าจะใช้วิธีไหนดี