我已經試過了3個小時來弄清楚如何使用Bezier曲線公式,glMap1f和glEvalCoord1f來創建曲線形狀。 (我基本上想創建the right of kirby)。如何在OpenGL中繪製2D不規則曲線形狀
但是,我已經取得了一些成功。當我使用glBegin(GL_LINE_STRIP)時,它跟蹤輪廓,但有一個很大的+(像你的x和y軸)。當我嘗試(GL_POLYGON)時,填充工作,但它有一個鑽石連接我使用的4點。
我已經試過了3個小時來弄清楚如何使用Bezier曲線公式,glMap1f和glEvalCoord1f來創建曲線形狀。 (我基本上想創建the right of kirby)。如何在OpenGL中繪製2D不規則曲線形狀
但是,我已經取得了一些成功。當我使用glBegin(GL_LINE_STRIP)時,它跟蹤輪廓,但有一個很大的+(像你的x和y軸)。當我嘗試(GL_POLYGON)時,填充工作,但它有一個鑽石連接我使用的4點。
我發現了什麼問題。原來我錯誤地使用了sizeof(array)
。 (比較特別,參照下面的代碼,而不是使用i < numCurves
,我天真試圖做i < sizeof(points)
)
因此,代替繪圖4-5分,我結束了繪製曲線192,導致奇怪的結果。中間的鑽石是由於沒有連接回到起點。對於誰願意做這個未來的人蔘考,下面的代碼:
錯誤的圖片:
Erroneous Picture http://img535.imageshack.us/img535/8207/failfd.png
最終產品:
Final Product http://img685.imageshack.us/img685/7641/finalsa.png
void drawIrregularPolygon(GLfloat points[][4][3], int numCurves)
// REQUIRES: GLfloat points to be a polygon and center of circle to be current matrix
// EFFECTS: An irregular shape would be drawn
{
for (int i = 0; i < numCurves; i++)
{
glMap1f(GL_MAP1_VERTEX_3, 0.0f, 1.0f, 3, 4, &points[i][0][0]);
glBegin(GL_POLYGON); //replace GL_POLYGON with GL_LINE_STRIP if you need outline
for (int j = 0; j <= TOTAL_SEGMENTS; j++)
glEvalCoord1f((GLfloat) j/TOTAL_SEGMENTS);
glVertex2f(points[0][0][0], points[0][0][1]);
glEnd();
}
}
你可以發表圖片顯示您的問題或描述再來一點 ?無法弄清楚你想達到什麼以及你得到什麼。鏈接不起作用。 – neodelphi
與圖像鏈接中斷 –
@VJo:圖像修復。 – genpfault