# PhysicsMath

> A set of mathematical operations that are useful for physics. These operations do not form a fully comprehensive mathematics library, they simply provide operations that are usually required when interacting with physics.

## Definition

* **Type:** Struct
* **Namespace:** [UnityEngine.LowLevelPhysics2D](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d.md)
* **Assembly:** UnityEngine.Physics2DModule

```csharp
public readonly struct PhysicsMath
```

## Static Properties

| Property                                                                                | Description                                                                                                  |
| --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| [PI](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/pi.md)   | Get the value of PI used internally by the physics system. Using this will help with determinism.            |
| [TAU](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/tau.md) | Get the value of tau (2 \* PI) used internally by the physics system. Using this will help with determinism. |

## Static Methods

| Method                                                                                                                                  | Description                                                                                                                                                                                                                                                                                                                                                                     |
| --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [AngularVelocityToQuaternion](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/angularvelocitytoquaternion.md) | Calculate a [Quaternion](/engine/6000.3/script-reference/unityengine/quaternion.md) given a 2D angular velocity and a time to integrate over using the selected transform plane.                                                                                                                                                                                                |
| [Atan2](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/atan2.md)                                             | Calculate the arc-tangent i.e. the angle of the provided slope y/x. This operates as deterministically as possible across platforms.                                                                                                                                                                                                                                            |
| [CosSin](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/cossin.md)                                           | Calculate both the Cosine and Sine of the specified angle.                                                                                                                                                                                                                                                                                                                      |
| [GetRelativeMatrix](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/getrelativematrix.md)                     | Get the relative transformation matrix between the two specified transforms using the specified transform plane.                                                                                                                                                                                                                                                                |
| [GetRotationAxes](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/getrotationaxes.md)                         | Get the used rotation axes, given the specified transform plane. This is the inverse of [PhysicsMath.GetRotationIgnoredAxes](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/getrotationignoredaxes.md).                                                                                                                                              |
| [GetRotationIgnoredAxes](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/getrotationignoredaxes.md)           | Get the ignored rotation axes, given the specified transform plane. This is the inverse of [PhysicsMath.GetRotationAxes](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/getrotationaxes.md).                                                                                                                                                         |
| [GetTranslationAxes](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/gettranslationaxes.md)                   | Get the used translation axes, given the specified transform plane. This is the inverse of [PhysicsMath.GetTranslationIgnoredAxes](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/gettranslationignoredaxes.md).                                                                                                                                     |
| [GetTranslationIgnoredAxes](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/gettranslationignoredaxes.md)     | Get the ignored translation axes, given the specified transform plane. This is the inverse of [PhysicsMath.GetTranslationAxes](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/gettranslationaxes.md).                                                                                                                                                |
| [GetTranslationIgnoredAxis](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/gettranslationignoredaxis.md)     | Get the ignored translation axis, given the specified transform plane.                                                                                                                                                                                                                                                                                                          |
| [MaxAbsComponent](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/maxabscomponent.md)                         | Get the maximum absolute value component from the specified vector.                                                                                                                                                                                                                                                                                                             |
| [MinAbsComponent](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/minabscomponent.md)                         | Get the minimum absolute value component from the specified vector.                                                                                                                                                                                                                                                                                                             |
| [SpringDamper](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/springdamper.md)                               | Calculate a one-dimensional mass-spring-damper simulation which drives towards a zero translation. You can then compute the new position using: "translation += newSpeed \* deltaTime;"                                                                                                                                                                                         |
| [Swizzle](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/swizzle.md)                                         | Transform a Matrix position (with perspective divide) into a Matrix position using the selected transform plane.                                                                                                                                                                                                                                                                |
| [ToDegrees](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/todegrees.md)                                     | Convert radians to degrees. This operates as deterministically as possible across platforms. See [PhysicsMath.ToRadians](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/toradians.md).                                                                                                                                                               |
| [ToPhysicsTransform](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/tophysicstransform.md)                   | Transform a 3D [Transform](/engine/6000.3/script-reference/unityengine/transform.md) position and rotation to a 2D [PhysicsTransform](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicstransform.md). Scale is not part of a [PhysicsTransform](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicstransform.md) therefore it is ignored. |
| [ToPosition2D](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/toposition2d.md)                               | Transform a 3D position into a 2D position using the selected transform plane.                                                                                                                                                                                                                                                                                                  |
| [ToPosition3D](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/toposition3d.md)                               | Transform a 2D position into a 3D position using the selected transform plane.                                                                                                                                                                                                                                                                                                  |
| [ToRadians](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/toradians.md)                                     | Convert degrees to radians. This operates as deterministically as possible across platforms. See [PhysicsMath.ToDegrees](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/todegrees.md).                                                                                                                                                               |
| [ToRotation2D](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/torotation2d.md)                               | Transform a 3D rotation into a 2D angle using the selected transform plane.                                                                                                                                                                                                                                                                                                     |
| [ToRotationFast3D](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/torotationfast3d.md)                       | Transform a 2D angle into a 3D rotation using the selected transform plane (Fast). The transformation is fast because the rotation is simplified by the fact that only a single axis of rotation is handled. All other axis rotations are reset to zero.                                                                                                                        |
| [ToRotationSlow3D](/engine/6000.3/script-reference/unityengine/lowlevelphysics2d/physicsmath/torotationslow3d.md)                       | Transform a 2D angle into a 3D rotation using the selected transform plane (Slow). The transformation is slower because the rotation is more complex due to the fact that changing a single axis of rotation requires it to not affect any other axis rotations.                                                                                                                |
