2011-06-06 9 views
10

द्वारा मैं किसी ऑब्जेक्ट में हेरफेर करने की कोशिश कर रहा हूं। जब यह किसी अन्य वस्तु के पास आता है, तो चलो एक ग्लोब कहें, मैं चाहता हूं कि दुनिया मूल वस्तु पर गुरुत्वाकर्षण खींच ले। मुझे पता है कि मुझे 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]; 
+1

आप ऑब्जेक्ट की दूरी के वर्ग के आनुपातिक प्रोजेक्टाइल के लिए केवल एक बल वेक्टर क्यों लागू नहीं करते हैं? यानी क्यों न केवल "गुरुत्वाकर्षण करें"? पथ स्वाभाविक रूप से घुमाया जाएगा, यह मानते हुए कि प्रोजेक्ट सीधे वस्तु के केंद्र की तरफ नहीं जा रहा है। – Robinson

+0

http://oreilly.com/catalog/9780596000066 –

उत्तर

1

प्रक्षेपवक्र एक शांकव खंड (रेखा, अतिशयोक्ति, परवलय, अंडाकार या वृत्त) होगा।

आप उन तर्कसंगत बेजियर वक्र के रूप में प्रतिनिधित्व कर सकते हैं। http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/NURBS/RB-conics.html और http://www.cs.unc.edu/~dm/UNC/COMP236/papers/farin.pdf

आप द्विघात बेज़ियर वर्गों का उपयोग करने पर जोर देते हैं, तो मैं इस http://www.netlib.org/minpack/lmder.f की तरह एक समारोह का उपयोग नियंत्रण बिंदुओं कम से कम वर्गों द्वारा न्यूनीकरण के इष्टतम पदों को खोजने के लिए होगा।

मुझे लगता है कि यदि आप केवल शंकु वर्गों की गणना करते हैं और उन्हें लाइन लूप के रूप में खींचते हैं तो यह सबसे आसान होगा।

या आप एक वर्लेट इंटीग्रेटर को लागू करते हैं और गति के समीकरणों को हल करते हैं।

संबंधित मुद्दे