2013-07-24 4 views

답변

3

정규화 길이를 갖는다. 수직 벡터를 계산하려면 (0, 0, 1) 인 교차 곱을 사용할 수 있습니다.

d_left = (-d.y, d.x) 
d_right = (d.y, -d.x) 

당신은 당신의 좌표계가 정렬되는 방식 때문에 d_leftd_right 그 반대가 될 수도 있습니다 말했다하지 않은 : 어느 발생합니다.

그런 다음에 원하는 포인트를 얻을 :

A = p0 + d_left 
B = p0 + d_right 
C = p1 + d_left 
D = p1 + d_right 
0

한다고 가정 rotate(p,d)p 벡터 d 각도를 회전하는 연산자입니다.

그리고, 의 기울기가인 경우, x이된다. 그러면,

A = p0 + rotate (p1-p0, pi/2)/| p1-p0 |
B = p0 + rotate (p1-p0, -pi/2)/| p1-p0 |
C = p1 + rotate (p1-p0, pi/2)/| p1-p0 |
D = p1 + rotate (p1-p0, -pi/2)/| p1-p0 |

관련 문제