본문 바로가기
Computation Geography

3. 외적 ( Cross Product )

by SimonLee 2023. 9. 1.

두 벡터의 외적 (Cross Product)는 다음과 같이 정의 합니다.

 

외적 연산자는 X 입니다.

내적과 마찬가지로 U, V는 벡터이며, 외적의 결과는 2차원인 경우 스칼라 값이며 3차원인 경우 벡터 입니다.

2차원 벡터의 외적을 구하는 방법은 다음과 같습니다.

 

3차원 벡터의 외적을 구하는 방법은 다음과 같습니다.

 

 

외적의 연산 법칙은 다음과 같습니다.

1) 교환법칙이 성립하지 않습니다.

2) 분배 법칙이 성립합니다.

3) 결합법칙은 성립하지 않습니다.

4) 같은 벡터를 외적하면 0 벡터가 됩니다.

 

외적이 기하학적으로 의미하는 중요한 2가지는 다음과 같다.

1) A X B = A, B벡터가 이루는 평행사변형의 넓이와 같습니다.

2) A ,B의 외적 값은 A, B벡터와 수직인 벡터 C의 길이와 같다. 

벡터 C의 길이는 평행사변형의 크기와도 같습니다.

 

 

연습해 봅시다.

vector A(2, 0, 0)  Vector B (0, 2, 0)를 외적한 벡터C가 수직임을 확인해 봅니다.

검은색 선 A, B(검정)의 외적 한 결과 C(파랑)는 A, B 벡터의 수직 임을 확인했습니다.

 

다음은 외적을 구하는 코드 입니다.

public static float crossProduct2D(Vector2f v1, Vector2f v2)
{
    return (v1.x * v2.y) - (v1.y * v2.x);
}

public static Vector3f CrossProduct3D(Vector3f v1, Vector3f v2)
{
    float x_, y_, z_;
    x_ = (v1.y * v2.z) - (v1.z * v2.y);
    y_ = (v1.z * v2.x) - (v1.x * v2.z);
    z_ = (v1.x * v2.y) - (v2.x * v1.y);
    return new Vector3f(x_, y_, z_);
}