Síly
Aplikuje průběžnou linear force nebo torque na Dynamic body.
Forces simulace integruje v čase. Aplikujte je během simulačních aktualizací pro trvalý thrust, pružiny, drag nebo vlastní gravitaci.
High-Level API#
body.add_force(x, y, z)
body.add_force_at_position(fx, fy, fz, px, py, pz)
body.add_force_local(fx, fy, fz, local_x, local_y, local_z)
body.add_torque(x, y, z)Souřadnicové prostory#
| Metoda | Prostor vektoru | Bod aplikace |
|---|---|---|
| add_force | World-space force | Těžiště |
| add_force_at_position | World-space force | World-space bod |
| add_force_local | World-space force | Lokální bod převedený body rotací a originem |
| add_torque | World-space torque | Přímý rotační vstup |
Local helper mění pouze application point; směr force zůstává world-space. Force mimo těžiště může vytvářet linear i angular acceleration. Všechny komponenty musí být konečné.
Force, mass a timestep#
Při stejné force těžší body zrychluje méně. Force není okamžitá změna velocity; výsledek závisí na physics timestep a době působení. Při doporučené konvenci metr/kilogram odpovídá force newtonům a torque newtonmetrům.
Příklad#
// Step event: trvalý tah vzhůru.
body.add_force(0, 0, 45);
// World-space force v lokálním bodě body.
body.add_force_local(12, 0, 0, 0, -0.5, 0);
// Čistá rotační síla.
body.add_torque(0, 0, 8);Low-Level / Advanced API#
Low-level at_position používá world-space bod. add_force_local je high-level convenience helper.
Settery vracejí true při úspěchu a false při neplatném vstupu, invalidním nebo stale body či nepodporovaném motion typu. Gettery vracejí požadovanou hodnotu nebo undefined při selhání. High-level chybu zjistíte přes jolt_get_error().
Ověřené kontrakty operací#
Následující kontrakty rozlišují jednotky, návratové hodnoty, chyby a životnost podle aktuální implementace. Nevynechávej kontrolu výsledku: false, 0 a undefined mohou mít u různých metod odlišný význam.
| Symbol / vlastník | Signatura | Kontrakt operace |
|---|---|---|
| JoltBody.add_force | JoltBody.add_force(x, y, z) | Boolean; Dynamic těleso, světová síla XYZ v N. Bez bodu působí v COM; at_position světový bod m, local převádí pouze místní bod m, nikoliv směr síly. Obnovuj sílu pro každý požadovaný fyzikální krok. |
| JoltBody.add_force_at_position | JoltBody.add_force_at_position(fx, fy, fz, px, py, pz) | Boolean; Dynamic těleso, světová síla XYZ v N. Bez bodu působí v COM; at_position světový bod m, local převádí pouze místní bod m, nikoliv směr síly. Obnovuj sílu pro každý požadovaný fyzikální krok. |
| JoltBody.add_torque | JoltBody.add_torque(x, y, z) | Boolean; Dynamic těleso, světový moment N·m / úhlový impuls N·m·s. Moment je krokový, impuls jednorázový. |