韦德为这个问题的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;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3049 次 |
最近记录: |