wikipedia에서 :
외적은 3 차원 유클리드 공간 에서 두 벡터에 대한 이항 연산으로 , 두 입력 벡터를 포함하는 평면에 수직 인 또 다른 벡터를 생성합니다.
정의가 3 차원 ( 또는 7 차원, 1 차원 및 0 차원) 으로 만 정의된다는 점을 감안할 때 두 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 클래스를 직접 작성하고 어떤 방법을 사용해야할지 모르기 때문입니다.