2016-04-06 20 views
1

IQTatrix4x4, QT'de QTorusMesh gibi Mesh nesnesine nasıl uygulanır?

0.866 gibi nesne için bir 4x4 matris dönüşümleri,       0,           0,5,               0,
-0.5 sahip             0 ,           0.866,     0,
0,         -1          ,           0,                ,
0,                     0,           0,        

Ya da bu yapıya 4x4 matrisi uygulamak Nasıl (Qt Transform matrix)

gibi matrisin          :

QMatrix4x4 hakkında Şimdi

torusEntity = new Qt3DCore::QEntity(root_entity); 
torusEntity->addComponent(torusMesh); 
torusEntity->addComponent(torusMaterial); 
torusEntity->addComponent(torusTransforms); 

, sen örneğini bir Qt3DCore:

Qt3D::QScaleTransform *torusScale = new Qt3D::QScaleTransform(); 
Qt3D::QTranslateTransform *torusTranslation = new Qt3D::QTranslateTransform(); 
Qt3D::QRotateTransform *torusRotation = new Qt3D::QRotateTransform(); 
Qt3D::QTransform *torusTransforms = new Qt3D::QTransform(); 

torusScale->setScale3D(QVector3D(2.0f, 2.0f, 2.0f)); 
torusTranslation->setTranslation(QVector3D(1.7f, 1.7f, 0.0f)); 
torusRotation->setAngleDeg(25.0f); 
torusRotation->setAxis(QVector3D(0, 1, 0)); 

torusTransforms->addTransform(torusRotation); 
torusTransforms->addTransform(torusTranslation); 
torusTransforms->addTransform(torusScale); 

cevap

0

ekleyebilir ayrıca torusTransforms (Qt3DCore::QTransform) QEntity bir bileşeni olarak bir bileşeni olarak QTorusMesh ekleyin bir Qt3DCore::QEntity oluşturmak ve gerek bakmak Qt dokümanlardan çalışan Örneğin

torusTransforms->setMatrix(my_matrix); 

: :: QTransform ve QMatrix4x4 aldığı setMatrix DELİĞİNE, çağırarak iç matris set https://doc.qt.io/qt-5/qt3d-basicshapes-cpp-example.html, daha spesifik olarak sahne düzenleyici uygulaması.

+0

Qt3D (qt5) – Evgy

+0

'de setMatrix yöntemi yoktur (Qt3D :: QTransform) örneğinde setMatrix yöntemi yoktur. | C: \ Qt \ Qt5.5.1 \ Örnekler \ Qt-5.5 \ qt3d \ basicshapes-cpp \ scenemodifier.cpp: 87: ошибка: 'class Qt3D :: QTransform' adlı bir üye yok 'setMatrix' torusTransforms-> setMatrix (qmat); – Evgy