明镜止水

知行合一

统计

留言簿

阅读排行榜

评论排行榜

OpenGL入门技巧——圆形绘制与渲染

Qt和其他众多库中,圆形绘制可能并不困难,但是OpenGL不是,因为OpenGL中的一切图形都是基于面和坐标。
渲染一个正方形或者正方体并不困难,只需要指出4或6或8个点,也就是顶点数组,就能看出效果。
但是对于初学者来讲,很难想到该如何渲染一个圆。
其实,只需要增加点数,同时调用正余弦函数,创建圆形顶点数组的简单代码如下:
        int i;
/*
为了尽量近似圆形,需要360个点。
每个点有两个值:x轴和y轴,所以需要计算720个数值。
*/
for (i = 0; i < 720; i += 2) {
   // x value
   vertices[i]   = (cos(DEGREES_TO_RADIANS(i/2)) * 1);
   // y value
   vertices[i+1] = (sin(DEGREES_TO_RADIANS(i/2)) * 1);
}
之后,在渲染函数里面加上:
        glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_FLOAT, 0, vertices);
颜色渲染方面还是按照常规的步骤:
glClearColor(0.5f, 0.7f, 0.9f, 1.0f);   //指定颜色
        glClear(GL_COLOR_BUFFER_BIT);   //刷出颜色
注意,绘制圆形的时候选定好绘制方式,不然可能绘制出的只是一系列点,在屏幕上显示不明显,误以为代码错误。
        glDrawArrays(GL_TRIANGLE_FAN, 0, 360);   //这个绘制方法可以理解为连续填充绘制,绘制出的是完整的圆形,不是离散的点

写这篇的原因是,我绘制圆形的时候找了很久才拼凑起有效的方法,算是半个原创吧,希望更多的人能更容易得搜索到,节省时间。

posted on 2012-08-31 10:59 寒璿 阅读(2660) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理