FrictionSimulation class

A simulation that applies a drag to slow a particle down.

Models a particle affected by fluid drag, e.g. air resistance.

The simulation ends when the velocity of the particle drops to zero (within the current velocity tolerance).

Implemented by


FrictionSimulation(double drag, double position, double velocity, { Tolerance tolerance: Tolerance.defaultTolerance })
Creates a FrictionSimulation with the given arguments, namely: the fluid drag coefficient, a unitless value; the initial position, in the same length units as used for x; and the initial velocity, in the same velocity units as used for dx.
FrictionSimulation.through(double startPosition, double endPosition, double startVelocity, double endVelocity)
Creates a new friction simulation with its fluid drag coefficient set so as to ensure that the simulation starts and ends at the specified positions and velocities. [...]


finalX → double
The value of x at double.infinity.
hashCode → int
The hash code for this object. [...]
read-only, inherited
runtimeType → Type
A representation of the runtime type of the object.
read-only, inherited
tolerance Tolerance
How close to the actual end of the simulation a value at a particular time must be before isDone considers the simulation to be "done". [...]
read / write, inherited


dx(double time) → double
The velocity of the object in the simulation at the given time.
isDone(double time) → bool
Whether the simulation is "done" at the given time.
timeAtX(double x) → double
The time at which the value of x(time) will equal x. [...]
x(double time) → double
The position of the object in the simulation at the given time.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
toString() → String
Returns a string representation of this object.


operator ==(dynamic other) → bool
The equality operator. [...]