कुछ परिप्रेक्ष्य परिवर्तनों को लागू करने के लिए मुझे QMatrix4x4 के माध्यम से QML आइटम्स में हेरफेर करने की आवश्यकता है। असल में, मैं कक्षा QML आइटमक्यूटी ट्रांसफॉर्म मैट्रिक्स
class Transform : public QQuickTransform{
Q_OBJECT
Q_PROPERTY(QMatrix4x4 matrix READ matrix WRITE setMatrix NOTIFY matrixChanged)
public:
explicit Transform(QQuickItem *parent = 0);
QMatrix4x4 matrix() const;
void setMatrix(QMatrix4x4 matrix);
virtual void applyTo(QMatrix4x4 *matrix) const;
signals:
void matrixChanged();
private:
QMatrix4x4 m_matrix;
};
के क्षेत्र को बदलने के लिए तर्क के रूप में एक वस्तु QMatrix4x4 उपयोग करने के लिए रूपांतरण परिभाषित जहां
void Transform::applyTo(QMatrix4x4 *matrix) const {
*matrix *= m_matrix;
matrix->optimize();
}
हालांकि, ऐसा लगता है कि QML "को परिभाषित" नहीं है शास्त्रीय तरीके से परिप्रेक्ष्य मैट्रिक्स। मैंने मुख्य रूप से घूर्णन (http://en.wikipedia.org/wiki/Rotation_matrix) पर अपने परीक्षणों पर ध्यान केंद्रित किया है। चलो कहते हैं कि मैं एक्स में एक QML मद करते हैं: 200, वाई: 200 और मैं बदलना लागू
transform: [Transform{matrix:mytra},Rotation { axis { x: 1; y: 0; z: 0 } angle: 90 } ]
जहां mytra पहचान मैट्रिक्स है। विधि applyTo() (रोटेशन) मैट्रिक्स
1 -0.195312 0 200
0 -0.195312 0 200
0 0 1 0
0 -0.000976562 0 1
लेकिन "शास्त्रीय" एक होना चाहिए
1 0 0 200
0 0 -1 200
0 1 0 0
0 0 0 1
मुझे समझ नहीं आता, जहां इस मैट्रिक्स के लिए अपने मैट्रिक्स अनुकूल करने के लिए से और कैसे आता है प्राप्त करता है क्यूटी। सहायता के लिए धन्यवाद।
धन्यवाद ... हालांकि मुझे समझ में नहीं आता कि 4x4 मैट्रिक्स का बिंदु क्या है। क्या यह जेड समन्वय का प्रबंधन करने के लिए है? – lorenzolightsgdwarf
हां। एक 3x3 मैट्रिक्स एक्स और वाई में रोटेशन का ट्रैक रख सकता है और एक्स और वाई में अनुवाद (pos) और स्केल रख सकता है। एक 4x4 मैट्रिक्स एक्स, वाई, और जेड रोटेशन, स्केल, और अनुवाद (उर्फ पॉज़, या स्थिति) का ट्रैक रख सकता है। रोबोटिक्स 4x4 मैट्रिक्स का बहुत उपयोग करता है। ग्राफिक्स कार्ड पर 3 डी प्रतिपादन भी 4x4 मैट्रिक्स का उपयोग करता है। यदि आप OpenGL में देखते हैं, तो यह पूरे स्थान पर इसका उपयोग करता है। – phyatt
हम जेड अक्ष के साथ एक क्यूएमएल आयताकार का अनुवाद कैसे करते हैं? – trusktr