본문 바로가기

분류 전체보기92

8. Line, Plane간 Angle 구하기 Line, Plane 간 Angle을 구해봅시다. 삼각함수를 사용하여 각도를 계산하는데, 삼각함수에서 사용하는 세타 값은 호도법을 사용한 각도 이므로, 이를 육십분법으로 변환하는 과정이 필요합니다. 그래서 호도법에 대해서 먼저 알아야 합니다. 호도법은 원의 호를 사용하여 각도를 표시하는 방법입니다. 변환하는 과정만 알면 되므로 이를 코드로 변환하면 다음과 같습니다. 라디안 --> 디그리(도) 변환시 사용 - 1 rad = (180 / 파이) 디그리(도) --> 라디안 변환시 사용 - 1 degree = (파이 / 180) public static float DegreeToRadian(float angle) { return angle * ((float)Math.PI / 180.0f); } public st.. 2023. 9. 14.
7. 두 점(Point)의 교점 구하기 두직선의 교점을 구해보자. 다음과 같이 Point A, B로 이루어진 Line A과 Point C, D로 이루어진 Line B가 있다고 가정하자. 여기서 Line은 Line segment가 아닌 양방향으로 무한대로 뻗어나가는 직선입니다. P라는 교차점 있습니다. P점은 AB Line 위에 존재 합니다. AB라인의 식을 사용해서 P점을 나타내면 P(t) = (B - A) * t + A 또한 P점은 CD Line 위에 존재 합니다. CD라인의 식을 사용해서 P점을 나타내면 P(t) = (D - C) * t + C 여기서 CD의 법선벡터 N이 있다고 가정합니다. CD 라인과 법선벡터 N은 서로 수직(Perpendicular)이며, 내적(dotproduct)의 성질인 서로 수직인 벡터를 내적하면 0 임을 이용하.. 2023. 9. 13.
6. 면 (Plane) Plane을 만들수 있는 방법은 다음과 같다. 1> Point 3개로 이루어진 면 2> Point 1개와 Line 2개 3> Line 2개 Line 을 만들때 Point 2개가 필요하므로, Point 1개가 추가로 더 필요하다. 면을 기하적으로 표현하면 아래와 같다. Plane 방정식 다음과 같다. - P, Q는 Plane에 포함된 서로 다른 Point. - n은 P, Q와 수직인 노멀 벡터 평면의 방정식을 좌표를 넣어서 풀어보면 ax + by + cz = d 형태의 식으로 나타낼 수 있습니다. - a, b, c 는 normal vector(n)의 구성 요소 입니다. - d의 상수값은 normal vector(n)과 point (q)의 내적으로 이루어짐을 알 수 있습니다. 코드에서는 Plane을 내부적으.. 2023. 9. 11.
5. 선 (Line), 선과 선의 교차점 체크하기 선을 표현하는 3가지 방식이 있습니다. Line (직선) : 선의 양방향이 무한대로 뻗어나가는 선 Ray (반직선) : 선의 한쪽 방향으로만 무한대로 뻗어나가는 선 Line Segment (선분) : 선의 양 끝점이 고정된 선.\ 선(Line)의 방정식은 다음과 같이 표현합니다. c = vt + a v는 방향 벡터을 의미합니다. 위의 변수 t 값의 의미는 v 벡터 방향으로 얼마나 떨어져 있는가를 말합니다. 특정 방향으로 얼마만큼 떨어져 있는 벡터 값에 a 점의 위치와 더해서 새로운 지점 c 를 만듭니다. 3차원인 좌표에 대해서는 t에 대해서 다음과 같이 정리할수 있습니다. 1) 값이 (4, -1, 3)인 점 p를 통과하고 벡터(1, 4, -3)에 평행한 직선의 방정식을 찾아보세요. 2) 다음 두 직선의 .. 2023. 9. 9.