วิธีทำแผนที่พื้นผิวสี่เหลี่ยมจัตุรัสกับสามเหลี่ยม?


13

ฉันต้องการค้นหาพิกัดพื้นผิวสำหรับจุด P ฉันมีจุดยอดของสามเหลี่ยมและพิกัด uv ที่สอดคล้องกัน

ตัวเลขในช่องสี่เหลี่ยมเล็ก ๆ ในพื้นผิวแสดงถึงค่าสี

ขั้นตอนการคำนวณพิกัดยูวีของ P คืออะไร?

ป้อนคำอธิบายรูปภาพที่นี่


มีการแปลงเลียนแบบที่จะจับคู่แต่ละมุมกับพิกัดพื้นผิวของมันคุณสามารถใช้มันเพื่อจับคู่ P กับรังสียูวี
— วงล้อประหลาด

@ ratchetfreak คุณช่วยส่งลิงก์ให้ฉันได้ไหม
— john john

มีบทความที่ดีเกี่ยวกับวิธีการคำนวณจุดตัดรวมถึงการคำนวณสาย barycentric ในครั้งเดียวในบทความนี้ สิ่งนี้สำคัญที่จะเปลี่ยนรูปสามเหลี่ยม
— joojaa

คำตอบ:


14

นี่คือความสำเร็จผ่านBarycentricแก้ไข

ครั้งแรกที่เราพบพิกัด Barycentric ของPพิกัด Barycentric แสดงถึงน้ำหนักที่แต่ละจุดสุดยอดมีส่วนร่วมกับจุดและสามารถใช้เพื่อแก้ไขค่าใด ๆ ที่เป็นที่รู้จักที่จุดยอดข้ามใบหน้าของรูปสามเหลี่ยมP

พิจารณารูปสามเหลี่ยมภายใน 3 ,และPCAABPPBCPCA

ป้อนคำอธิบายรูปภาพที่นี่

เราสามารถพูดได้ว่า Barycentric พิกัดหรือน้ำหนักของยอดบนจุดเป็นสัดส่วนกับอัตราส่วนของพื้นที่ของรูปสามเหลี่ยมภายในไปยังพื้นที่ของรูปสามเหลี่ยมทั้งเอบีซีAPPBCABC

นี้เห็นได้ชัดอย่างสังหรณ์ใจถ้าเราพิจารณาว่าในขณะที่แนวทางสามเหลี่ยมเติบโตขนาดใหญ่และอีกสองคนกลายเป็นขนาดเล็กPAPBC

นอกจากนี้ยังเห็นได้ชัดอย่างสังหรณ์ใจควรจะว่าผลรวมของพิกัด Barycentric ของจุดภายในรูปสามเหลี่ยมเสมอเท่ากับ1ดังนั้นก็พอที่จะหาพิกัดเพียงสองแห่งเท่านั้นที่จะได้ค่าที่สาม1

วิธีการคำนวณพิกัด barycentric คือ:

BaryA=(By−Cy)(Px−Cx)+(Cx−Bx)(Py−Cy)(By−Cy)(Ax−Cx)+(Cx−Bx)(Ay−Cy)BaryB=(Cy−Ay)(Px−Cx)+(Ax−Cx)(Py−Cy)(By−Cy)(Ax−Cx)+(Cx−Bx)(Ay−Cy)BaryC=1−BaryA−BaryB

ความเป็นมาและการใช้เหตุผลจะมีการอธิบายในบทความวิกิพีเดีย

เมื่อคุณมีพิกัดแล้วคุณสามารถกำหนดพิกัดพื้นผิวของโดยการแทรกค่าที่จุดยอดโดยใช้พิกัด barycentric เป็นน้ำหนัก:P

Puv=BaryA⋅Auv+BaryB⋅Buv+BaryC⋅Cuv

เหตุผลที่ยังจะมีการอธิบายอย่างมากในการนี้นำเสนอ

ดูคำถามนี้เพื่อหาวิธีการคำนวณที่มีประสิทธิภาพ


ฉันติดข้อผิดพลาดในหรือไม่ เทอมแรกควรเป็นหรือฉันผิด BaryB(Ay−Cy)
— joojaa

@ joojaa ฉันไม่คิดอย่างนั้น มันเหมือนกันในบทความ Wikipedia และดูเหมือนว่าถูกต้องจากการคำนวณทดสอบที่ฉันทำ
— Rotem

อาดังนั้นก็คืออาจจะดีถ้าคุณจะคำนวณก่อน −(Ay−Cy)ACy=(Ay−Cy)
— joojaa

1
@joojaa ตัวหารทั้งหมดและบางส่วนของเงื่อนไขการเสนอชื่อที่สามารถ precalculated สำหรับแต่ละสามเหลี่ยมเพียงไม่กี่คำที่ขึ้นอยู่กับPฉันได้เพิ่มลิงก์ไปยังคำถามที่เกี่ยวข้องกับวิธีการคำนวณ ในสูตรนี้ฉันคิดว่ามันจะเป็นการดีกว่าที่จะทำให้สัญกรณ์ง่ายและสม่ำเสมอมากกว่ามีประสิทธิภาพ P
— Rotem
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.