Bạn đang cố gắng tính toán mô-men xoắn. Mô-men xoắn phụ thuộc vào lực F ứng dụng, điểm áp dụng và tâm khối lượng của vật.
1) Trung tâm thánh lễ . Xác định tâm khối lượng của vật.
2) Điểm áp dụng : Xác định điểm mà lực tác dụng lên.
3) Khoảnh khắc : Khoảng cách giữa hai điểm được xác định ở trên.
Point centerofMass
Point applicationPoint
Vector momentArm = applicationPoint - centerofMass
4) Lực góc : Chia lực F của bạn thành hai vectơ trực giao, một song song với đường thẳng trong 3) và một vuông góc. Thành phần song song không ảnh hưởng đến động lượng góc. Cái nào vuông góc nào. Bạn có thể tính toán thành phần song song bằng phép chiếu vector. Bạn có thể trừ nó từ bản gốc để có được thành phần vuông góc. Trong mã giả ( dot
có nghĩa là sản phẩm chấm)
Vector myForce
Vector momentArm
parallelComponent = momentArm * (dot(myForce, momentArm) / dot(momentArm, momentArm))
angularForce = myForce - parallelComponent
5) Mô-men xoắn : Thành phần vuông góc của lực nhân với chiều dài của cánh tay đòn.
Vector angularForce
Vector torque = angularForce * momentArm.Length
Để có được từ Torque đến vận tốc góc:
1) Mô men quán tính : Một định nghĩa về quán tính quay của một vật thể có bao nhiêu. Ví dụ, cần nhiều mô-men xoắn hơn để xoay một thanh dài hơn một quả cầu có cùng khối lượng. Nếu bạn không quan tâm đến chủ nghĩa hiện thực, bạn có thể giả vờ thời điểm quán tính liên quan đến khối lượng hoặc bạn có thể bỏ qua toàn bộ hình dạng và khối lượng của vật thể.
2) Gia tốc góc :
Vector angularAcceleration = torque / momentOfInertia
3) Vận tốc góc : Tốc độ góc sẽ tiếp tục tăng miễn là mô men xoắn được áp dụng. Vì vậy, một công thức đại khái sẽ là "Vận tốc góc tại thời điểm T là tổng tích lũy của gia tốc góc cho đến T. " Điều này được thể hiện bằng mã giả như
void Update(float elapsedSeconds):
orientation += 0.5 * angularVelocity * elapsedSeconds;
angularVelocity += angularAcceleration * elapsedSeconds;
orientation += 0.5 * angularVelocity * elapsedSeconds;