พยายามตอบความคิดเห็นที่เหมาะสมของ Natan ฉันได้พิจารณาบางอย่างที่มีประโยชน์ในการเข้าใจสิ่งที่เกิดขึ้นจริง ๆ เมื่อคุณใช้เวกเตอร์ใน Affine Space เพื่อเป็นตัวแทนของเวกเตอร์ 3 มิติในอวกาศ Euclidean มาตรฐาน
ก่อนอื่นฉันจะเรียกเวกเตอร์ว่าอะไรก็ตามที่มีพิกัดดังนั้นจุดและเวกเตอร์นั้นเป็นเอนทิตีเดียวกัน คุณสามารถเห็นเวกเตอร์เป็นจุดแตกต่างของสองจุด: V = B - A ; Vย้าย
ในBเพราะ+ V = + B - = B ใส่A = 0 (ต้นกำเนิด) แล้วคุณจะได้V = B - 0 = B : จุดBและเวกเตอร์ที่เคลื่อนที่0ถึงBเป็นสิ่งเดียวกัน
ฉันจะเรียกว่า"เวกเตอร์" - ในแง่ที่ใช้ในห้องสมุด 3D ส่วนใหญ่ - เมื่อเวกเตอร์ของพื้นที่เลียนแบบมี w = 0
เมทริกซ์ถูกนำมาใช้เพราะพวกมันอนุญาตให้คุณแสดงฟังก์ชันเชิงเส้นในรูปแบบกะทัดรัด / สวยงาม / มีประสิทธิภาพ แต่ฟังก์ชันเชิงเส้นมีข้อเสียที่สำคัญที่ไม่สามารถเปลี่ยนแหล่งกำเนิด: F ( 0 ) = 0ถ้า F ต้องการเป็นเชิงเส้น ( amog สิ่งอื่น ๆ เช่น F (λ X ) = λF ( X ) และ F ( A + B ) = F ( A ) + F ( B ))
ซึ่งหมายความว่าคุณไม่สามารถสร้างเมทริกซ์ที่ทำการแปลเนื่องจากคุณจะไม่ย้าย0เวกเตอร์ นี่เข้ามาในการเล่นเลียนแบบอวกาศ พื้นที่เลียนแบบเพิ่มมิติให้กับพื้นที่ยูคลิดเพื่อให้ traslantions สามารถทำได้ด้วยการปรับสเกลและการหมุน
The Affine Space เป็นพื้นที่โปรเจคในแง่ที่คุณสามารถสร้างความสัมพันธ์ที่เท่าเทียมกันระหว่างเวกเตอร์ Affine และ Euclidean เพื่อที่คุณจะได้สร้างความสับสนให้พวกเขา เวกเตอร์เลียนแบบทั้งหมดที่ทำโครงการไปยังแหล่งกำเนิดที่มีทิศทางเดียวกันสามารถมองเห็นได้เป็นเวกเตอร์แบบยุคลิดแบบเดียวกัน
นี่หมายความว่าเวกเตอร์ทั้งหมดที่มีสัดส่วนเท่ากันในพิกัดนั้นสามารถพิจารณาได้ว่าเทียบเท่ากัน:
ศาสตร์:
นั่นคือเวกเตอร์เลียนแบบทุกตัวสามารถลดลงเป็นรุ่นแคนนอนโดยที่ w = 1 (เราเลือกเวกเตอร์ที่เทียบเท่ากันหนึ่งอันที่เราชอบมากที่สุด)
มองเห็น (euclidean 2D - เลียนแบบ 3D):
ดังนั้นค่าเฉลี่ยของพื้นที่"projective" ; คุณควรสังเกตว่าที่นี่พื้นที่ยูคลิดคือ 2D (ภูมิภาคสีฟ้า)
มีเวกเตอร์เลียนแบบชุดหนึ่งที่ไม่สามารถใส่ในเวอร์ชันมาตรฐาน (อย่างง่ายดาย) ชุดที่อยู่บนระนาบ (ไฮเปอร์) w = 0
เราสามารถแสดงให้เห็นด้วยตา:
สิ่งที่คุณควรเห็นในขณะที่ w -> 0 จากนั้นเวกเตอร์ที่คาดการณ์ไว้ในปริภูมิแบบยุคลิดจะไปที่อนันต์ แต่ไปถึงอนันต์ในทิศทางใดทิศทางหนึ่ง
ตอนนี้เห็นได้ชัดว่าการเพิ่มเวกเตอร์สองตัวในพื้นที่ projective สามารถนำไปสู่ปัญหาเมื่อคุณพิจารณาผลรวมเวกเตอร์เป็นเวกเตอร์ที่คาดการณ์ไว้ในปริภูมิแบบยุคลิดการต่อท้ายนี้จะเพิ่มเพราะคุณจะรวมองค์ประกอบ W ในพื้นที่เลียนแบบ ระนาบแบบยุคลิด (ไฮเปอร์)
นี่คือเหตุผลที่คุณสามารถรวมเฉพาะ "คะแนน" เป็น "เวกเตอร์" เพราะ "เวกเตอร์" จะไม่เปลี่ยนพิกัด w ของ "จุด" ซึ่งเป็นจริงเฉพาะสำหรับ"คะแนน"โดยที่ w = 1:
เมื่อคุณเห็นจุดสีเขียวคือสิ่งที่ได้รับการเพิ่มเวกเตอร์เลียนสองตัวที่แทน"จุด"และ"เวกเตอร์"สีฟ้าแต่ถ้าคุณใช้Vกับเวกเตอร์เลียนแบบทุกแบบในรูปแบบที่แตกต่างกันโดยแคนนอนคุณจะได้ ผลลัพธ์ที่ผิด (จุด "" สีแดง "")
คุณจะเห็นว่าเลียนแบบพื้นที่ไม่สามารถใช้โปร่งใสในการอธิบายถึงการดำเนินงานในพื้นที่แบบยุคลิดและใช้ผิดวัตถุประสงค์ของคำว่า "เวกเตอร์"มีความรู้สึกตาม (เข้มงวด) จำกัด ของผลรวมคำนวณเฉพาะในศีลเวกเตอร์ projective
กล่าวว่าค่อนข้างสมเหตุสมผลที่จะคิดว่า GPU สันนิษฐานว่าVector4ต้องมี w = 0 หรือ w = 1 เว้นแต่คุณจะรู้ว่าคุณกำลังทำอะไรอยู่