문제
1) 나는 화살표의 시작점을 알고 있으며 엔드 포인트를 알고 있습니다.
나는 화살의 머리를 그리는 방법을 모른다 .. 나는 머리의 다른 두 지점이 끝점에서 45도 각도라고 가정한다.
이 작업을 수행하는 데 필요한 공식을 아는 사람이 있습니까?
해결책
Wade는이 질문의 OpenGL 부분에 대한 좋은 답변을 제공합니다. 벡터 수학 부분에 대답하려고합니다. 여기 내 머리 꼭대기에서 일부 의사 코드가 있습니다.
Triangle GenerateArrowHead(vec2 p1, vec2 p2)
{
// Compute the vector along the arrow direction
vec2 v = Normalize(p2 - p1)
// Compute two perpendicular vectors to v
vec2 vPerp1 = vec2(-v.y, v.x)
vec2 vPerp2 = vec2(v.y, -v.x)
// Compute two half-way vectors
vec2 v1 = Normalize(v + vPerp1)
vec2 v2 = Normalize(v + vPerp2)
Triangle tri;
tri.a = p2;
tri.b = p2 + ArrowHeadSize * v1;
tri.c = p2 + ArrowHeadSize * v2;
return tri;
}
다른 팁
왜 이것이 작동하지 않습니까?
1) 머리의 삼각형을 그리십시오 (GL_TRIANGLES로 그리기, 삼각형을 형성하는 3 개의 선 세그먼트를 그리는 것을 의미합니다)
2) 삼각형의 바닥의 중간 점에서 연장되는 선 세그먼트를 그립니다.
제휴하지 않습니다 StackOverflow