Struct JerkVector3
A 3D vector whose components represent jerk, each expressed as a UnitsNet.Jerk.
public readonly record struct JerkVector3 : IEquatable<JerkVector3>
- Implements
- Inherited Members
- Extension Methods
Constructors
JerkVector3(Jerk, Jerk, Jerk)
Constructs a JerkVector3 from three UnitsNet.Jerk components.
public JerkVector3(Jerk x, Jerk y, Jerk z)
Parameters
xJerkThe X component.
yJerkThe Y component.
zJerkThe Z component.
Properties
Magnitude
Returns the Euclidean magnitude of this vector as a UnitsNet.Jerk. The result is expressed in the same unit as the X component.
public Jerk Magnitude { get; }
Property Value
- Jerk
X
The X component.
public Jerk X { get; }
Property Value
- Jerk
Y
The Y component.
public Jerk Y { get; }
Property Value
- Jerk
Z
The Z component.
public Jerk Z { get; }
Property Value
- Jerk
Zero
A JerkVector3 with all components set to zero.
public static JerkVector3 Zero { get; }
Property Value
Methods
Abs()
Returns a vector with each component replaced by its absolute value.
public JerkVector3 Abs()
Returns
- JerkVector3
A JerkVector3 with non-negative components.
Add(JerkVector3)
Adds two vectors component-wise.
public JerkVector3 Add(JerkVector3 other)
Parameters
otherJerkVector3The vector to add.
Returns
- JerkVector3
The component-wise sum.
ApproximatelyEquals(JerkVector3, Jerk)
Returns true if each component of this vector is within
tolerance of the corresponding component of other.
public bool ApproximatelyEquals(JerkVector3 other, Jerk tolerance)
Parameters
otherJerkVector3The vector to compare against.
toleranceJerkThe maximum allowed difference per component (inclusive).
Returns
- bool
true when |X - other.X| <= tolerance, |Y - other.Y| <= tolerance, and |Z - other.Z| <= tolerance.
As(JerkUnit)
Projects all three components into the requested unit, returning a unit-less DoubleVector3.
public DoubleVector3 As(JerkUnit unit)
Parameters
unitJerkUnitThe target unit for each component.
Returns
- DoubleVector3
A DoubleVector3 with components expressed in
unit.
AsDefault()
Returns all three components expressed in the SI base unit as a DoubleVector3.
public DoubleVector3 AsDefault()
Returns
- DoubleVector3
A DoubleVector3 with components in the default SI unit.
Clamp(JerkVector3, JerkVector3)
Returns a vector with each component clamped to the range [min, max].
public JerkVector3 Clamp(JerkVector3 min, JerkVector3 max)
Parameters
minJerkVector3The lower bound vector (inclusive, per component).
maxJerkVector3The upper bound vector (inclusive, per component).
Returns
- JerkVector3
A JerkVector3 with each component in [min, max].
Divide(double)
Divides the vector by a scalar divisor.
public JerkVector3 Divide(double scalar)
Parameters
scalardoubleThe scalar divisor.
Returns
- JerkVector3
The divided vector.
Equals(JerkVector3)
Indicates whether the current object is equal to another object of the same type.
public bool Equals(JerkVector3 other)
Parameters
otherJerkVector3An object to compare with this object.
Returns
FromCentimetersPerSecondCubed(double, double, double)
Creates a JerkVector3 with all components created via UnitsNet.Jerk.FromCentimetersPerSecondCubed(UnitsNet.QuantityValue).
public static JerkVector3 FromCentimetersPerSecondCubed(double x, double y, double z)
Parameters
Returns
- JerkVector3
A JerkVector3 with all components in the corresponding unit.
FromDecimetersPerSecondCubed(double, double, double)
Creates a JerkVector3 with all components created via UnitsNet.Jerk.FromDecimetersPerSecondCubed(UnitsNet.QuantityValue).
public static JerkVector3 FromDecimetersPerSecondCubed(double x, double y, double z)
Parameters
Returns
- JerkVector3
A JerkVector3 with all components in the corresponding unit.
FromFeetPerSecondCubed(double, double, double)
Creates a JerkVector3 with all components created via UnitsNet.Jerk.FromFeetPerSecondCubed(UnitsNet.QuantityValue).
public static JerkVector3 FromFeetPerSecondCubed(double x, double y, double z)
Parameters
Returns
- JerkVector3
A JerkVector3 with all components in the corresponding unit.
FromInchesPerSecondCubed(double, double, double)
Creates a JerkVector3 with all components created via UnitsNet.Jerk.FromInchesPerSecondCubed(UnitsNet.QuantityValue).
public static JerkVector3 FromInchesPerSecondCubed(double x, double y, double z)
Parameters
Returns
- JerkVector3
A JerkVector3 with all components in the corresponding unit.
FromKilometersPerSecondCubed(double, double, double)
Creates a JerkVector3 with all components created via UnitsNet.Jerk.FromKilometersPerSecondCubed(UnitsNet.QuantityValue).
public static JerkVector3 FromKilometersPerSecondCubed(double x, double y, double z)
Parameters
Returns
- JerkVector3
A JerkVector3 with all components in the corresponding unit.
FromMetersPerSecondCubed(double, double, double)
Creates a JerkVector3 with all components created via UnitsNet.Jerk.FromMetersPerSecondCubed(UnitsNet.QuantityValue).
public static JerkVector3 FromMetersPerSecondCubed(double x, double y, double z)
Parameters
Returns
- JerkVector3
A JerkVector3 with all components in the corresponding unit.
FromMicrometersPerSecondCubed(double, double, double)
Creates a JerkVector3 with all components created via UnitsNet.Jerk.FromMicrometersPerSecondCubed(UnitsNet.QuantityValue).
public static JerkVector3 FromMicrometersPerSecondCubed(double x, double y, double z)
Parameters
Returns
- JerkVector3
A JerkVector3 with all components in the corresponding unit.
FromMillimetersPerSecondCubed(double, double, double)
Creates a JerkVector3 with all components created via UnitsNet.Jerk.FromMillimetersPerSecondCubed(UnitsNet.QuantityValue).
public static JerkVector3 FromMillimetersPerSecondCubed(double x, double y, double z)
Parameters
Returns
- JerkVector3
A JerkVector3 with all components in the corresponding unit.
FromMillistandardGravitiesPerSecond(double, double, double)
Creates a JerkVector3 with all components created via UnitsNet.Jerk.FromMillistandardGravitiesPerSecond(UnitsNet.QuantityValue).
public static JerkVector3 FromMillistandardGravitiesPerSecond(double x, double y, double z)
Parameters
Returns
- JerkVector3
A JerkVector3 with all components in the corresponding unit.
FromNanometersPerSecondCubed(double, double, double)
Creates a JerkVector3 with all components created via UnitsNet.Jerk.FromNanometersPerSecondCubed(UnitsNet.QuantityValue).
public static JerkVector3 FromNanometersPerSecondCubed(double x, double y, double z)
Parameters
Returns
- JerkVector3
A JerkVector3 with all components in the corresponding unit.
FromStandardGravitiesPerSecond(double, double, double)
Creates a JerkVector3 with all components created via UnitsNet.Jerk.FromStandardGravitiesPerSecond(UnitsNet.QuantityValue).
public static JerkVector3 FromStandardGravitiesPerSecond(double x, double y, double z)
Parameters
Returns
- JerkVector3
A JerkVector3 with all components in the corresponding unit.
GetHashCode()
Returns the hash code for this instance.
public override int GetHashCode()
Returns
- int
A 32-bit signed integer that is the hash code for this instance.
Lerp(JerkVector3, JerkVector3, double)
Linearly interpolates between two vectors.
The result at t = 0 is a; at t = 1 it is
b. Values of t outside [0, 1] extrapolate beyond the
endpoints — use LerpClamped(JerkVector3, JerkVector3, double) if you need the result bounded to the segment
between a and b.
public static JerkVector3 Lerp(JerkVector3 a, JerkVector3 b, double t)
Parameters
aJerkVector3The start vector (
t= 0).bJerkVector3The end vector (
t= 1).tdoubleThe interpolation parameter. Values outside [0, 1] extrapolate.
Returns
- JerkVector3
The interpolated JerkVector3.
LerpClamped(JerkVector3, JerkVector3, double)
Linearly interpolates between two vectors, with t clamped to [0, 1].
public static JerkVector3 LerpClamped(JerkVector3 a, JerkVector3 b, double t)
Parameters
aJerkVector3The start vector (
t= 0).bJerkVector3The end vector (
t= 1).tdoubleThe interpolation parameter, clamped to [0, 1].
Returns
- JerkVector3
The interpolated JerkVector3, always between
aandb.
Multiply(double)
Scales the vector by a scalar factor.
public JerkVector3 Multiply(double scalar)
Parameters
scalardoubleThe scalar factor.
Returns
- JerkVector3
The scaled vector.
Negate()
Negates all components.
public JerkVector3 Negate()
Returns
- JerkVector3
A vector with all components negated.
Normalize()
Returns a dimensionless unit vector pointing in the same direction. For a zero vector, Zero is returned.
public DoubleVector3 Normalize()
Returns
- DoubleVector3
A unit-length DoubleVector3 in the same direction.
Subtract(JerkVector3)
Subtracts two vectors component-wise.
public JerkVector3 Subtract(JerkVector3 other)
Parameters
otherJerkVector3The vector to subtract.
Returns
- JerkVector3
The component-wise difference.
Operators
operator +(JerkVector3, JerkVector3)
Adds two vectors component-wise.
public static JerkVector3 operator +(JerkVector3 left, JerkVector3 right)
Parameters
leftJerkVector3The left operand.
rightJerkVector3The right operand.
Returns
- JerkVector3
The component-wise sum.
operator /(JerkVector3, double)
Divides the vector by a scalar divisor.
public static JerkVector3 operator /(JerkVector3 left, double scalar)
Parameters
leftJerkVector3The vector to divide.
scalardoubleThe scalar divisor.
Returns
- JerkVector3
The divided vector.
operator *(double, JerkVector3)
Scales the vector by a scalar factor. Operands may be supplied in either order.
public static JerkVector3 operator *(double scalar, JerkVector3 right)
Parameters
scalardoubleThe scalar factor.
rightJerkVector3The vector to scale.
Returns
- JerkVector3
The scaled vector.
operator *(JerkVector3, double)
Scales the vector by a scalar factor.
public static JerkVector3 operator *(JerkVector3 left, double scalar)
Parameters
leftJerkVector3The vector to scale.
scalardoubleThe scalar factor.
Returns
- JerkVector3
The scaled vector.
operator *(JerkVector3, Duration)
Multiplies a jerk vector by a duration to produce an acceleration change (Δa = j·t) in 3D, preserving the caller's unit.
Jerk is the rate of change of acceleration in all three axes. Multiplying by time
tells you how much the acceleration will have changed after right
seconds of constant jerk. The result unit is derived from the jerk component unit
(e.g. ft/s³ → ft/s²).
Jerk is important in 3D trajectory planning and ride-quality analysis — a smooth motion profile limits jerk in all axes to avoid mechanical shock or passenger discomfort (e.g. in autonomous vehicle or robot arm control).
public static AccelerationVector3 operator *(JerkVector3 left, Duration right)
Parameters
leftJerkVector3The 3D jerk vector (rate of change of acceleration in each direction).
rightDurationThe elapsed time.
Returns
- AccelerationVector3
The change in 3D acceleration vector (Δa) in the unit matching the jerk component unit.
Examples
// Jerk of (2, 0, 1) m/s³ applied for 3 seconds
var jerk = new JerkVector3(
Jerk.FromMetersPerSecondCubed(2), Jerk.Zero, Jerk.FromMetersPerSecondCubed(1));
AccelerationVector3 deltaA = jerk * Duration.FromSeconds(3); // (6 m/s², 0, 3 m/s²)
// Unit-preserving: ft/s³ × s = ft/s²
var jerkFt = new JerkVector3(
Jerk.From(1, JerkUnit.FootPerSecondCubed), Jerk.Zero, Jerk.Zero);
AccelerationVector3 deltaAFt = jerkFt * Duration.FromSeconds(2); // (2 ft/s², 0, 0)
operator *(Duration, JerkVector3)
Multiplies a duration by a jerk vector to produce an acceleration change (Δa = j·t). Operands may be supplied in either order.
public static AccelerationVector3 operator *(Duration left, JerkVector3 right)
Parameters
leftDurationThe elapsed time.
rightJerkVector3The 3D jerk vector.
Returns
- AccelerationVector3
The change in 3D acceleration vector (Δa) in the unit matching the jerk component unit.
Examples
AccelerationVector3 deltaA = Duration.FromSeconds(3) * new JerkVector3(
Jerk.FromMetersPerSecondCubed(2), Jerk.Zero, Jerk.Zero); // (6 m/s², 0, 0)
operator -(JerkVector3, JerkVector3)
Subtracts two vectors component-wise.
public static JerkVector3 operator -(JerkVector3 left, JerkVector3 right)
Parameters
leftJerkVector3The left operand.
rightJerkVector3The right operand.
Returns
- JerkVector3
The component-wise difference.
operator -(JerkVector3)
Negates all components.
public static JerkVector3 operator -(JerkVector3 value)
Parameters
valueJerkVector3The vector to negate.
Returns
- JerkVector3
A vector with all components negated.