OpenGL中设置视角的技巧和如何绕任意边旋转
我没学过计算机图形学,就是项目中要用到OpenGL做一些显示,有如下问题。
1.当画完图形的时候,需要通过gluLookAt来设置视角,如果视角选择得不好,就看不到物体,但是我觉得视角选择是件很麻烦的事,我怎么知道选哪个视角可以看物体看得更好,难道我大概估计地去试,但这也要依据知道画出来的点的坐标范围,请问这有没有什么技巧的?
2.void glRotate{fd}(TYPE angle,TYPE x,TYPE y,TYPE z)
函数中第一个参数是表示目标沿从点(x,y,z)到原点的方向逆时针旋转的角度,后三个参
数是旋转的方向点坐标。比如(1,0,0)就是绕X轴旋转,那我如何让它绕某一线段旋转,不是过原点的,比如画出一个立方体,希望这个立方体绕它的某一条边旋转?
3.当将物体进行旋转和平移之后,物体不再以世界坐标系的原点为中心了,用glScale对物体进行放大缩小,它不是以中心进行放大缩小,一缩小或一放大就会移到其它地方,而不是以坐标系的原点为中心,有什么方法可以解决,难道我每进行一次放大缩小,再计算距离平移到中心?
1.当画完图形的时候,需要通过gluLookAt来设置视角,如果视角选择得不好,就看不到物体,但是我觉得视角选择是件很麻烦的事,我怎么知道选哪个视角可以看物体看得更好,难道我大概估计地去试,但这也要依据知道画出来的点的坐标范围,请问这有没有什么技巧的?
2.void glRotate{fd}(TYPE angle,TYPE x,TYPE y,TYPE z)
函数中第一个参数是表示目标沿从点(x,y,z)到原点的方向逆时针旋转的角度,后三个参
数是旋转的方向点坐标。比如(1,0,0)就是绕X轴旋转,那我如何让它绕某一线段旋转,不是过原点的,比如画出一个立方体,希望这个立方体绕它的某一条边旋转?
3.当将物体进行旋转和平移之后,物体不再以世界坐标系的原点为中心了,用glScale对物体进行放大缩小,它不是以中心进行放大缩小,一缩小或一放大就会移到其它地方,而不是以坐标系的原点为中心,有什么方法可以解决,难道我每进行一次放大缩小,再计算距离平移到中心?
...全文
相关推荐
OpenGL实现鼠标绕任意轴旋转/平移/缩放
OpenGL实现鼠标绕任意轴旋转/平移/缩放 自己封装的鼠标封装的鼠标场景漫游工具类RoamingScenceManager,跟界面没有任何关系,压缩包里面有三个工程,分别是Qt,Win32(原生OpenGL界面),MFC 三个环境,里面都用到了RoamingScenceManager,用法简单,适合刚刚学opengl的新手构建场景。 只会绘制一个三角形,但是想像那些三维软件那样用鼠标控制视角还是有点困难的,所以我就封装了一个场景漫游类:RoamingScenceManager,这个类使用非常方便,跟界面没有半毛钱关系,可以在Qt,原生OpenGL,MFC用,下面的内容是简单介绍怎么用,然后就给出上述三个环境的具体例子。
OpenGL实现鼠标绕任意轴旋转_平移_缩放.rar
亲测好用 自己封装的鼠标封装的鼠标场景漫游工具类RoamingScenceManager,跟界面没有任何关系,压缩包里面有三个工程,分别是Qt,Win32(原生OpenGL界面),MFC 三个环境,里面都用到了RoamingScenceManager,用法简单,适合刚刚学opengl的新手构建场景。
OpenGL图形学实验 正方体绕固定点旋转
定义一个球为中心,一个正方体沿以这个球心为圆心的圆周移动。正方体的正面永远朝向球心进行平滑旋转。
Qt加OpenGL实现鼠标控制视角
里面是一个简单的demo,实现用鼠标控制视角的变换。
OpenGL地球和月亮绕太阳旋转效果
测试环境:xcode13.3 MacPro13-inch2020 M1 OpenGL版本:OpenGL 4.5 语言:c++17 描述:实现地球和月亮绕太阳旋转效果


图形处理/算法
