2012-06-18 2 views
0

두 점 사이에 선이 그려져 있습니다. A와 B를 말하자면 Cocos2d에서 라인의 중간 점을 쉽게 잡을 수 있고이 벡터와 수직 벡터를 매우 쉽게 계산할 수 있습니다. 그러나 나의 수학 능력은 매우 녹슬었고 나는 다음과 같이하는 방법을 모른다.cocos2d를 통해 라인의 절반에 수직으로 점을 그려야합니다.

A와 B 사이의 거리가 50이므로 중간 점은 25입니다.이 선에 수직 인 점을 10 점 떨어진 거리에 배치하고 싶습니다.

 C 
    /\ 
    / \ 
/ \ 
/  \ 
/  \ 
A------------B 

끔찍한 예제로 미안하지만 어떻게해야할지 모르겠다. 또한 AB 라인은 항상 어느 각도에서 보입니다. 중간 m 및 수직 벡터 v을 감안할 때

답변

1

, 당신은 v을 정상화하고 m에서 v의 방향으로 이동해야합니다. 이 같은 뭔가 :

Vector2d nv = v/v.length(); // Assuming Vector2d is your vector class and length gives the length of v 
Point2d newPoint = m + (nv * 10.0); // Assumes you can multiply a vector by a scalar 

당신이 C++에서 작동하지 않는 경우가있을 수는 다음과 같이 수동으로 작성 :

Vector2d nv; 
nv.x = v.x/v.length(); 
nv.y = v.y/v.length(); 
newPoint.x = m.x + nv.x * 10.0; 
newPoint.y = m.y + nv.y * 10.0; 
관련 문제