我有这个代码画一个箭头:
const GLfloat vertices[] = {
-0.25f, -0.25f,
0.0f, 0.0f,
0.25f, -0.25f,
0.0f, 0.5f,
};
glVertexPointer(2, GL_FLOAT, 0, vertices);
glEnableClientState(GL_VERTEX_ARRAY);
glColor4f(0.0f, 0.5f, 0.0f, 1.0f);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
应该类似于此绘制:
这是实际结果(这是不希望的):
我没有看到我做错了什么,顶点看起来对我来说是正确的,但似乎OpenGL以不同于我指定的顺序绘制多边形。谁能帮我吗?提前致谢。 :)
答案 0 :(得分:3)
您的三角形条首先取下三个点(即绿色箭头的下半部分),然后取右三个点。只需更改定义中的点顺序:
const GLfloat vertices[] = {
-0.25f, -0.25f,
0.0f, 0.0f,
0.0f, 0.5f,
0.25f, -0.25f,
};