使用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后,调用来进行绘制速度更快。