Qt调用camera实现3D漫游有关问题求教
Qt调用camera实现3D漫游问题求教
小弟最近在学Qt3D绘图部分内容,已经实现了Qt画立方体、圆柱体等,圆柱体如图
现在想加入鼠标按键控制,参考CSDN某大神的3D漫游例程http://blog.csdn.net/lovehota/article/details/17374303?reload
按照例程说明把glcamera、鼠标按键类都添加到3D圆柱体的工程下,显示部分代码如下
鼠标按键部分代码和例程中是一样的,结果代码运行结果为开始圆柱体所示,点击鼠标也没有反应,我怀疑是上述显示部分代码出现了问题,反复找了很长时间也没发现问题出在哪,小弟初学Qt,恳请论坛大神为小弟指点迷津,小弟不胜感激
------解决方案--------------------
这种情况需要在mousePressEvent中逐个通过qDebug( )输出来判断,或者更直接的调试一下吧。
小弟最近在学Qt3D绘图部分内容,已经实现了Qt画立方体、圆柱体等,圆柱体如图
现在想加入鼠标按键控制,参考CSDN某大神的3D漫游例程http://blog.csdn.net/lovehota/article/details/17374303?reload
按照例程说明把glcamera、鼠标按键类都添加到3D圆柱体的工程下,显示部分代码如下
void WidgetCylinder::initializeGL()
{
//初始化相机
Vector3d pos(0.0, 0.0, 12.0);
Vector3d target(0.0, 0.0, 0.0);
Vector3d up(0.0, 1.0, 0.0);
camera = new GLCamera(pos, target, up);
}
void WidgetCylinder::resizeGL(int width, int height)
{
//防止窗口大小为0
if(height == 0)
{
height = 1;
}
glViewport(0,0,(GLint)width,(GLint)height);
camera->setShape(40.0, (GLfloat)width/(GLfloat)height, 0.1, 100.0);
//选择模型观察矩阵
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void WidgetCylinder::paintGL()
{
//清除屏幕和深度缓存
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
camera->setModelViewMatrix();
//移动到屏幕背后足够距离以便能看到全部场景
glTranslatef(0.0f, 0.0f, -10.0f-40);
DrawSolidCylinder(cylinderTissuecenterPos[0],cylinderTissuecenterPos[1],cylinderTissuecenterPos[2],cylinderTissueAxisLength[0],cylinderTissueAxisLength[1],cylinderTissueAxisLength[2],
26);
}
鼠标按键部分代码和例程中是一样的,结果代码运行结果为开始圆柱体所示,点击鼠标也没有反应,我怀疑是上述显示部分代码出现了问题,反复找了很长时间也没发现问题出在哪,小弟初学Qt,恳请论坛大神为小弟指点迷津,小弟不胜感激
------解决方案--------------------
这种情况需要在mousePressEvent中逐个通过qDebug( )输出来判断,或者更直接的调试一下吧。