opengl學習筆記(四)——繪製簡單多邊形

來源:互聯網
上載者:User

glBegin函數還提供了以下幾個參數來畫出凸多邊形。所謂凸多邊形,是指它要滿足如下性質:把該多邊形任意一邊向兩方無限延長成為一條直線後,其他各邊均在此直線的同側。

(1)GL_POLYGON,這個參數用後面的頂點列表畫出一個凸多邊形。

例子代碼:

void display(void){glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON);glVertex2f(-0.5, -0.5); //點P1,左下角glVertex2f(-0.5, 0.5);  //點P2,左上方glVertex2f(0.5, 0.5);   //點P3,右上方            glVertex2f(0.5, -0.5); //點P4,右下角glEnd();glFlush(); }

運行效果如1所示:(紅色文字為我所加,不是實際運行效果,下同)

                             圖1 內部填充為白色的矩形

預設情況下,opengl在畫多邊形時,會自動用指定顏色(預設為白色)填充其內部。如果想只顯示多邊形的邊線而不填充其內部,可以在glBegin函數之前加上一句

glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);    這個語句的作用告訴opengl只畫出邊框,但不填充內部。運行效果如下:

              圖 2  矩形線框 

本節中後面的例子都設定為線框模式,不再贅述。

(2)GL_TRIANGLES ,將每3個頂點為一組畫出一個三角形,如果剩餘的頂點個數不足3個則忽略。運行效果如下所示:

(3)GL_TRIANGLES_STRIP 於GL_LINE_STRIP類似,畫出頂點列表中所有由任意連續三點所組成的三角形。在本例裡即依次畫出三角形P1P2P3, P2P3P4 運行效果如下所示。

(4)GL_TRIANGLE_FAN

所有三角形都以第一點為頂點,另外兩個頂點為連續頂點。即畫出P1P2P3,P1P3P4。效果如下所示:

(5) GL_QUADS:每4個頂點為一組畫出一個四邊形。如果剩餘點數不足4個,則忽略。

(6) GL_QUAD_STRIP:每兩個頂點為一組,任意連續的兩組畫出一個四邊形。如果有8個點為P1到P8,則最後畫出3個4邊形:

P1P2P3P4,

P3P4P5P6,

P5P6P7P8。

opengl還提供了一個直接畫矩形的函數系列

glRect[sifd],中括弧裡的字元代表參數類型

s:short 短整型

i:integet 整型

f:float浮點型

d:double 雙精確度型。

例如下面的代碼畫出一個矩形框,左下角為(-0.5,-0.5),右上方為(0.5, 0.5)

void display(void){    glClear(GL_COLOR_BUFFER_BIT); glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);    glRectf(-0.5f,-0.5f,0.5f,0.5f);glFlush(); }

效果和上面的圖2類似。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.