मुझे आश्चर्य है कि बड़ी संख्या में अंक (ओ (1 मिलियन) संग्रह के अंदर या बाहर हैं या नहीं (ओ (10)) बहुभुज के लिए? उत्तरार्द्ध जरूरी नहीं है, लेकिन उनमें छेद नहीं है। फिलहाल मैं अपनी स्थिति को बाउंडिंग बक्से की तुलना करके अंकों की संख्या काट देता हूं, फिर शेष अंक पर this क्रॉसिंग-नंबर विधि का उपयोग करें। वहाँ शायद एक तेजी से विधि है?पॉइंट-इन-पॉलीगॉन बड़ी संख्या में अंक
उत्तर
मान लिया जाये कि आप अक्ष गठबंधन बाउंडिंग बॉक्स है, तो आप अपने एक्स से अंक की सूची को सॉर्ट, समन्वय सकता सूची अंक द्विआधारी खोज और से अंदर या बाउंडिंग बॉक्स के बाहर जाना पर स्थान ढूंढने संभावित रूप से एक बार में बड़ी संख्या में अंक छोड़ दें। वाई समन्वय के लिए दोहराएं। फिर con शेष बिंदुओं के साथ पहले के रूप में tinue। आप बाउंडिंग बॉक्स के भीतर परीक्षण को तेज करने के लिए बहुभुज त्रिभुज प्रदर्शन कर सकते हैं।
सबसे अच्छा प्रदर्शन करेगा जब विमान का क्षेत्र बहुभुज के क्षेत्र से कहीं अधिक है, और बहुभुज उचित रूप से कॉम्पैक्ट हैं (यानी लंबे और पतले नहीं हैं, जो आपको कई झूठी सकारात्मक दे सकते हैं)।
मैं शायद क्वाड्री उत्पन्न करते समय निर्धारित समय के सटीक स्तर पर "बहुभुज के अंदर या बाहर" के किसी भी स्तर पर तेज़ मोटा परीक्षण के लिए Quadtree का उपयोग करता हूं।
प्रत्येक लुकअप ओ (लॉग एन) है, जो जितना तेज़ हो सके उतना तेज़ होगा। क्वाड्री के एक सेल के भीतर स्थित बिंदुओं के लिए जो "किनारे हैं" के रूप में चिह्नित हैं, तो आपको पारंपरिक पॉइंट-इन-पॉलीगॉन परीक्षण करना होगा।
इसके लिए एक कुशल matplotlib फ़ंक्शन है: matplotlib.nxutils.points_inside_poly()। एल्गोरिदम this page पर प्रलेखित है।
- 1. बड़ी संख्या में structs
- 2. बड़ी संख्या में नोड्स
- 3. बड़ी संख्या में डेटा
- 4. बड़ी संख्या में
- 5. क्या बड़ी संख्या में
- 6. बड़ी संख्या में संख्याओं से बड़ी संख्या कैसे प्राप्त करें?
- 7. read.csv बड़ी संख्या में कॉलम
- 8. बड़ी संख्या में जूमला साइट्स
- 9. बड़ी संख्या में मॉड्यूलस पावर
- 10. पास्कल (डेल्फी) में बड़ी संख्या
- 11. जावास्क्रिप्ट बड़ी संख्या पुस्तकालय?
- 12. सी: मुद्रण बड़ी संख्या
- 13. BigDecimal.movePointRight() बहुत बड़ी संख्या
- 14. एनएसएसटींग स्ट्रिंगविथफॉर्मैट - एकल अंक संख्या
- 15. एक एन-अंक यादृच्छिक संख्या
- 16. सी ++ में बड़ी संख्या में हैंडलिंग?
- 17. संख्याओं की संख्या और बड़ी संख्या में कैसे?
- 18. .NET: असेंबली वर्जन में बड़ी संशोधन संख्या
- 19. बड़ी संख्या में ग़लती से जावास्क्रिप्ट
- 20. सी ++ सरणी में सबसे बड़ी संख्या ढूँढना
- 21. बड़ी संख्या में फ़ाइलों को पढ़ना
- 22. प्रोग्रामिक रूप से बड़ी संख्या में
- 23. बड़ी संख्या में फाइलों को स्थानांतरित करना
- 24. अजगर मानव पठनीय बड़ी संख्या
- 25. एक बहुत बड़ी संख्या गूंज
- 26. प्रोग्रामिंग भाषाएं बड़ी संख्या अंकगणित
- 27. मुद्रित होने वाली बड़ी संख्या में शून्य (वैज्ञानिक संकेत नहीं)
- 28. अलग-अलग लंबी संख्या 3 अंक
- 29. अंक की संख्या अण्डाकार वक्र पर
- 30. संख्या के अंतिम अंक को कैसे देखें
उत्तल बहुभुज की एक (संभवतः लंबी) सूची में बहुभुज को प्री-प्रोसेस करने के लिए उपयुक्त होना चाहिए। एक बात के लिए यह आपके बाध्यकारी बक्से को और अधिक प्रभावी बना देगा। –
यदि आप परिणामस्वरूप उत्तल बहुभुज (जैसे सभी घड़ी की दिशा) के किनारों को उन्मुख कर सकते हैं, तो आप एक तेज विधि (विधि 3 [यहां] (http://paulbourke.net/geometry/insidepoly/) का उपयोग कर सकते हैं। – 9000