我想繪製帶有三角形風扇的多邊形。我將多邊形看作一個數據結構,並計算邊數,然後是一系列座標。我想通了,它應該工作是這樣的:在OpenGLES中繪製帶有三角形風扇的多邊形
-(void) fillarea:(int16_t) count vertices:(int16_t*) pxyarray {
int valueCount = count*2;
GLfloat vertexBuffer[valueCount];
for (int i=0; i<valueCount; i++) {
vertexBuffer[i] = pxyarray[i];
}
glVertexPointer(2, GL_FLOAT, 0, vertexBuffer);
glDrawArrays(GL_TRIANGLE_FAN, 0, valueCount);
[context presentRenderbuffer:GL_RENDERBUFFER_OES];
}
看來工作完美與三角形,但只要我使用多邊形與多個邊緣(正方形,五邊形,...),他們都再畫一個三角形到0,0的原點。有人可以向我解釋這裏發生了什麼。
如果有幫助,因爲我定義的多邊形一些例子來用這種方法可以得出:
int16_t verticesTriangle[6] = {50,50,100,50,100,100};
[self fillarea:3 vertices:verticesTriangle];
int16_t verticesSquare[8] = {100,100,150,100,150,150,100,150};
[self fillarea:4 vertices:verticesSquare];
int16_t vertices5[10] = {150,50,175,25,200,50,200,100,150,100};
[self fillarea:5 vertices:vertices5];
int16_t vertices6[12] = {250,50,275,25,300,50,300,75,275,100,250,75};
[self fillarea:6 vertices:vertices6];