QT3D с C ++ и вращением - PullRequest
0 голосов
/ 06 апреля 2020

Я надеюсь, что кто-то может помочь мне с этой проблемой. Я новичок в работе с QT3D, и мне нужно создать приложение Qt3D, использующее QT C ++ для задачи, проблема в том, что мне нужно повернуть фигуру из определенной c точки, но она всегда вращается от центральной точки. Как я могу указать, что вращение происходит от одного из стержней на рисунке? Мне нужно, чтобы он мог имитировать движение маятника. Пожалуйста, помогите кому-нибудь, кто скажет мне, как я могу решить эту проблему, вот мой код.

void window::paint(){
    arm1 = new Qt3DExtras::QCylinderMesh();
    arm1->setRadius(0.5);
    arm1->setLength(3);

    arm1Transform = new Qt3DCore::QTransform();
    arm1Transform->setTranslation(QVector3D(-3, 3, 0));
    arm1Transform->setScale(1.5f);

    Qt3DExtras::QPhongMaterial *arm1Material = new Qt3DExtras::QPhongMaterial();
    arm1Material->setDiffuse(Qt::red);

    arm1Entity = new Qt3DCore::QEntity(rootEntity);
    arm1Entity->addComponent(arm1);
    arm1Entity->addComponent(arm1Material);
    arm1Entity->addComponent(arm1Transform);
}

void window::on_pushButton_clicked(){
    arm1Transform->setRotation(QQuaternion::fromAxisAndAngle(QVector3D(1.0f, 0.0f, 0.0f), angle++));
}

Заранее спасибо.

...