1)我知道箭头的起点和终点。
我不知道怎么画箭头。我假设头部的另外两个点与终点成45度角。
有人知道做这件事所需的公式吗?
发布于 2009-10-26 11:00:23
对于这个问题的OpenGL部分,Wade给出了一个很好的答案;我将尝试回答向量数学部分。下面是我脑海中的一些伪代码:
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;
}
发布于 2009-10-26 09:51:38
为什么这不起作用呢?
1)为头部画一个三角形(意思是用GL_TRIANGLES画,而不是画3条线段组成一个三角形)
2)绘制一条从三角形底面中点延伸的线段。
https://stackoverflow.com/questions/1622762
复制相似问题