백터의 내적을 구하는 공식은 다음과 같다.
$$ \vec A \cdot \vec B = |\vec A||\vec B|cosθ = x|\vec B| \frac{y}{x} = y|\vec B| $$
그러나 MiniRT 관련 레퍼런스에서 벡터의 내적을 구하는 함수에서는 수식이 다르게 정의되어 있다.
double vdot(t_vec3 vec, t_vec3 vec2)
{
return (vec.x * vec2.x + vec.y * vec2.y + vec.z * vec2.z);
}
$$ A \cdot B = A.x \times B.x + A.y \times B.y $$
이는 벡터를 구하는 공식이 한 개가 아니기 때문이다.
$$ A \cdot B = A.x \times B.x + A.y \times B.y $$
기하학적인 의미를 보여주지는 않지만, 두 벡터 간의 내적이 벡터 크기 배율을 가진 벡터 간 각도의 코사인 임을 알 수 있다.
https://t1.daumcdn.net/cfile/tistory/99A8053D5C4183BC3A
$$ \vec A \cdot \vec B = |\vec A||\vec B|cosθ = x|\vec B| \frac{y}{x} = y|\vec B| $$
https://t1.daumcdn.net/cfile/tistory/99ECB2355C41843741
$$ |D|=|A| \times cosθ $$
여기서 A의 크기가 아닌, A를 분해한 벡터 D의 크기를 곱해주는 이유는
B 벡터에 실제로 영향을 주는 벡터가 D이기 때문이다.
벡터 C는 벡터 B의 방향으로 어떤 영향도 주지 못하기 때문에, 내적 계산에서 무시한다.