# Class Translation2d

java.lang.Object
edu.wpi.first.math.geometry.Translation2d
All Implemented Interfaces:
Interpolatable<Translation2d>

public class Translation2d
extends Object
implements Interpolatable<Translation2d>
Represents a translation in 2D space. This object can be used to represent a point or a vector.

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 Details

• ### Translation2d

public Translation2d()
Constructs a Translation2d with X and Y components equal to zero.
• ### Translation2d

public Translation2d​(double x, double y)
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

public Translation2d​(double distance, Rotation2d angle)
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

public double getDistance​(Translation2d other)
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

public double getX()
Returns the X component of the translation.
Returns:
The X component of the translation.
• ### getY

public double getY()
Returns the Y component of the translation.
Returns:
The Y component of the translation.
• ### getNorm

public double getNorm()
Returns the norm, or distance from the origin to the translation.
Returns:
The norm of the translation.
• ### getAngle

public Rotation2d getAngle()
Returns the angle this translation forms with the positive X axis.
Returns:
The angle of the translation
• ### rotateBy

public Translation2d rotateBy​(Rotation2d other)
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

public Translation2d plus​(Translation2d other)
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

public Translation2d minus​(Translation2d other)
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

public Translation2d times​(double scalar)
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

public Translation2d div​(double scalar)
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.
• ### nearest

public Translation2d nearest​(List<Translation2d> translations)
Returns the nearest Translation2d from a list of translations.
Parameters:
translations - The list of translations.
Returns:
The nearest Translation2d from the list.
• ### toString

public String toString()
Overrides:
toString in class Object
• ### equals

public boolean equals​(Object obj)
Checks equality between this Translation2d and another object.
Overrides:
equals in class Object
Parameters:
obj - The other object.
Returns:
Whether the two objects are equal or not.
• ### hashCode

public int hashCode()
Overrides:
hashCode in class Object
• ### interpolate

public Translation2d interpolate​(Translation2d endValue, double t)
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 interface Interpolatable<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.