यह बहुत साफ है!
आप इसके बारे में सही तरीके से जा रहे हैं लेकिन आपको वास्तव में atan2 फ़ंक्शन का उपयोग करना चाहिए। यह किसी भी 0 चेक की आवश्यकता को हटा देता है।
atan2 समारोह आप एक कोण जो सकारात्मक एक्स वेक्टर से घड़ी की विपरीत है
(1, 0) --->
मधुमक्खियों 90 डिग्री इस शुरू करने की दृष्टि से बंद ताकि आप घटाना चाहिए देता है दिशा से 90 डिग्री। (आप जिस तरह से डीई और डीएक्स गणना करते हैं, उसके आधार पर आपको
आप पाते हैं कि दिशा तेजी से बदलती है, इसलिए आप अगले परिवर्तन को उन परिवर्तनों के सेट पर सीमित करने पर विचार कर सकते हैं जो कोण को जन्म देते हैं कुछ दहलीज के नीचे बदलें। इससे आंदोलन थोड़ा आसान हो जाएगा।
मैं वास्तव में इसके बारे में कहूँगा- -पीआई/8 और पीआई/8 रेडियंस और एक यादृच्छिक लंबाई के बीच एक कोण उत्पन्न करके। अनिवार्य रूप से ध्रुवीय निर्देशांक का उपयोग कर। फिर इस नई यादृच्छिक ध्रुवीय एक्स और
newX = currentX + (randomLength * cos(randomAngle + currentAngle)) and
newY = currentY + (randomLength * sin(randomAngle + currentAngle))
आप कोण के साथ काम करते हैं, जैसा कि आप एक निश्चित क्षेत्र के भीतर रहने के मधुमक्खियों चाहते आप भी और अधिक प्राकृतिक प्रभाव प्राप्त कर सकते हैं की तरह y स्थिति के लिए ऑफसेट जोड़ने के लिए, आप एक मजबूर कर सकते हैं क्षेत्र के केंद्र की तरफ पूर्वाग्रह है क्योंकि वे किनारे के करीब और करीब आते हैं।
अद्यतन:
तो मैं करीब से देख लिया है। समस्या यह है कि आप उम्मीद करते हैं। रोटेशन सेट करने के लिए रोटेशन सेट करें जब वास्तव में रोटेशन
में इसे ठीक करने के लिए 2 विकल्प हैं।
घुमाएँ पिछले और वर्तमान कोण
.transform विधि का उपयोग कर रोटेशन सेट के बीच अंतर से
आप कार्रवाई यहाँ http://jsfiddle.net/c5A2A/
स्रोत
2012-03-07 16:25:31
में समाधान 2 देख सकते हैं यदि आप वास्तव में मधुमक्खियों का उपयोग कर रहे हैं तो मेरे पास वास्तव में अनियमित होने के लिए एक सेट होगा और एक झुंड नेता का अनुसरण करेगा। – Incognito
आप बाधाओं को थोड़ा सा कुशल बना सकते हैं ताकि यह पूरी तरह से यादृच्छिक न हो। 85% यादृच्छिक और 15% अंतिम दिशा या उस तरह कुछ।मुझे लगता है कि यह आगे की दिशा में थोड़ा और आगे जाएगा – ajax333221