Banjo API 0.0.1
C99 game development API
Loading...
Searching...
No Matches
Physics
Collaboration diagram for Physics:

Topics

 2D Physics

Macros

#define BJ_GRAVITATIONAL_CONSTANT_SI   BJ_F(6.67430e-11)

Functions

static bj_real bj_galileo_position (bj_real position, bj_real velocity, bj_real acceleration, bj_real time)
static bj_real bj_galileo_velocity (bj_real velocity, bj_real acceleration, bj_real time)
static bj_real bj_newton_gravitation (bj_real m1, bj_real m2, bj_real r, bj_real g)
static bj_real bj_newton_plummer_gravitation (bj_real m1, bj_real m2, bj_real r, bj_real g, bj_real eps)

Detailed Description

Basic physics utilities (constant-acceleration kinematics, etc.)

This header provides small helpers for common physics operations. By default, quantities are interpreted in SI units (meters, seconds), but formulas are dimensionally homogeneous: results are correct for any consistent unit system (e.g., km and s; cm and s), provided all inputs use the same system.

Dimensionality uses the base dimensions L (length) and T (time). For example:

  • position: [L]
  • velocity: [L T^-1]
  • acceleration: [L T^-2]
  • time: [T]

Macro Definition Documentation

◆ BJ_GRAVITATIONAL_CONSTANT_SI

#define BJ_GRAVITATIONAL_CONSTANT_SI   BJ_F(6.67430e-11)

Newtonian constant of gravitation in SI units.

Defines the physical constant G = 6.67430 × 10⁻¹¹ m³·kg⁻¹·s⁻², expressed in the active bj_real precision type.

Note
Use only when working in SI units (meters, kilograms, seconds).

Function Documentation

◆ bj_galileo_position()

bj_real bj_galileo_position ( bj_real position,
bj_real velocity,
bj_real acceleration,
bj_real time )
inlinestatic

Galileo’s uniformly accelerated motion — position at time t.

Uses: x(t) = x0 + v0 * t + 0.5 * a * t^2

Parameters
positionInitial position [L]
velocityInitial velocity [L T^-1]
accelerationConstant acceleration [L T^-2]
timeElapsed time [T]
Returns
Position at time t, in [L].

◆ bj_galileo_velocity()

bj_real bj_galileo_velocity ( bj_real velocity,
bj_real acceleration,
bj_real time )
inlinestatic

Galileo’s uniformly accelerated motion — velocity at time t.

Uses: v(t) = v0 + a * t

Parameters
velocityInitial velocity [L T^-1]
accelerationConstant acceleration [L T^-2]
timeElapsed time [T]
Returns
Velocity at time t, in [L T^-1].

◆ bj_newton_gravitation()

bj_real bj_newton_gravitation ( bj_real m1,
bj_real m2,
bj_real r,
bj_real g )
inlinestatic

Newton’s law of universal gravitation — force magnitude.

$ F = G\,\dfrac{m_1 m_2}{r^2} $

Parameters
m1Mass of first body [M]
m2Mass of second body [M]
rSeparation distance [L]
gGravitational constant G [L^3 M^-1 T^-2]
Returns
Force magnitude [M L T^-2].

◆ bj_newton_plummer_gravitation()

bj_real bj_newton_plummer_gravitation ( bj_real m1,
bj_real m2,
bj_real r,
bj_real g,
bj_real eps )
inlinestatic

Newtonian gravitation with Plummer softening — force magnitude.

$ \|\mathbf{F}\| = G\,m_1 m_2 \dfrac{r}{(r^2+\varepsilon^2)^{3/2}} $

Parameters
m1Mass of first body [M]
m2Mass of second body [M]
rSeparation distance [L]
gGravitational constant G [L^3 M^-1 T^-2]
epsSoftening length ε [L]
Returns
Softened force magnitude [M L T^-2].