日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

OpenGL画圆

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

畫圓:

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

*/

程序:

#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要求:指定頂點的命令必須包含在glBegin函數之后,//glEnd函數之前(否則指定的頂點將被忽略)。并由glBegin來指明如何使用這些點//GL_POLYGON表示畫多邊形(由點連接成多邊形)for(i=0; i<n; ++i)glVertex2f(R*cos(2*Pi/n*i), R*sin(2*Pi/n*i));glEnd(); glFlush();//保證前面的OpenGL命令立即執行(而不是讓它們在緩沖區中等待)}int main(int argc, char *argv[]) {glutInit(&argc, argv);//對GLUT進行初始化,這個函數必須在其它的GLUT使用之前調用一次glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); //設置顯示方式glutInitWindowPosition(100, 100); glutInitWindowSize(400, 400);glutCreateWindow("第一個OpenGL程序"); //根據前面設置的信息創建窗口。參數將被作為窗口的標題。glutDisplayFunc(&myDisplay); //當需要畫圖時,請調用myDisplay函數glutMainLoop(); //進行一個消息循環return 0; }

當n=100時,結果如下:

GL_POLYGON(填充的多邊形):

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。