आप इसे त्रिभुज B=[(0,0),(0,1),(1,0)]
पर ऊंचाई फ़ील्ड के रूप में देख सकते हैं।
चूंकि विमान को B
के कोनों पर ऊंचाई के रूप में परिभाषित किया गया है, B
पर विमान की ऊंचाई को बैरेंट्रिक निर्देशांक के साथ गणना की जा सकती है। दिया साथ: barycentric साथ
B
में की B
- बिंदु
P
कोनों पर ऊंचाइयों (a,b,c)
साथ विमान निर्देशांक (x,y,z) [x+y+z=1, x,y,z>=0]
, बिंदु पर विमान के
ऊंचाई P
x*a + y*b + z*c
है।
(x,y,1-x-y)
में बिंदु P=(x,y)
के लिए प्राकृतिक बैरीसेंट्रिक निर्देशांक।
इसके साथ बैरीसेंट्रिक निर्देशांक में 2 विमानों, (a1,b1,c1)
और (a2,b2,c2)
की चौराहे रेखा की गणना करना आसान है। बस बराबर जहां 2 विमानों 0 <= x,y <= 1
और x+y <= 1
, 2 विमानों इस B
में 2 विमानों चौराहे रेखा का समीकरण है के साथ एक ही ऊंचाई है
x*a1 + y*b1 + (1-x-y)*c1 = x*a2 + y*b2 + (1-x-y)*c2
=>
x*(a1-c1-(a2-c2)) + y*(b1-c1-(b2-c2)) + c1-c2 = 0
।
मुझे लगता है कि 2 दृष्टिकोण है कि ऊंचाई क्षेत्र (ऊपर सबसे परत) जिसके परिणामस्वरूप के निर्माण के लिए इस्तेमाल किया जा सकता हैं कि:
नया त्रिकोण
यह समर्थन करने के लिए जोड़ने Iterative, यह आवश्यक है करने के लिए संरचना जो त्रिकोण के विभाजन B
बहुभुज में है। बहुभुज त्रिभुज का क्षेत्र है जहां एक विमान उच्चतम है। चूंकि हम विमानों से निपट रहे हैं, बहुभुज उत्तल होंगे और एक विमान अधिकांश बहुभुज में उत्पादन कर सकता है। मौजूदा त्रिकोण क्षेत्र के साथ नए त्रिकोण और चौराहे की गणना जोड़ना नई बहुभुज (चौराहे रेखाएं और B
की सीमा) का उत्पादन करेगा। यह नया बहुभुज ऊंचाई क्षेत्र में जोड़ा गया है। यदि मौजूदा बहुभुज को भाग से अलग किया गया है तो हटा दिया जाता है। यदि बहुभुज की तुलना में मौजूदा बहुभुज ओवरलैप किया गया है।
चौराहे सामने लाइन एक कोने से
- प्रारंभ प्रचार और विमान उस पर heighest है कि लेने के (जैसे विमान wiht अधिकतम (a_i))। उस कोने में फ्रंट लाइन सेट करें।
- उन विमानों को खोजें जो सामने के निकट चौराहे लाइनों के साथ विमान शुरू करने के लिए छेड़छाड़ करते हैं। इन चौराहे लाइनों के सामने आगे बढ़ें।
- सामने वाले लाइन पर एक (कोई भी) विमान लें और आगे के नजदीकी चौराहे वाली लाइनों के साथ संसाधित विमानों के साथ छेड़छाड़ न करें। इन चौराहे लाइनों के सामने आगे बढ़ें।
दोहराना 3. जब तक फ्रंट लाइन त्रिभुज B
शामिल नहीं हो जाती है।
मैं दूसरा एल्गोरिदम पसंद करता हूं।
एक ऑक्टेट में सभी बिंदुओं को संग्रहीत करने और उन्हें क्रमबद्ध करने के बारे में कैसे? – Bytemain