2014-03-31 3 views
3

본질적으로 직사각형 비행기가 항상 얼굴을 향하게합니다.사각형 모서리 찾기, 평면 방정식, 높이 및 너비

1) I 의해 내 평면 방정식 (AX +를 발견 + CZ + D = 0)

2)은 사각형의 중심점 (P0 = (X0, Y0, Z0))를 가지고있는 비행기에 눕는다.

3) 사각형의 너비와 높이가 있습니다. (W, H)

4) 직사각형의 상단 두 모서리가 동일한 Y 값을 가짐을 알고 있습니다. 하단 두 모서리에도 적용됩니다. (Y는 위, 아래 축, 직사각형 위쪽과 아래쪽 선은 항상 x, z 평면과 평행합니다.)

네 모서리 C1, C2의 x, y, z 값을 찾는 방법을 아는 사람이 있습니까? , C3, C4?

답변

2

평면 중심에서 직면 할 대상까지의 벡터를 계산합니다. 그 벡터를 V라고 부른다. 그런 다음 정규화 (V) = (a, b, c)와 d = - a * x0 - b * y0 - c * z0. 비행기의 방정식이 있습니다.

이제 원하는대로 평면을 회전 할 수 있습니다. 평면을 0 롤로 만들려면 (즉, 요와 피치 만 수정하면) 세계의 "교차"벡터 (0,0,1)와 정규화 (V)의 표준화 된 교차 곱을 가져 와서 사각형의 수평 벡터 U. 정규화 (V)와 U의 정규화 된 교차 곱을 취하여 사각형의 수직 벡터 W를 구합니다. 하여 사각형

모서리들은 이제 :

C1 = P0 + (폭/2) * U + (높이/2) * W
C2 = P0 + (폭/2) * U - (높이/2) * W
C3 = P0 - (폭/2) * U + (높이/2) * W
C4 = P0 - (폭/2) * U - (높이/2) * W

사각형이 직면하고있는 물체의 바로 위나 아래에있을 때이 접근법은 특이점을 가지고 있음에 유의하십시오. 적절한 경우 해당 사항을 확인하고 시나리오를 처리해야합니다.

+0

고마워요! 이것은 훌륭하게 작동합니다. 교차 제품 수학에 관한 모든 것을 잊었습니다. 방정식을 명확하게하기. C1 = P0 + (너비/2 * U) + (높이/2 * W) – diox8tony

+0

@ diox8tony 아 나는 수직 벡터에 W를 사용하고 W를 사용하지 않았다. 예, 방정식의 첫 번째 W는 너비입니다. –