读书人

使用OpenGL描画图形后图形平面旋转的

发布时间: 2012-02-13 17:20:26 作者: rapoo

使用OpenGL描画图形后,图形平面旋转的问题
使用glNewList();方法描画了一组多边形。
想通过定时器线程,让这组多边形以指定一点为圆心做平面的360度旋转。
(类似表针转动,指定的点在多边形之外)
如何实现呢?
(我是刚解除OpenGL的,请各位大侠指导)。

[解决办法]
用一个变换矩阵啊

用时间函数或者其他的消息函数来控制矩阵,它就旋转了

opengl很多的例子演示旋转的效果的啊


自己尝试做, 不要一行代码不写, 就来要答案
尝试不通过,拿有问题的代码来提问
[解决办法]
指定点圆心为Center(cx, cy, cz)
theta为每次绘制要旋转的角度
下面是主要显示函数
void display() {
glLoadIdentity();
glRotatef(theta, cx, cy, cz);

...

theta++;
//swap buffers
}
[解决办法]
LZ去网上找类似代码改改也比什么都不做上来就问强啊?
http://nehe.gamedev.net/
[解决办法]
在void DrawScene()中:

glPushMatrix();

latitude += latinc;
longitude += longinc;

polarView( radius, 0 );
m_pChartDraw-> DrawPOLYGON( test ); // 这里只是生成一个list,并没有进行绘制
// 换成 glCallList(m_pChartDraw-> DrawPOLYGON( test ));
glPopMatrix();

而且生成list一般都只执行一次,你这个是屏幕每刷新一次都要产生一个list,这跟使用list的原意相差太大了,因为生成list比一般的绘制更耗资源,但是生成好list后,调用来进行绘制速度更快。

读书人网 >网络游戏

热点推荐