Từ wikipedia:
tích chéo là một phép toán nhị phân trên hai vectơ trong không gian Euclide ba chiều dẫn đến một vectơ khác vuông góc với mặt phẳng chứa hai vectơ đầu vào.
Cho rằng định nghĩa chỉ được xác định theo ba ( hoặc bảy, một và không ) chiều, làm thế nào để tính tích chéo của hai vectơ 2d?
Tôi đã thấy hai cách triển khai. Một trả về một vectơ mới (nhưng chỉ chấp nhận một vectơ duy nhất), cái kia trả về một đại lượng vô hướng (nhưng là phép tính giữa hai vectơ).
Triển khai 1 (trả về một đại lượng vô hướng):
float CrossProduct(const Vector2D & v1, const Vector2D & v2) const
{
return (v1.X*v2.Y) - (v1.Y*v2.X);
}
Triển khai 2 (trả về một vectơ):
Vector2D CrossProduct(const Vector2D & v) const
{
return Vector2D(v.Y, -v.X);
}
Tại sao các triển khai khác nhau? Tôi sẽ sử dụng triển khai vô hướng để làm gì? Tôi sẽ sử dụng triển khai vectơ để làm gì?
Lý do tôi hỏi là vì tôi đang tự viết một lớp Vector2D và không biết sử dụng phương thức nào.