আকর্ষণীয় সমস্যা!
আমি অনিয়মিত বহুভুজ দিয়ে একই কাজ করেছি (এই ক্ষেত্রে, বিল্ডিংগুলি যাতে ভরাট না হয় তাই প্যাক করা হয়েছিল)
পোস্টগ্র্যাস্কল এবং পোস্টজি এবং অজগর ব্যবহৃত হয়। রুক্ষ অ্যালগরিদম ছিল
- বহুভুজের সীমানা বাক্সে এলোমেলো পয়েন্টটি সন্ধান করুন (ST_Envelope)
- বহুভুজের বাইরে নির্দেশ করলে, এক ধাপ পিছনে যান
- এই এলোমেলো পয়েন্ট কেন্দ্রিক গাছের জন্য একটি জ্যামিতি তৈরি করুন
- যদি এটি বিদ্যমান যে কোনও গাছ (ST_ ওভারল্যাপস) কে ওভারল্যাপ করে তবে শুরু করতে ফিরে যান
- বিন্দুতে গাছ যুক্ত করুন
- শুরু করতে ফিরে যান
আমি গ্যারান্টি দিতে পারি না এটি বৈশ্বিক সর্বোত্তম দেবে, এর জন্য আপনার 'সার্কেল প্যাকিং' অ্যালগরিদম প্রয়োজন হবে (অন্যরা যেমন উল্লেখ করেছেন)
এটি চিরকাল চলবে, সুতরাং কখন প্রস্থান ছাড়বেন তা সিদ্ধান্ত নিতে আপনাকে কিছু কোড রাখা দরকার
- যখন স্থাপন করা গাছের মিলিত ক্ষেত্রফল বহুভুজের ক্ষেত্রের নির্দিষ্ট শতাংশ হয়
- যখন একটি নন-ওভারল্যাপিং গাছ খুঁজতে N পুনরাবৃত্তির চেয়ে বেশি লাগে।
উইকিপিডিয়ায় সার্কেল প্যাকিং অনুসারে , ষড়ভুজ গ্রিডের সাহায্যে সেরা প্যাকিংয়ের ঘনত্ব অর্জন করা হয়। এমএমকিউজিআইএস ব্যবহার করে এমন একটি গ্রিড তৈরি করা সম্ভব হতে পারে, যার ফাঁকানো আপনার গাছের আকারের উপর ভিত্তি করে, যা আমি ধরে নিয়েছি একইরকম। তারপরে প্রতিটি শীর্ষে একটি গাছ রেখে দিন। তবে তারপরে, গাছের সংখ্যা সর্বাধিক করার জন্য আপনার গ্রিডটি কোথায় রাখবেন তা জানার সমস্যা রয়েছে।