日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenGL画圆

發(fā)布時間:2025/6/17 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenGL画圆 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

畫圓:

/*
正四邊形,正五邊形,正六邊形,……,直到正n邊形,當(dāng)n越大時,這個圖形就越接近圓
當(dāng)n大到一定程度后,人眼將無法把它跟真正的圓相區(qū)別
這時我們已經(jīng)成功的畫出了一個“圓”
(注:畫圓的方法很多,這里使用的是比較簡單,但效率較低的一種)

*/

程序:

#include <GL/glut.h>#include <math.h> const int n = 6; const GLfloat R = 0.5f; const GLfloat Pi = 3.1415926536f; void myDisplay(void) {int i;glClear(GL_COLOR_BUFFER_BIT); //清除顏色glBegin(GL_POINTS);//OpenGL要求:指定頂點(diǎn)的命令必須包含在glBegin函數(shù)之后,//glEnd函數(shù)之前(否則指定的頂點(diǎn)將被忽略)。并由glBegin來指明如何使用這些點(diǎn)//GL_POLYGON表示畫多邊形(由點(diǎn)連接成多邊形)for(i=0; i<n; ++i)glVertex2f(R*cos(2*Pi/n*i), R*sin(2*Pi/n*i));glEnd(); glFlush();//保證前面的OpenGL命令立即執(zhí)行(而不是讓它們在緩沖區(qū)中等待)}int main(int argc, char *argv[]) {glutInit(&argc, argv);//對GLUT進(jìn)行初始化,這個函數(shù)必須在其它的GLUT使用之前調(diào)用一次glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); //設(shè)置顯示方式glutInitWindowPosition(100, 100); glutInitWindowSize(400, 400);glutCreateWindow("第一個OpenGL程序"); //根據(jù)前面設(shè)置的信息創(chuàng)建窗口。參數(shù)將被作為窗口的標(biāo)題。glutDisplayFunc(&myDisplay); //當(dāng)需要畫圖時,請調(diào)用myDisplay函數(shù)glutMainLoop(); //進(jìn)行一個消息循環(huán)return 0; }

當(dāng)n=100時,結(jié)果如下:

GL_POLYGON(填充的多邊形):

其實是利用高中學(xué)過的知識,例如
x=cos(PI/4),y=sin(PI/4),然后就可以確定一個點(diǎn)
tanx=sin x/cos x等等
參考原文鏈接:https://blog.csdn.net/timidsmile/article/details/7016436

總結(jié)

以上是生活随笔為你收集整理的OpenGL画圆的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。