यहाँ कोड के दो विभिन्न टुकड़े हैंआपरेशन के उलझन के बारे में आदेश जब XNA में एक मैट्रिक्स का उपयोग करते हुए, सी #
यह है कि मैं क्या
Vector2 hold = Vector2.Transform(pos1, mat1);
Matrix inv = Matrix.Invert(mat2);
Vector2 pos2 = Vector2.Transform(hold, inv);
के साथ शुरू किया और यही मुझे बताया गया हूँ है है सरलीकृत संस्करण
Matrix matrix1to2 = mat1 * Matrix.Invert(mat2);
Vector2 pos2 = Vector2.Transform(pos1, matrix1to2);
क्या मुझे समझ नहीं आता है, क्यों simpilifed संस्करण में पहली पंक्ति नहीं है
Matrix matrix1to2 = Matrix.Invert(mat2)*mat1;
मैट्रिक्स क्रम में के बाद से सही पहली और मूल हम mat1 है में प्रभावी हैं पर बात पहले
संपादित में गुणा किया जा रहा: निम्न छवि से पता चलता आपरेशन के वांछित
http://www.riemers.net/images/Tutorials/XNA/Csharp/Series2D/mat1.png
ट्यूटोरियल कहता है कि इस परिवर्तन को बनाने के लिए आप इसका उपयोग करते हैं;
Matrix carriageMat = Matrix.CreateTranslation(0, -carriage.Height, 0) * Matrix.CreateScale(playerScaling)
* Matrix.CreateTranslation(xPos, yPos, 0) * Matrix.Identity;
आदेश सही होने पर यह क्यों काम करता है?
मुझे लगता है कि यह एक http://gamedev.stackexchange.com/ प्रश्न है। आपके पास और अधिक प्रतिक्रिया होगी। – rcdmk
धन्यवाद मैं कोशिश करूँगा। क्या मुझे इसे बंद करना चाहिए? – Alxander
यदि आप चाहते हैं। समस्या कुछ मॉडरेटर इस पर आएंगे। – rcdmk