在opengl ES中画一个箭头

Mel*_*Mel 3 iphone opengl-es

1)我知道箭头的起点,我知道终点.

我不知道如何绘制箭头...我假设头部的另外两个点距终点是45度角...

有人知道这样做的公式吗?

pri*_*out 8

韦德为这个问题的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)