คุณกำลังพยายามคำนวณแรงบิด แรงบิดขึ้นอยู่กับแรงที่กระทำ F, ตำแหน่งของงานและจุดศูนย์กลางมวลของวัตถุ
1) จุดศูนย์กลางมวล กำหนดจุดศูนย์กลางมวลของวัตถุ
2) Point of Application : กำหนดจุดที่แรงกระทำ
3) Moment Arm : ระยะห่างระหว่างจุดสองจุดที่กำหนดไว้ด้านบน
Point centerofMass
Point applicationPoint
Vector momentArm = applicationPoint - centerofMass
4) แรงเชิงมุม : แบ่งแรงของคุณ F เป็นสองเวกเตอร์มุมฉากหนึ่งเส้นขนานกับเส้นใน 3) และหนึ่งฉากตั้งฉาก องค์ประกอบแบบขนานไม่มีผลต่อโมเมนตัมเชิงมุม แนวตั้งฉากหนึ่งทำ คุณสามารถคำนวณส่วนประกอบขนานโดยการฉายภาพเวกเตอร์ คุณสามารถลบสิ่งนั้นออกจากต้นฉบับเพื่อให้ได้องค์ประกอบตั้งฉาก ใน pseudocode ( dot
หมายถึง dot-product)
Vector myForce
Vector momentArm
parallelComponent = momentArm * (dot(myForce, momentArm) / dot(momentArm, momentArm))
angularForce = myForce - parallelComponent
5) แรงบิด : องค์ประกอบตั้งฉากของแรงคูณด้วยความยาวของช่วงเวลาที่แขน
Vector angularForce
Vector torque = angularForce * momentArm.Length
วิธีรับจากแรงบิดถึงความเร็วเชิงมุม:
1) Moment of Inertia : คำจำกัดความของความเฉื่อยในการหมุนของวัตถุที่กำหนด ตัวอย่างเช่นมันต้องใช้แรงบิดมากขึ้นในการหมุนแท่งยาวกว่าทรงกลมที่มีมวลเท่ากัน หากคุณไม่กังวลเกี่ยวกับความจริงคุณสามารถแกล้งช่วงเวลาของความเฉื่อยนั้นสัมพันธ์กับมวลหรือคุณอาจเพิกเฉยต่อรูปร่างและมวลของวัตถุทั้งหมด
2) การเร่งความเร็วเชิงมุม :
Vector angularAcceleration = torque / momentOfInertia
3) ความเร็วเชิงมุม : ความเร็วเชิงมุมจะเพิ่มขึ้นตราบใดที่มีการใช้แรงบิด ดังนั้นสูตรคร่าว ๆ จะเป็น "ความเร็วเชิงมุมในเวลาTเป็นผลรวมสะสมของการเร่งความเร็วเชิงมุมจนถึงT ." สิ่งนี้แสดงเป็น pseudocode เป็น
void Update(float elapsedSeconds):
orientation += 0.5 * angularVelocity * elapsedSeconds;
angularVelocity += angularAcceleration * elapsedSeconds;
orientation += 0.5 * angularVelocity * elapsedSeconds;