मेरे पास दो उत्तल बहुभुज हैं। बहुभुज को उनके शिखर की चक्रीय सूचियों के रूप में लागू किया जाता है। इन दो बहुभुजों का एक चौराहे कैसे खोजें?दो उत्तल बहुभुजों का छेद
उत्तर
For each edge V1-V2 in the first polygon,
Let H := Half-plane tangenting V1-V2, with the remaining
vertices on the "inside".
Let C := New empty polygon.
For each edge V3-V4 in the second polygon,
Let X := The intersection between V3-V4 and H.
If V3 inside H, and V4 is outside H then,
Add V3 to C.
Add X to C.
Else if both V3 and V4 lies outside H then,
Skip.
Else if V3 outside H, and V4 is inside H then,
Add X to C.
Else
Add V3 to C.
Replace the second polygon with C.
यह सरल उपयोग के लिए पर्याप्त होना चाहिए; 10-20 शिखर और प्रत्येक फ्रेम का पुनर्मूल्यांकन नहीं।
आप तथ्य यह है कि से फायदा हो सकता: — ओ (n)
यहाँ कुछ लिंक है दोनों बहुभुज उत्तल हैं। और इस ज्ञान के साथ आप फॉलोइन स्वीप लाइन एल्गोरिदम का उपयोग करके ओ (एन) समय प्राप्त कर सकते हैं:
दोनों बहुभुजों में शीर्षतम बिंदु खोजें। सादगी के लिए मान लीजिए कि आपके पास कोई क्षैतिज किनार नहीं है। बहुभुज की बाएं और दाएं सीमाओं में योगदान देने वाले किनारों की सूचियां बनाएं।
विमान को साफ़ करने के दौरान आप 4 किनारों को स्टोर करते हैं। left_edge_C1, right_edge_C1, left_edge_C2, right_edge_C2। किनारों पर घूमने के लिए आपको किसी भी जटिल की आवश्यकता नहीं है, क्योंकि उनमें से केवल चार ही हैं। आप सभी संभावित विकल्पों को फिर से शुरू करके अगले ईवेंट बिंदु पा सकते हैं।
प्रत्येक घटना पर कुछ किनारे उनके चौराहे की सीमा पर दिखाई देते हैं। असल में, प्रत्येक घटना बिंदु पर आप एक मुक्त मामलों में से एक हो सकते हैं (तस्वीर देखें।)।
'ईवेंट पॉइंट' का क्या अर्थ है? – TJM
इसके अलावा @ Yola के अच्छा विमान स्वीप विवरण, वहाँ एक रेखीय समय एल्गोरिथ्म Computational Geometry in C, अध्याय 7 और सी & जावा कोड में वर्णित है (एक ही लिंक पर) उपलब्ध है। कई मुश्किल अपमानजनक मामले हैं, उदाहरण के लिए, जब दो बहुभुज एक बिंदु पर छेड़छाड़ करते हैं, या चौराहे एक सेगमेंट होता है।
- 1. दो बहुभुजों को कैसे छेड़छाड़ करें?
- 2. उत्तल पॉलीगॉन को उत्तल में
- 3. उत्तल पॉलीहेड्रॉन का केंद्र
- 4. छेद के साथ बहुभुज का प्रतिनिधित्व कैसे करें?
- 5. उत्तल हुल और SciPy
- 6. एक गैर-उत्तल बहुभुज
- 7. उत्तल झुकाव के पहलू अनुपात का आकलन
- 8. जीसी छेद क्या हैं?
- 9. यूडीपी छेद पंचिंग
- 10. यूडीपी छेद पंचिंग कार्यान्वयन
- 11. यदि कोई रेखा उत्तल बहुभुज
- 12. माइग्राडोक बुलेट सूची (छेद)
- 13. बिटमैप में "छेद" की संख्या
- 14. यूडीपी छेद पंचिंग टाइमआउट
- 15. यूडीपी छेद पंचिंग 3 जी
- 16. छेद के साथ पॉलीगॉन त्रिभुज
- 17. कैसे टुकड़े छेद संभालते हैं?
- 18. लाइन सेगमेंट के संग्रह के गैर-उत्तल ढक्कन का निर्धारण
- 19. यूडीपी एनएटी छेद पंचिंग उदाहरण
- 20. सबलाइनर लेकिन सरल गतिशील उत्तल हल एल्गोरिदम?
- 21. एक यादृच्छिक उत्तल बहुभुज कैसे उत्पन्न करें?
- 22. एक अच्छा उत्तल अनुकूलन पुस्तकालय क्या है?
- 23. छेद और चौराहे के लिए आयताकारों का संग्रह कैसे जांचें?
- 24. यूडीपी छेद-पंचिंग: एकल मशीन पर टेस्टेबिलिटी
- 25. बाइनरी ऑब्जेक्ट के अंदर छेद भरना
- 26. मैं एक छवि में "छेद" कैसे भरूं?
- 27. जावा: क्लिपिंग क्षेत्र बनाएं जिसमें छेद है?
- 28. छेद के साथ पथ खींचें (एंड्रॉइड)
- 29. एक क्षेत्र की सतह पर 0 डिग्री (अक्षांश, अक्षांश)-बिंदुओं का उत्तल हॉल
- 30. कुल जड़ें। खरगोश छेद कितना दूर जाता है
क्या आप सुनिश्चित हैं कि मुझे 3 में चौराहे पर V3 जोड़ना है? यह गलत लगता है। – DaZzz
मैं इसे सुथरलैंड-हडगमैन एल्गोरिदम के साथ बेहतर संरेखित करने के लिए पुनः लिखता हूं। –