Почему моя стрелка рисует неправильный путь? - PullRequest
2 голосов
/ 21 мая 2011

У меня есть этот код для рисования стрелки:

  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 Ответ

3 голосов
/ 21 мая 2011

Ваша полоса треугольника сначала берет три нижние точки (то есть нижнюю часть вашей зеленой стрелки), а затем три правильные точки. Просто измените порядок точек в вашем определении:

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