2 डी स्प्राइट के घूर्णी बल की गणना


35

मुझे आश्चर्य हो रहा है कि क्या किसी के पास निम्न परिदृश्य की गणना करने का एक सुंदर तरीका है।

मेरे पास (n) वर्गों की संख्या, यादृच्छिक आकृतियों की एक वस्तु है, लेकिन हम दिखावा करेंगे कि वे सभी आयताकार हैं।

हम बिना किसी गुरुत्वाकर्षण के साथ काम कर रहे हैं, इसलिए ऊपर से नीचे के दृष्टिकोण से अंतरिक्ष में वस्तु पर विचार करें। मैं एक विशिष्ट वर्ग पर ऑब्जेक्ट के लिए एक बल लागू कर रहा हूं (जैसा कि नीचे सचित्र है)।

बल लगाना

लागू किए जाने वाले स्थान के आधार पर, मैं घूर्णी कोण की गणना कैसे करूं, बल लागू होने के आधार पर। यदि केंद्र वर्ग में लागू किया जाता है, तो यह सीधे जाएगा। केंद्र से आगे बढ़ने पर इसे कैसे व्यवहार करना चाहिए? मैं घूर्णी वेग की गणना कैसे करूं?


जैसे ही वस्तु घूमती है आप समय के माध्यम से बल के साथ क्या करना चाहते हैं? क्या यह हमेशा एक ही दिशा में एक ही वर्ग पर लागू होता है? क्या यह वस्तु के किनारे "स्वीप" करता है? आपके द्वारा दी जा रही जानकारी के साथ, आप केवल संबंधित घूर्णी बल (उर्फ टॉर्क) प्राप्त कर सकते हैं, लेकिन यदि आप उसमें से एक घूर्णन गति कम करना चाहते हैं, तो आपको या तो एक आवेग प्रदान करना होगा (बल की बजाय) या यह समझाना होगा कि कैसे समय बीतने के साथ बल लगाना चाहिए।
सैम होसेवर

ईमानदारी से यह Phys.stackexchange.com के लिए एक बेहतर सवाल होगा, क्योंकि यह पूरी तरह से बुनियादी यांत्रिकी का सवाल है।
ब्लूराजा - डैनी पफ्लुगुएफ्ट

जवाबों:


44

आप टोक़ की गणना करने की कोशिश कर रहे हैं। टोक़ लागू बल एफ, आवेदन के बिंदु और वस्तु के द्रव्यमान के केंद्र पर निर्भर करता है।

1) द्रव्यमान केंद्र । वस्तु के द्रव्यमान के केंद्र को परिभाषित करें।

2) एप्लीकेशन का बिंदु: उस बिंदु को परिभाषित करें जिस पर बल कार्य करता है।

3) मोमेंट आर्म : ऊपर परिभाषित दो बिंदुओं के बीच की दूरी।

Point centerofMass
Point applicationPoint
Vector momentArm = applicationPoint - centerofMass

4) कोणीय बल : अपने बल एफ को दो ऑर्थोगोनल वैक्टर में विभाजित करें, एक पंक्ति में 3 के समानांतर) और एक लंबवत। समानांतर घटक कोणीय गति को प्रभावित नहीं करता है। लंबवत एक करता है। आप वेक्टर प्रोजेक्शन द्वारा समानांतर घटक की गणना कर सकते हैं। आप मूल से उस लंबवत घटक को प्राप्त कर सकते हैं। छद्मकोड में ( dotमतलब-उत्पाद)

Vector myForce
Vector momentArm

parallelComponent = momentArm * (dot(myForce, momentArm) / dot(momentArm, momentArm))
angularForce = myForce - parallelComponent

5) टोक़ : बल का लंबवत घटक पल भुजा की लंबाई से गुणा होता है।

Vector angularForce
Vector torque = angularForce * momentArm.Length

टोक़ से कोणीय वेग में लाने के लिए:

1) पल की जड़ता : किसी दिए गए ऑब्जेक्ट में कितनी घूर्णी जड़ता की परिभाषा है। उदाहरण के लिए, समान द्रव्यमान के क्षेत्र की तुलना में एक लंबी पट्टी को घुमाने में अधिक टोक़ लगता है। यदि आप यथार्थवाद के बारे में चिंतित नहीं हैं, तो आप जड़ता के क्षण को द्रव्यमान के सापेक्ष दिखा सकते हैं, या आप वस्तु के आकार और द्रव्यमान को पूरी तरह से अनदेखा कर सकते हैं।

2) कोणीय त्वरण :

Vector angularAcceleration = torque / momentOfInertia

