Class Translation2d
- All Implemented Interfaces:
Interpolatable<Translation2d>
public class Translation2d extends Object implements Interpolatable<Translation2d>
This assumes that you are using conventional mathematical axes. When the robot is at the origin facing in the positive X direction, forward is positive X and left is positive Y.
-
Constructor Summary
Constructors Constructor Description Translation2d()
Constructs a Translation2d with X and Y components equal to zero.Translation2d(double x, double y)
Constructs a Translation2d with the X and Y components equal to the provided values.Translation2d(double distance, Rotation2d angle)
Constructs a Translation2d with the provided distance and angle. -
Method Summary
Modifier and Type Method Description Translation2d
div(double scalar)
Returns the translation divided by a scalar.boolean
equals(Object obj)
Checks equality between this Translation2d and another object.Rotation2d
getAngle()
Returns the angle this translation forms with the positive X axis.double
getDistance(Translation2d other)
Calculates the distance between two translations in 2D space.double
getNorm()
Returns the norm, or distance from the origin to the translation.double
getX()
Returns the X component of the translation.double
getY()
Returns the Y component of the translation.int
hashCode()
Translation2d
interpolate(Translation2d endValue, double t)
Return the interpolated value.Translation2d
minus(Translation2d other)
Returns the difference between two translations.Translation2d
plus(Translation2d other)
Returns the sum of two translations in 2D space.Translation2d
rotateBy(Rotation2d other)
Applies a rotation to the translation in 2D space.Translation2d
times(double scalar)
Returns the translation multiplied by a scalar.String
toString()
Translation2d
unaryMinus()
Returns the inverse of the current translation.
-
Constructor Details
-
Translation2d
public Translation2d()Constructs a Translation2d with X and Y components equal to zero. -
Translation2d
Constructs a Translation2d with the X and Y components equal to the provided values.- Parameters:
x
- The x component of the translation.y
- The y component of the translation.
-
Translation2d
Constructs a Translation2d with the provided distance and angle. This is essentially converting from polar coordinates to Cartesian coordinates.- Parameters:
distance
- The distance from the origin to the end of the translation.angle
- The angle between the x-axis and the translation vector.
-
-
Method Details
-
getDistance
Calculates the distance between two translations in 2D space.The distance between translations is defined as √((x₂−x₁)²+(y₂−y₁)²).
- Parameters:
other
- The translation to compute the distance to.- Returns:
- The distance between the two translations.
-
getX
Returns the X component of the translation.- Returns:
- The X component of the translation.
-
getY
Returns the Y component of the translation.- Returns:
- The Y component of the translation.
-
getNorm
Returns the norm, or distance from the origin to the translation.- Returns:
- The norm of the translation.
-
getAngle
Returns the angle this translation forms with the positive X axis.- Returns:
- The angle of the translation
-
rotateBy
Applies a rotation to the translation in 2D space.This multiplies the translation vector by a counterclockwise rotation matrix of the given angle.
[x_new] [other.cos, -other.sin][x] [y_new] = [other.sin, other.cos][y]
For example, rotating a Translation2d of <2, 0> by 90 degrees will return a Translation2d of <0, 2>.
- Parameters:
other
- The rotation to rotate the translation by.- Returns:
- The new rotated translation.
-
plus
Returns the sum of two translations in 2D space.For example, Translation3d(1.0, 2.5) + Translation3d(2.0, 5.5) = Translation3d{3.0, 8.0).
- Parameters:
other
- The translation to add.- Returns:
- The sum of the translations.
-
minus
Returns the difference between two translations.For example, Translation2d(5.0, 4.0) - Translation2d(1.0, 2.0) = Translation2d(4.0, 2.0).
- Parameters:
other
- The translation to subtract.- Returns:
- The difference between the two translations.
-
unaryMinus
Returns the inverse of the current translation. This is equivalent to rotating by 180 degrees, flipping the point over both axes, or negating all components of the translation.- Returns:
- The inverse of the current translation.
-
times
Returns the translation multiplied by a scalar.For example, Translation2d(2.0, 2.5) * 2 = Translation2d(4.0, 5.0).
- Parameters:
scalar
- The scalar to multiply by.- Returns:
- The scaled translation.
-
div
Returns the translation divided by a scalar.For example, Translation3d(2.0, 2.5) / 2 = Translation3d(1.0, 1.25).
- Parameters:
scalar
- The scalar to multiply by.- Returns:
- The reference to the new mutated object.
-
toString
-
equals
Checks equality between this Translation2d and another object. -
hashCode
-
interpolate
Description copied from interface:Interpolatable
Return the interpolated value. This object is assumed to be the starting position, or lower bound.- Specified by:
interpolate
in interfaceInterpolatable<Translation2d>
- Parameters:
endValue
- The upper bound, or end.t
- How far between the lower and upper bound we are. This should be bounded in [0, 1].- Returns:
- The interpolated value.
-