두 벡터의 사이각 계산은 아래글을 통해 설명을 했었습니다.
2024.01.17 - [3D Algorithm] - 두 벡터 사이각(내적, 외적 활용)
이번 글은 아래 그림과 같이 벡터 AC와 CB를 알고 A 각을 알고 있을 때 AB에 해당하는 벡터를 계산하는 식을 알려드리겠습니다.
사실 벡터 AC와 A각을 알면 AB에 해당하는 벡터를 계산할 수 있습니다. 백터 AB를 계산하기 위해 CB의 벡터를 계산해야 하는데 2차원에서 CB 벡터는
벡터 AC: x, y 이면
벡터 CB: -y, x 가 되고,
3차원에서는 AC 벡터와 사용자 view 벡터의 외적을 하면 벡터 CB를 계산할 수 있습니다. AC 벡터와 사용자 view 벡터로 이루어진 평면의 법선 벡터가 CB라고 보시면 이해하실 거라 생각합니다.
이렇게 벡터 AC, CB를 알고 A의 사이각을 알 때 벡터 AB는 다음과 같은 식을 이용하여 계산할 수 있습니다.
AB = AC*cos(θ) + CB*sin(θ)
벡터 AC, CB는 길이가 1인 단위벡터로 계산하셔야 합니다. 벡터 AB가 구해지면 B에 위치는 임의의 길이 l에 의해 다음과 같이 계산됩니다.
B = A + AB*l
간단하게 3차원 상에서 예를 들어,
벡터 AC(1,0,0), CB(0,1,0) 일 때 A 각 30도일 때를 계산해 보면,
이 경우는 view direction은 (0,0,1)로 계산이 될 것입니다. 외적 계산 순서에 의해 (0,0,-1)로 계산 될 수도 있습니다.
AB = (1,0,0) * cos(30) + (0,1,0) * sin(30)
이 식을 계산하면 벡터 AB는 대략 (0.866, 0.5, 0.0)으로 계산이 됩니다.
'3D Algorithm' 카테고리의 다른 글
직선 삼각형 교차점 계산(Ray Triangle Intersection) (0) | 2024.03.21 |
---|---|
벡터 내적 외적 계산 공식과 결과 의미 (0) | 2024.03.12 |
비율(ratio)을 이용한 3차원 점 이동 (0) | 2024.02.20 |
3차원 스케일(Scale)과 비율(Ratio) (0) | 2024.02.20 |
행렬식(Determinant)과 외적/내적 관계 (0) | 2024.02.06 |