แปลงจุดยอดกลับเป็น world coords (Python)
Oct 04 2020
ฉันวาดวงกลมลงในวิวพอร์ตด้วย Python วงกลมนั้นมี Vector ตรงกลาง (self._center) ในอวกาศโลก
ฉันต้องการย้ายจุดยอดตรงกลางไปยังตำแหน่ง x ท้องถิ่น 0
ดังนั้นฉันจึงพยายามแปลง self._center ก่อนเป็นค่าท้องถิ่นโดยใช้เมทริกซ์มุมมองที่ฉันเก็บไว้และตั้งค่า X เป็น 0:
vm = self._view_context._view_mat
v = self._center.copy()
v = v @ vm
v[0] = 0
ตอนนี้ฉันต้องการตั้งค่า self._center เป็นค่าใหม่ (v) แต่อยู่ในพื้นที่โลก มีใครรู้วิธีเปลี่ยนมันกลับสู่อวกาศโลกบ้างไหม?
คำตอบ
1 Jayanam Oct 04 2020 at 04:26
เดาว่าฉันแก้ไขได้ดังนี้:
rot_mat = self._view_context._view_mat
v = rot_mat @ self._center
v2 = rot_mat.inverted() @ Vector((-v[0],0,0))
self._center += v2