我想制作像DCC工具一样的目标相机(maya,houdini等......)。事情没有按计划进行。我试过了,但是徒劳无功。 请告诉我该怎么做。
void GLWidget::mouseMoveEvent(QMouseEvent *event)
{
const int dx = event->x() - _lastPosition.x();
const int dy = event->y() - _lastPosition.y();
if (event->buttons() & Qt::LeftButton)
{
QQuaternion q1(QQuaternion::fromAxisAndAngle(_viewCamera->getUpVector(), dx));
_viewCamera->setQuat((_viewCamera->getQuat() * q1));
_viewCamera->setTranslation(q1 * _viewCamera->getTranslation());
QQuaternion q2(QQuaternion::fromAxisAndAngle(_viewCamera->getRightVector(), dy));
_viewCamera->setQuat((_viewCamera->getQuat() * q2));
_viewCamera->setTranslation(q2 * _viewCamera->getTranslation());
}
}
相机有变换。
struct Transform
{
protected:
QVector3 _translation;
QQuaternion _rotation;
QVector3 _scale;
}