ऐसा करने का एक तरीका एक छद्म भौतिकी मॉडल का उपयोग करना है। यदि आपके संलग्न होते हैं तो आपके ऑब्जेक्ट्स में एक प्रतिकूल बल और एक आकर्षक बल होता है।
आप वस्तुओं को उनके द्वारा लागू बलों के योग के अनुसार स्थानांतरित करते हैं: प्रत्येक चरण में किसी ऑब्जेक्ट पर लागू बलों के योग की गणना करें और इसे बल की दिशा में ले जाएं।
छद्म कोड में, एक यात्रा होगा:
for each object o1
force[o1] = 0
for each object o2
if o1 and o2 are linked
force[o1] += attraction_force(o1, o2)
else
force[o1] += repulsion_force(o1, o2)
for each object o1
move(o1, force[o1])
और जब वस्तुओं एक स्थिर स्थिति में पहुँच गए हैं पुनरावृत्तियों बंद करो।
आपको शायद विभिन्न बल कानूनों के साथ प्रयोग करने की आवश्यकता होगी। विशेष रूप से, आप वस्तुओं को आसन्न संतुलन तक पहुंचने के लिए आसन्न करना चाहते हैं। मैं दूरी के एक शक्ति तीव्रता रैखिक (एक स्प्रिंग की तरह) या द्विघात (gravition/बिजली आकर्षण)
इसके अलावा, आप शायद शेष से ग्राफ के कुछ हिस्सों को रोकने के लिए वस्तुओं को बेतरतीब ढंग से ले जाने के लिए की आवश्यकता होगी के साथ प्रयोग stucked होगा। यादृच्छिक कदम की मात्रा पहले पुनरावृत्तियों के लिए बड़ी होनी चाहिए और समय के साथ घटाना चाहिए।
मैं आपके द्वारा पहले से बनाए गए शीर्ष पर एक सूक्ष्मता जोड़ना चाहता हूं: यदि ऑब्जेक्ट जुड़े हुए हैं, तो परस्पर आकर्षण प्रत्येक दूसरे से कुछ दूरी पर रुक जाना चाहिए। जब वे करीब आते हैं, तो उन्हें एक-दूसरे को पीछे हटना शुरू करना चाहिए। संभोग, इस व्यवहार को 'आकर्षण_फोर्स' समारोह में शामिल किया जा सकता है और नकारात्मक आकर्षण के रूप में मॉडलिंग किया जा सकता है। इस तरह, जुड़ा हुआ वस्तु एक दूसरे से एक निश्चित मानक दूरी की तलाश करेगा। – Ideogram