當前位置:
首頁 >
OpenGL画圆
發布時間:2025/6/17
32
豆豆
畫圓:
/*
正四邊形,正五邊形,正六邊形,……,直到正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
總結
- 上一篇: 单链表中如何快速删除p指向的节点?( 简
- 下一篇: OpenGL画矩形,三角形,点(第一个图