2

私は矢印を描くためにこのコードを持っています:

  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 が指定した順序とは異なる順序でポリゴンを描画しているようです。誰でも私を助けることができますか?前もって感謝します。:)

4

1 に答える 1

3

トライアングル ストリップは、最初に下の 3 点 (つまり、緑の矢印の下部) を取得し、次に右の 3 点を取得します。定義内のポイントの順序を変更するだけです:

const GLfloat vertices[] = {
  -0.25f,  -0.25f,
  0.0f,    0.0f,
  0.0f,    0.5f,
  0.25f, -0.25f,
};
于 2011-05-21T18:39:55.723 に答える