2016-02-04 82 views
0

我是OpenGL的新手,我的問題似乎很簡單,但我還沒有找到合適的信息。
我試圖通過圍繞y軸旋轉一個三角形來構建自己的錐體。
我有一些描述三角形的(x,y)座標。我的理解,我必須將它們轉換爲(x,y,z)(x*cos(alpha), x*sin(alpha),y),其中alpha[0, 2Pi]之間有一些步驟(讓它成爲Pi/36
接下來,我要列舉獲得頂點來告訴OpenGL如何連接它們。
所以,我的問題是關於如何正確枚舉它們。如何枚舉OpenGL中的頂點

+0

你真的畫了什麼嗎? (例如,你使用glVertex或VBO等,或者你不知道我在說什麼) – Guiroux

+0

@Guiroux,老實說,我沒有適當地使用OpenGL。我使用的是OpenSceneGraph,但它只是一個圍繞OpenGL的庫。我有頂點數組包含所有計算頂點和另一個數組,我應該用第一個數組的頂點的正確索引填充,然後將它們設置爲幾何並啓動畫畫。 – tema

回答

1

這個問題與OpenGL無關; 這個錐體將沒有基礎。

首先創建頂點

int density = 10; 
float3 vertices[]; 
vertices.add(float3(0,0,1)); 
for(int i=0; i<=density; i++) { 
    float alpha = i*2*PI/density 
    vertices.add(float3(cos(alpha), sin(alpha), 0)); 
} 

然後創建索引和三角形

int indices[]; 
for(int i=0; i<density; i++) { 
    //add triangle 
    indices.add(0); 
    indices.add(i); 
    indices.add(i+1); 
} 

然後,你必須在拉伸過程中使用來自vertices[]indices[]數據。

+0

你能解釋爲什麼你的頂點float3(cos(alpha),sin(alpha),0)'有零「z」座標嗎? – tema

+0

我假設z是高度,所以錐體的高度從0到1 –