3) कोणीय वेग : जब तक टोक़ लगाया जा रहा है तब तक कोणीय वेग बढ़ता रहेगा। तो एक सूत्र मोटे तौर पर हो जाएगा "समय में कोणीय वेग टी कोणीय त्वरण अप के संचयी योग जब तक है टी ।" इसे छद्मकोश में व्यक्त किया जाता है

void Update(float elapsedSeconds):
    orientation += 0.5 * angularVelocity * elapsedSeconds;
    angularVelocity += angularAcceleration * elapsedSeconds;
    orientation += 0.5 * angularVelocity * elapsedSeconds;

महान जानकारी, हालांकि, जिस भाग के साथ मैं सबसे अधिक अस्पष्ट हूं, वह यह निर्धारित करना है कि टोक़ बल क्या होना चाहिए। आपके बताए अनुसार मेरे पास सभी घटक हैं।
२०:३

@ जॉन: आपके पास घटक हैं, जिसका अर्थ है कि आपके पास चरण 1 - 3 हैं और यह पता नहीं लगा सकते कि चरण 4 की गणना कैसे करें? यह मुख्य रूप से मुश्किल कदम है। मैं वहां थोड़ा और विस्तार जोड़ूंगा।
जिमी

3
ओरिएंटेशन कोणीय वेग का संचयी योग है, orientation += angularVelocity * elapsedSecondsयह गलत है क्योंकि यह समय के कदम पर वेग को कम कर देता है, जिसका अर्थ है कि विभिन्न फ्रैमरेट्स अलग-अलग अभिविन्यास देंगे। एक उचित सूत्र होगा: float oldVelocity = angularVelocity; angularVelocity += angularAcceleration * elapsedSeconds; orientation += 0.5f * (angularVelocity + oldVelocity) * elapsedSeconds;। इसके अलावा, चूंकि कोई गुरुत्वाकर्षण नहीं है, इसलिए मैं इसके बजाय "द्रव्यमान के केंद्र" का उपयोग करने का सुझाव देता हूं। हालांकि बहुत अच्छी व्याख्या के लिए +1।
सैम होसेवर

1
लंबवत बल का एक भाग द्रव्यमान के केंद्र को तेज करने के लिए कार्य करेगा, और जैसे ही बल द्रव्यमान के केंद्र के करीब लागू होता है, यह कारक बढ़ जाता है। उत्तर अच्छा है और बहुत स्पष्ट है, लेकिन यह इस संबंध में अधूरा लगता है।
सैम वाटकिंस

अपनी खुद की टिप्पणी का जवाब देने के लिए, मैं भौतिकी पर क्रिस हेकर के लेख पढ़ रहा हूं: chrishecker.com/Rigid_body_dynamics । यह पता चला है कि किसी भी बिंदु पर एक बल या आवेग जन के केंद्र पर एफ = मा या a2 = a1 + p के अनुसार अच्छी तरह से ज्ञात प्रभाव पड़ता है, जैसे कि शरीर को घुमाने में सक्षम नहीं था। यह रैखिक गति के संरक्षण के कानून से निम्नानुसार है। त्रिज्या के लिए लंबवत बल का घटक भी जिम्मी के उत्तर में वर्णित के रूप में एक टोक़ और कोणीय गति में परिवर्तन का कारण बनता है।
सैम वाटकिंस

7

यदि बल बहुत मजबूत नहीं हैं, तो उन्हें जोड़ने वाले कई डॉट्स और स्प्रिंग्स का उपयोग करके रोटेशन को अनुकरण करना बहुत आसान है । उस स्थिति में आप बस स्प्रिंग्स द्वारा जुड़े कई डॉट्स से मिलकर अपना आकार ग्रहण करते हैं। प्रत्येक बिंदु द्रव्यमान का प्रतिनिधित्व करता है और आकार में प्रत्येक वस्तु शून्य के बराबर द्रव्यमान है।

वसंत और डॉट्स

ऊपर की तस्वीर में ब्लैक पॉइंट जनता का प्रतिनिधित्व करता है और लाल रेखा स्प्रिंग्स का प्रतिनिधित्व करती है। फिर बल को लागू करने के लिए आपको इसे निकटतम डॉट पर लागू करना होगा और आप देखेंगे कि आपकी वस्तु ठीक वैसे ही घूमेगी, जैसी आप चाहते हैं। अपने आकार को एक ठोस संरचना की तरह बनाने के लिए स्प्रिंग्स को उच्च डंपिंग मूल्य और उच्च के मूल्य के साथ परिभाषित करना बेहतर है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.