द्वारा मैं किसी ऑब्जेक्ट में हेरफेर करने की कोशिश कर रहा हूं। जब यह किसी अन्य वस्तु के पास आता है, तो चलो एक ग्लोब कहें, मैं चाहता हूं कि दुनिया मूल वस्तु पर गुरुत्वाकर्षण खींच ले। मुझे पता है कि मुझे CCBezierTo
का उपयोग करना चाहिए, इसलिए यह प्रोग्रामिंग प्रश्न इतना नहीं है क्योंकि यह गणित प्रश्न है।ऑब्जेक्ट के चारों ओर कोकोस 2 डी बेजियर वक्र जैसे कि गुरुत्वाकर्षण
गणितीय रूप से, मैं बेजियर वक्र (1, 2, और अंत) के तीन बिंदुओं को कैसे समझ सकता हूं और इसे अपनी दूरी (आगे दूर = कम खींच) के आधार पर वजन देता हूं। मेरे पास पहले से ही एक चर में मैप किया गया दूरी है।
चंद्रमा के चारों ओर एक स्पेसशिप slingshotting के बारे में सोचो।
कोड:
ccBezierConfig bezier;
bezier.controlPoint_1 = ccp(projectile.position.x + 10, projectile.position.y + 20);
bezier.controlPoint_2 = ccp(projectile.position.x + 20, projectile.position.y + 40);
bezier.endPosition = ccp(projectile.position.x + 30, projectile.position.y+60);
id bezierAction = [CCBezierTo actionWithDuration:1 bezier:bezier];
[projectile stopAllActions];
[projectile runAction: bezierAction];
आप ऑब्जेक्ट की दूरी के वर्ग के आनुपातिक प्रोजेक्टाइल के लिए केवल एक बल वेक्टर क्यों लागू नहीं करते हैं? यानी क्यों न केवल "गुरुत्वाकर्षण करें"? पथ स्वाभाविक रूप से घुमाया जाएगा, यह मानते हुए कि प्रोजेक्ट सीधे वस्तु के केंद्र की तरफ नहीं जा रहा है। – Robinson
http://oreilly.com/catalog/9780596000066 –