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).



FrictionSimulation(double drag, double position, double velocity, {Tolerance tolerance = Tolerance.defaultTolerance, double constantDeceleration = 0})
Creates a FrictionSimulation with the given arguments, namely: the fluid drag coefficient cₓ, a unitless value; the initial position x₀, in the same length units as used for x; and the initial velocity dx₀, 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 (cₓ) 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.
no setter
hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
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".
getter/setter pairinherited


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.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
timeAtX(double x) double
The time at which the value of x(time) will equal x.
toString() String
A string representation of this object.
x(double time) double
The position of the object in the simulation at the given time.


operator ==(Object other) bool
The equality operator.