为什么我的箭头绘制错误?

时间:2011-05-21 18:35:05

标签: c opengl-es 2d vertices

我有这个代码画一个箭头:

  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);

应该类似于此绘制:
good arrow

这是实际结果(这是不希望的):
wrong arrow

我没有看到我做错了什么,顶点看起来对我来说是正确的,但似乎OpenGL以不同于我指定的顺序绘制多边形。谁能帮我吗?提前致谢。 :)

1 个答案:

答案 0 :(得分:3)

您的三角形条首先取下三个点(即绿色箭头的下半部分),然后取右三个点。只需更改定义中的点顺序:

const GLfloat vertices[] = {
  -0.25f,  -0.25f,
  0.0f,    0.0f,
  0.0f,    0.5f,
  0.25f, -0.25f,
};