반응형
3차원에서 lineP를 지나고 백터가 lineDir인 직선에 점 p를 수직으로 투영하는 문제입니다.
여러 가지 방법이 있겠지만, 간단하게 하려면 점 p를 투영하기 위한 위 그림의 빨간색의 백터와 길이를 구하면 될 것으로 보입니다.
백터와 길이를 구하게 된다면 p + distance*vector로 투영 점의 위치를 구할 수 있습니다.
우선 아래 그림의 Dist는 내적을 이용하여 구할 수 있습니다.
Dist = (lineP-P) • lineDir • : 내적
Dist를 구하면 p를 p'위치로 이동할 수 있고 linep-p'를 이용해서 vector를 구할 수 있습니다.
그리고 linep와 p'의 거리를 구하게 되면 투영에 필요한 distance도 구할 수 있습니다.
p' = p + Dist*lineDir
구해진 vector와 distance를 이용해서 원래 초기 점 p를 line위의 점 p'' 위치로 투영할 수 있습니다.
p'' = p + distance*vector
벡터의 내적을 구하는 공식을 아래글을 통해서 알수 있습니다.
2024.03.12 - [3D Algorithm] - 벡터 내적 외적 계산 공식과 결과 의미
반응형
'3D Algorithm' 카테고리의 다른 글
라디안 각도 변환과 개념(Radian Degree) - 쉽게 그림으로 설명 (0) | 2023.10.26 |
---|---|
3차원 직선 계산 및 벡터 표현(개발자 관점) (0) | 2023.10.26 |
stl, obj 3D 파일 포멧 기본 정보(3D File Format) (0) | 2023.10.23 |
평면 방정식 의미(개발자 관점) (0) | 2023.10.20 |
직선 평면 교차점(Line Plane Intersection) (0) | 2023.10.11 |