Skip to content

직선과 높이가0인 평면과의 교차점 구하기 3D 관련

3차원 공간에서 직선벡터와 높이가(y축이) 0인 평면과의 교차점이 필요해졌다.

정확히 말하자면 카메라 Orbit 회전을 시켜야 하는데

중심점을 고정으로 설정하면 패닝을 하면서 Orbit을 시킬때 좀 어색해 보이기 때문에,

여기저기 찾아본 결과 (내가 수학에 약해서) 간단한 수학 공식을 하나 발견할 수 있었다.

카메라 위치 vCamPosition 과 카메라가 바라보는 방향벡터 vCamDirection 을 가지고 구해야 하는데,

평면과의 교차점은

vIntersec = ( (vCamPosition.x / vCamDirection.x) - (vCamPosition.y / vCamDirection.y),
                      0,
                      (vCamPosition.z / vCamDirection.z) - (vCamPosition.y / vCamDirection.y))

라고 하는데,,, 잘 구해지지 않았다...

나는 솔찍히 수학공식만 보고는 이해가 가지 않았고 -_-;; 그냥 무식한 방법으로 구했다.

그냥 카메라 위치에서 카메라의 전방벡터의 방향으로 벡터길이를 무한연장시키면서

높이가 0인 좌표를 찾아갔다;;;;

카메라의 위치에 따라서 벡터 증가량에 변화를 조금 주니...  15번 내외의 반복 계산량이 나온다

그렇게 구하니까 계산량도 적고 나름 나쁘지 않구나 싶다 ㅎㅎ

Share
Tag :

Leave Comments

T-NAVI