关于opengl二维图形旋转的问题
可以先设置旋转矩阵,再左乘平移矩阵(平移到这个点的), 再用glloadmatrix即可。
当然你也可以用gltranslate + glrotate不过注意次序,这个用的是是惯性坐标
第二种方案
glLoadIdentity();
glTranslate(鼠标位置,注意windows和你的gl坐标之间的转换);
glRotate(0,0,z当前的选择角, 如果需要动画,就要不断跟新);
绘制直线
第一种方案: z为本帧动画中,直线绕自己中心旋转的角度
cos(z) -sin(z) 0 0
sin(z) cos(z) 0 0
0 0 1 0
0 0 0 1
乘以
1 0 0 直线中点x
0 1 0 直线中点y
0 0 1 0
0 0 0 1
让后取结果的转置矩阵,调用glLoadMatrix(),
最后再绘制直线即可
OpenGL旋转问题!毕设卡住了,急求解答!
OpenGL不是在旋转时对其进行绘制
是每一帧都会对其进行绘制
你在循环中每一次调用绘图函数,OpenGL都会进行绘制
加速的办法:
1.显示列表
2.VA(vertex array)
3.VBO(vertex buffer object)
4.VAO(vertex array object)
亲测在VBO中,绘制100w个+三角形并对其进行变换处理依旧能够进行流畅的渲染