ปัญหาที่น่าสนใจ!
ฉันได้ทำสิ่งที่คล้ายกันกับรูปหลายเหลี่ยมผิดปกติ (ในกรณีนี้อาคารถูกอัดแน่นเพื่อไม่ให้ทับซ้อนกัน)
ใช้ postgresql และ postgis และ python ขั้นตอนวิธีหยาบนั้น
- ค้นหาจุดสุ่มในขอบเขตของรูปหลายเหลี่ยม (ST_Envelope)
- หากจุดนอกรูปหลายเหลี่ยมย้อนกลับไปหนึ่งขั้นตอน
- ทำให้รูปทรงเรขาคณิตสำหรับต้นไม้อยู่กึ่งกลางจุดสุ่มนี้
- หากทับต้นไม้ที่วางไว้ใด ๆ (ST_Overlaps) ให้กลับไปเริ่มใหม่
- เพิ่มต้นไม้ตรงจุด
- ย้อนกลับไปเริ่มต้น
ฉันไม่สามารถรับประกันได้ว่าสิ่งนี้จะให้ประโยชน์สูงสุดแก่โลกคุณต้องมีอัลกอริทึม 'การบรรจุแบบวงกลม' สำหรับสิ่งนั้น (ดังที่คนอื่น ๆ ได้กล่าวไว้)
มันจะดำเนินต่อไปตลอดไปดังนั้นคุณจะต้องใส่รหัสในการตัดสินใจเมื่อจะออกเช่น
- เมื่อพื้นที่รวมของต้นไม้ที่วางไว้เป็นเปอร์เซ็นต์ที่แน่นอนของพื้นที่ของรูปหลายเหลี่ยม
- เมื่อใช้เวลามากกว่า N ซ้ำในการค้นหาแผนผังที่ไม่ทับซ้อนกัน
จากการบรรจุแบบวงกลมบนวิกิพีเดียความหนาแน่นของการบรรจุที่ดีที่สุดทำได้โดยใช้ตารางหกเหลี่ยม อาจเป็นไปได้ที่จะสร้างกริดดังกล่าวโดยใช้ MMQGIS ซึ่งระยะห่างจะขึ้นอยู่กับขนาดของต้นไม้ของคุณซึ่งฉันคิดว่าเหมือนกัน จากนั้นวางต้นไม้ลงบนแต่ละจุดสุดยอด แต่คุณมีปัญหาในการทราบว่าจะวางกริดเพื่อเพิ่มจำนวนต้นไม้ให้ใหญ่ที่สุดได้อย่างไร