OpenGL画圆
畫圓:
/*
正四邊形,正五邊形,正六邊形,……,直到正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要求:指定頂點的命令必須包含在glBegin函數(shù)之后,//glEnd函數(shù)之前(否則指定的頂點將被忽略)。并由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命令立即執(zhí)行(而不是讓它們在緩沖區(qū)中等待)}int main(int argc, char *argv[]) {glutInit(&argc, argv);//對GLUT進行初始化,這個函數(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(); //進行一個消息循環(huán)return 0; }當(dāng)n=100時,結(jié)果如下:
GL_POLYGON(填充的多邊形):
其實是利用高中學(xué)過的知識,例如
x=cos(PI/4),y=sin(PI/4),然后就可以確定一個點
tanx=sin x/cos x等等
參考原文鏈接:https://blog.csdn.net/timidsmile/article/details/7016436
總結(jié)
- 上一篇: 单链表中如何快速删除p指向的节点?( 简
- 下一篇: OpenGL画矩形,三角形,点(第一个图