मेरा सुझाव है: एक बहुभुज की स्थापना चार कोने के साथ आकार (maxside तक) आयत गांठ बदलती में खाया जा करने के लिए द्वारा
प्रारंभ:
public double[] fillBoard(double width, double height, double maxside) {
double[] dest = new int[0];
double[] poly = new int[10];
poly[0] = 0; poly[1] = 0; poly[2] = width; poly[3] = 0;
poly[4] = width; poly[5] = height; poly[6] = 0; poly[7] = height;
poly[8] = 0; poly[9] = 0;
...
return dest; /* x,y pairs */
}
फिर एक यादृच्छिक शिखर चुनते हैं, बहुभुज लाइनों को खोजने लाइन के 2 एक्स अधिकतम (समावेशी) के भीतर। सभी क्षैतिज रेखाओं के सभी लंबवत रेखाओं और वाई मानों के x मान खोजें। मानों के बीच मूल्यों के लिए रेटिंग जेनरेट करने के लिए प्रत्येक एक्स और वाई मान, और समीकरणों को चुनने की "भलाई" के लिए रेटिंग बनाएं। गुडनेस को शेष बहुभुज में रेखाओं की संख्या को कम करने के रूप में मापा जाता है। छद्म-यादृच्छिक जनरेटर का उपयोग करते हुए दो एक्स निर्देशांक या दो वाई निर्देशांक के बीच मानों की प्रत्येक सीमा के लिए तीन विकल्प उत्पन्न करें। अच्छे विकल्पों की ओर झुकाव भारित औसत आधार पर एक्स के जोड़े और वाई मानों की जोड़ी को रेट करें और चुनें। पॉली सरणी से अपना आकार काटकर और आयत सरणी में आयताकार निर्देशांक जोड़कर सूची में नए आयताकार को लागू करें।
प्रश्न न्यूनतम पक्ष पैरामीटर नहीं बताता है। लेकिन अगर किसी की आवश्यकता है, तो एल्गोरिदम (एक अंतर के साथ एक झुकाव को मारने पर बहुत कम होना चाहिए) चयन सूची में बहुत छोटे उम्मीदवारों को शामिल नहीं करना चाहिए (जो कभी-कभी उन्हें खाली कर देगा) और आसपास के आयतों के एक निश्चित त्रिज्या में अचयनित करें आकार के साथ समस्या और मानदंडों को पूरा होने तक, उस क्षेत्र के नए पुनर्जनन प्रयासों, और आशा है कि समस्या क्षेत्र। टाइल्स की छोटी रिलेइंग विफल होने पर रिकर्सन बड़े क्षेत्रों को हटा सकता है।
संपादित
संभावित ओवरलैप समाप्त करने के लिए कुछ हिट परीक्षण करते हैं। और टाइपिंग शुरू करने से पहले कुछ पालक खाएं। ;)
यह कोई जवाब नहीं है, लेकिन मुझे संदेह है कि दशमलव इकाइयों का उपयोग करना बहुत आसान होगा।) – graphicdivine
यह उनके लिए अधिक उत्पादक होगा अगर वे आपको दीवारों को पेंट करने या इंटीरियर किराए पर लेते अपना समय प्रोग्रामिंग करने और सजावट को पुनर्व्यवस्थित करने के बजाय डिजाइनर ओवर और ओवर ;-) –
+1 मैं समस्या के इस वैचारिक समाधान को स्वीकार करता हूं। ध्यान दें कि यदि आप अमेरिका (शायद अन्य भी) में हैं, तो यह एक कार्यालय में अग्नि कोड के खिलाफ होगा। यदि आप इसे करने की कोशिश करते हैं और नियामक को यह पता चला है तो आपको दीवारों को चित्रित करने के लिए शायद कम परेशानी होगी। शायद आप बहुत हल्के रंगों का उपयोग कर सकते हैं? :) –