मैं कुछ 2 डी ड्राइंग करना चाहता हूं और इस प्रकार कुछ मैट्रिक्स परिवर्तनों को कार्यान्वित करना चाहता हूं। मेरे प्रकाश गणित पृष्ठभूमि के साथ मैं समझने की कोशिश कर रहा हूं कि सी # में ऐसा कैसे करें (किसी भी अन्य ओओपी भाषा स्पष्ट रूप से ऐसा करेगी)।2 डी परिवर्तनों को 3x3 matrices क्यों चाहिए?
जो कुछ मैंने पढ़ा है वह समझा रहा है कि हमें अनुवादों का सामना करने में सक्षम होने के लिए 3x3 मैट्रिस के साथ काम करने की आवश्यकता है। क्योंकि आप गुणाओं के साथ अनुवाद नहीं कर सकते हैं। लेकिन यह matrices के गुणा के साथ है कि हम अपने परिवर्तन बनाते हैं। तो हम कुछ के साथ काम करते हैं:
{ x1, x2, tx }
{ y1, y2, ty }
{ 0, 0, 1 }
मैं तीसरे कॉलम के माध्य को समझता हूं, लेकिन हमें तीसरी पंक्ति क्यों चाहिए? एक पहचान मैट्रिक्स के साथ-साथ घूर्णन, स्केल या रोटेशन में अंतिम पंक्ति समान होती है। क्या ऐसे ऑपरेशन हैं जिन पर मैं अभी तक नहीं पहुंच पाया था, जिसके लिए इसकी आवश्यकता होगी? ऐसा इसलिए है क्योंकि कुछ भाषाएं (जावा) "स्क्वायर आयाम" सरणी के साथ बेहतर प्रदर्शन करती हैं? यदि ऐसा है तो मैं सी # में 3 कॉलम और 2 पंक्तियों का उपयोग कर सकता हूं (क्योंकि जंजीर सरणी भी काम करती है या बेहतर)।
उदाहरण के लिए, एक रोटेशन + अनुवाद के लिए मैं इस
{ cos(rot)*x1, (-sin(rot))*x2, tx }
{ sin(rot)*y1, cos(rot)*y2, ty }
{ 0, 0, 1 }
अंतिम पंक्ति की कोई ज़रूरत नहीं की तरह एक मैट्रिक्स है।
), तो http://en.wikipedia.org/wiki/Homogeneous_coordinates –
@HighPerformanceMark के लिंक में से एक का पालन करें मैं यहाँ हूँ इन अवधारणाओं के किस बिंदु को समझाने की कोशिश कर रहा हूं, मुझे समझ में नहीं आता है। हां ये 2 पहले दस्तावेज हैं जिनके साथ मैंने अपना पढ़ना शुरू किया। –