मैं एक गेम के लिए एक बेतरतीब ढंग से उत्पन्न वातावरण बना रहा हूं जो मैं विकसित कर रहा हूं। में उपयोग OpenGL
और कोडिंग कर रहा हूँ Java
।
मैं अपनी दुनिया में बेतरतीब ढंग से पेड़ लगाने की कोशिश कर रहा हूं (जंगल बनाने के लिए), लेकिन मैं नहीं चाहता कि मॉडल ओवरलैप हों (जो तब होता है जब दो पेड़ एक-दूसरे के बहुत करीब रखे जाते हैं)। यहाँ मैं क्या बात कर रहा हूँ की एक तस्वीर है:
यदि आवश्यक हो तो मैं और अधिक कोड प्रदान कर सकता हूं, लेकिन यहां आवश्यक स्निपेट्स हैं। मैं एक में मेरी वस्तुओं के भंडारण कर रहा हूँ ArrayList
के साथ List<Entity> entities = new ArrayList<Entity>();
। मैं उस सूची का उपयोग कर रहा हूँ:
Random random = new Random();
for (int i = 0; i < 500; i++) {
entities.add(new Entity(tree, new Vector3f(random.nextFloat() * 800 - 400,
0, random.nextFloat() * -600), 0, random.nextFloat() * 360, 0, 3, 3, 3);
}
जहां प्रत्येक Entity
निम्नलिखित सिंटैक्स का अनुसरण करता है:
new Entity(modelName, positionVector(x, y, z), rotX, rotY, rotZ, scaleX, scaleY, scaleZ);
rotX
एक्स-एक्सिस के साथ घुमाव है, और scaleX
एक्स-दिशा में पैमाने है, आदि।
आप देख सकते हैं कि मैं इन पेड़ों को बेतरतीब ढंग random.nextFloat()
से x
और z
पदों के लिए रख रहा हूं , और सीमा को बांधे ताकि पेड़ वांछित स्थान पर दिखाई दें। हालाँकि, मैं किसी भी तरह इन पदों को नियंत्रित करना चाहूंगा, ताकि अगर यह पहले से रखे गए पेड़ के बहुत करीब पेड़ लगाने की कोशिश करे, तो यह एक नए यादृच्छिक स्थिति की पुनरावृत्ति करेगा। मैं सोच रहा था कि प्रत्येक पेड़ के Entity
पास एक और क्षेत्र हो सकता है, जैसे कि treeTrunkGirth
, और यदि एक पेड़ को दूसरे पेड़ के स्थान के बीच की दूरी पर रखा जाता है और वह है treeTrunkGirth
, तो यह एक नई स्थिति को पुनर्गणना करेगा। क्या इसको मदद देने का कोई तरीका है?
मुझे अधिक कोड स्निपेट और आवश्यक रूप से विवरण जोड़ने में खुशी हो रही है।
treeTrunkGirth
एक निरंतर के बजाय एक पेड़ रखने के लिए न्यूनतम दूरी निर्धारित करने के लिए उपयोग करें यदि उन्हें अलग करने की आवश्यकता हो।