नातान की उपयुक्त टिप्पणी का जवाब देने की कोशिश करते हुए, मैंने कुछ विचार किया जो यह समझने के लिए उपयोगी हो सकता है कि वास्तव में क्या होता है जब आप मानक यूक्लिडियन अंतरिक्ष में 3 डी वैक्टर का प्रतिनिधित्व करने के लिए Affine Space में वैक्टर का उपयोग करते हैं।
पहले मैं वेक्टर को कॉल करूँगा जो भी निर्देशांक हैं, इसलिए एक बिंदु और एक वेक्टर एक ही इकाई हैं; आप एक वेक्टर को दो बिंदुओं के अंतर के रूप में देख सकते हैं: वी = बी - ए ; वी ले जाता है
एक में बी क्योंकि एक + V = एक + बी - एक = बी । A = 0 (मूल) डालें और आपको वह V = B - 0 = B मिलेगा : बिंदु B और सदिश जो 0 चलता हैकरने के लिए बी एक ही बात कर रहे हैं।
मैं "वेक्टर" कहूंगा - 3 डी पुस्तकालयों के बहुमत में उपयोग किए जाने वाले अर्थों में - जब affine अंतरिक्ष के एक वेक्टर में w = 0 होता है।
मैट्रिक्स का उपयोग किया जाता है क्योंकि वे आपको एक रेखीय फ़ंक्शन को एक कॉम्पैक्ट / सुरुचिपूर्ण / कुशल रूप में प्रदर्शित करने की अनुमति देते हैं, लेकिन रैखिक कार्यों का प्रमुख नुकसान है जो मूल को नहीं बदल सकता है: F ( 0 ) = 0 यदि F रैखिक बनना चाहता है ( अन्य वस्तु जैसे F (λ X ) = λF ( X ) और F ( A + B ) = F ( A ) + F ( B ))
इसका मतलब है कि आप एक मैट्रिक्स का निर्माण नहीं कर सकते हैं जो अनुवाद करता है क्योंकि आप कभी भी 0 वेक्टर को स्थानांतरित नहीं करेंगे । यहाँ Affine Space खेलने के लिए आता है । एफिलिन स्थान यूक्लिडियन अंतरिक्ष के लिए एक आयाम जोड़ता है ताकि तराजू को स्केलिंग और घुमाव के साथ किया जा सके।
अफ्फिन स्पेस इस अर्थ में एक अनुमानित स्थान है कि आप एफिन और यूक्लिडियन वैक्टर के बीच एक समानता संबंध बना सकते हैं ताकि आप उन्हें भ्रमित कर सकें (जैसा कि हमने संकेत और वैक्टर के साथ किया था)। सभी चक्करदार वैक्टर जो एक ही दिशा के साथ मूल में प्रोजेक्ट करते हैं, उन्हें एक ही यूक्लिडियन वेक्टर के रूप में देखा जा सकता है।
इसका मतलब है कि निर्देशांक में समान अनुपात वाले सभी वैक्टर को समान माना जा सकता है:
गणितीय:
यानी हर affine वेक्टर को एक कैनन संस्करण में कम किया जा सकता है, जहां w = 1 (हम हर उस समतुल्य वेक्टर के बीच चयन करते हैं जिसे हम सबसे अच्छा पसंद करते हैं)।
नेत्रहीन (2 डी यूक्लिडियन - 3 डी एफाइन):
इसलिए "अनुमानित" स्थान का मतलब ; आपको ध्यान देना चाहिए कि यहाँ यूक्लिडियन स्थान 2D (सियान क्षेत्र) है
एक विशेष प्रकार के एफाइन वैक्टर होते हैं, जिन्हें उनके कैनोनिकल संस्करण (आसानी से) में नहीं रखा जा सकता है, जो कि (हाइपर) प्लेन w = 0 पर स्थित है।
हम इसे नेत्रहीन दिखा सकते हैं:
आप जो देखते हैं, वह यह है कि w -> 0 तब यूक्लिडियन अंतरिक्ष में अनुमानित वेक्टर अनंत में जाता है, लेकिन एक विशेष दिशा में अनंत तक जाता है ।
अब यह स्पष्ट है कि प्रोजेक्टिव स्पेस में दो वैक्टर को जोड़ने पर समस्याएँ पैदा हो सकती हैं जब आप यूक्लिडियन स्पेस में अनुमानित वेक्टर के रूप में योग पर विचार करते हैं, यह कहता है क्योंकि आप एफिन घटक को एफिन स्पेस में योग करेंगे और फिर उन्हें प्रोजेक्ट करेंगे। यूक्लिडियन (हाइपर) प्लेन।
यही कारण है कि आप केवल "अंक" को "वैक्टर" के लिए जोड़ सकते हैं क्योंकि "वेक्टर" "बिंदु" के w समन्वय को नहीं बदलेगा। यह केवल "बिंदुओं" के लिए सत्य है जहां w = 1:
जैसा कि आप देखते हैं कि हरे रंग का बिंदु वह है जो दो एफाइन वैक्टर को जोड़ने वाला है जो सियान "बिंदु" और V "वेक्टर" का प्रतिनिधित्व करता है , लेकिन यदि आप कैनन के एक से भिन्न रूप में प्रत्येक affine वेक्टर में V को लागू करते हैं, तो आप प्राप्त करेंगे एक गलत परिणाम (लाल "" बिंदु "")।
आप देखते हैं कि यूक्लिडियन स्पेसेस पर ऑपरेशन का वर्णन करने के लिए Affine Space का उपयोग पारदर्शी रूप से नहीं किया जा सकता है और शब्द "वेक्टर" के दुरुपयोग का अर्थ है, केवल कैनन प्रॉजेक्ट वेक्टर्स पर गणना योगों की (सख्त) बाधा ।
कहा कि, यह सोचना काफी उचित है कि GPU यह मानता है कि एक वेक्टर 4 में w = 0 या w = 1 है, जब तक कि आप वास्तव में नहीं जानते कि आप क्या कर रहे हैं।