# Class Rotate

java.lang.Object
javafx.scene.transform.Transform
javafx.scene.transform.Rotate

All Implemented Interfaces:
  `Cloneable`, `EventTarget`

public class Rotate extends Transform
This class represents an `Affine` object that rotates coordinates around an anchor point. This operation is equivalent to translating the coordinates so that the anchor point is at the origin (S1), then rotating them about the new origin (S2), and finally translating so that the intermediate origin is restored to the coordinates of the original anchor point (S3).

The matrix representing the rotation transformation around an axis `(x,y,z)` by an angle `t` is as follows:

                  [   cos(t)   -sin(t)   0   x-x*cos(t)+y*sin(t)   ]
                  [   sin(t)    cos(t)   0   y-x*sin(t)-y*cos(t)   ]
                  [     0         0      1           z             ]

For example, to rotate a text 30 degrees around the Z-axis at anchor point of (50,30):

     Text text = new Text("This is a test");
     text.setX(10);
     text.setY(50);
     text.setFont(new Font(20));

     text.getTransforms().add(new Rotate(30, 50, 30));

Since:
  JavaFX 2.0

- ## Property Summary

  Properties
  Type
  Property
  Description
  `final DoubleProperty`
  `angle`
  Defines the angle of rotation measured in degrees.
  `final ObjectProperty<Point3D>`
  `axis`
  Defines the axis of rotation at the pivot point.
  `final DoubleProperty`
  `pivotX`
  Defines the X coordinate of the rotation pivot point.
  `final DoubleProperty`
  `pivotY`
  Defines the Y coordinate of the rotation pivot point.
  `final DoubleProperty`
  `pivotZ`
  Defines the Z coordinate of the rotation pivot point.

  ### Properties declared in class javafx.scene.transform.Transform

  `identity, onTransformChanged, type2D`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Point3D`
  `X_AXIS`
  Specifies the X-axis as the axis of rotation.
  `static final Point3D`
  `Y_AXIS`
  Specifies the Y-axis as the axis of rotation.
  `static final Point3D`
  `Z_AXIS`
  Specifies the Z-axis as the axis of rotation.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Rotate()`
  Creates a default Rotate transform (identity).
  `Rotate(double angle)`
  Creates a two-dimensional Rotate transform.
  `Rotate(double angle, double pivotX, double pivotY)`
  Creates a two-dimensional Rotate transform with pivot.
  `Rotate(double angle, double pivotX, double pivotY, double pivotZ)`
  Creates a simple Rotate transform with three-dimensional pivot.
  `Rotate(double angle, double pivotX, double pivotY, double pivotZ, Point3D axis)`
  Creates a three-dimensional Rotate transform with pivot.
  `Rotate(double angle, Point3D axis)`
  Creates a three-dimensional Rotate transform.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final DoubleProperty`
  `angleProperty()`
  Defines the angle of rotation measured in degrees.
  `final ObjectProperty<Point3D>`
  `axisProperty()`
  Defines the axis of rotation at the pivot point.
  `Rotate`
  `clone()`
  Returns a deep copy of this transform.
  `final double`
  `getAngle()`
  Gets the value of the `angle` property.
  `final Point3D`
  `getAxis()`
  Gets the value of the `axis` property.
  `final double`
  `getPivotX()`
  Gets the value of the `pivotX` property.
  `final double`
  `getPivotY()`
  Gets the value of the `pivotY` property.
  `final double`
  `getPivotZ()`
  Gets the value of the `pivotZ` property.
  `Point2D`
  `inverseDeltaTransform(double x, double y)`
  Transforms the relative magnitude vector by the inverse of this transform.
  `Point3D`
  `inverseDeltaTransform(double x, double y, double z)`
  Transforms the relative magnitude vector by the inverse of this transform.
  `Point2D`
  `inverseTransform(double x, double y)`
  Transforms the specified point by the inverse of this transform.
  `Point3D`
  `inverseTransform(double x, double y, double z)`
  Transforms the specified point by the inverse of this transform.
  `final DoubleProperty`
  `pivotXProperty()`
  Defines the X coordinate of the rotation pivot point.
  `final DoubleProperty`
  `pivotYProperty()`
  Defines the Y coordinate of the rotation pivot point.
  `final DoubleProperty`
  `pivotZProperty()`
  Defines the Z coordinate of the rotation pivot point.
  `final void`
  `setAngle(double value)`
  Sets the value of the `angle` property.
  `final void`
  `setAxis(Point3D value)`
  Sets the value of the `axis` property.
  `final void`
  `setPivotX(double value)`
  Sets the value of the `pivotX` property.
  `final void`
  `setPivotY(double value)`
  Sets the value of the `pivotY` property.
  `final void`
  `setPivotZ(double value)`
  Sets the value of the `pivotZ` property.
  `String`
  `toString()`
  Returns a string representation of this `Rotate` object.

  ### Methods declared in class javafx.scene.transform.Transform

  `addEventFilter, addEventHandler, affine, affine, buildEventDispatchChain, column, column, createConcatenation, createInverse, deltaTransform, deltaTransform, deltaTransform, deltaTransform, determinant, getElement, getMxx, getMxy, getMxz, getMyx, getMyy, getMyz, getMzx, getMzy, getMzz, getOnTransformChanged, getTx, getTy, getTz, identityProperty, inverseDeltaTransform, inverseDeltaTransform, inverseTransform, inverseTransform, inverseTransform, inverseTransform2DPoints, inverseTransform3DPoints, isIdentity, isType2D, onTransformChangedProperty, removeEventFilter, removeEventHandler, rotate, row, row, scale, scale, setOnTransformChanged, shear, shear, similarTo, toArray, toArray, transform, transform, transform, transform, transform, transform2DPoints, transform3DPoints, transformChanged, translate, type2DProperty`

  ### Methods declared in class java.lang.Object

  `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Property Details

  - ### angle

    public final DoubleProperty angleProperty
    Defines the angle of rotation measured in degrees.
    See Also:
      - `getAngle()`
      - `setAngle(double)`
      - `angleProperty()`

  - ### pivotX

    public final DoubleProperty pivotXProperty
    Defines the X coordinate of the rotation pivot point.
    Default value:
      0.0
    See Also:
      - `getPivotX()`
      - `setPivotX(double)`
      - `pivotXProperty()`

  - ### pivotY

    public final DoubleProperty pivotYProperty
    Defines the Y coordinate of the rotation pivot point.
    Default value:
      0.0
    See Also:
      - `getPivotY()`
      - `setPivotY(double)`
      - `pivotYProperty()`

  - ### pivotZ

    public final DoubleProperty pivotZProperty
    Defines the Z coordinate of the rotation pivot point.
    Default value:
      0.0
    See Also:
      - `getPivotZ()`
      - `setPivotZ(double)`
      - `pivotZProperty()`

  - ### axis

    public final ObjectProperty<Point3D> axisProperty
    Defines the axis of rotation at the pivot point.
    See Also:
      - `getAxis()`
      - `setAxis(Point3D)`
      - `axisProperty()`

- ## Field Details

  - ### X_AXIS

    public static final Point3D X_AXIS
    Specifies the X-axis as the axis of rotation.

  - ### Y_AXIS

    public static final Point3D Y_AXIS
    Specifies the Y-axis as the axis of rotation.

  - ### Z_AXIS

    public static final Point3D Z_AXIS
    Specifies the Z-axis as the axis of rotation.

- ## Constructor Details

  - ### Rotate

    public Rotate()
    Creates a default Rotate transform (identity).

  - ### Rotate

    public Rotate(double angle)
    Creates a two-dimensional Rotate transform. The pivot point is set to (0,0)
    Parameters:
      `angle` - the angle of rotation measured in degrees

  - ### Rotate

    public Rotate(double angle, Point3D axis)
    Creates a three-dimensional Rotate transform. The pivot point is set to (0,0,0)
    Parameters:
      `angle` - the angle of rotation measured in degrees
      `axis` - the axis of rotation

  - ### Rotate

    public Rotate(double angle, double pivotX, double pivotY)
    Creates a two-dimensional Rotate transform with pivot.
    Parameters:
      `angle` - the angle of rotation measured in degrees
      `pivotX` - the X coordinate of the rotation pivot point
      `pivotY` - the Y coordinate of the rotation pivot point

  - ### Rotate

    public Rotate(double angle, double pivotX, double pivotY, double pivotZ)
    Creates a simple Rotate transform with three-dimensional pivot.
    Parameters:
      `angle` - the angle of rotation measured in degrees
      `pivotX` - the X coordinate of the rotation pivot point
      `pivotY` - the Y coordinate of the rotation pivot point
      `pivotZ` - the Z coordinate of the rotation pivot point

  - ### Rotate

    public Rotate(double angle, double pivotX, double pivotY, double pivotZ, Point3D axis)
    Creates a three-dimensional Rotate transform with pivot.
    Parameters:
      `angle` - the angle of rotation measured in degrees
      `pivotX` - the X coordinate of the rotation pivot point
      `pivotY` - the Y coordinate of the rotation pivot point
      `pivotZ` - the Z coordinate of the rotation pivot point
      `axis` - the axis of rotation

- ## Method Details

  - ### setAngle

    public final void setAngle(double value)
    Sets the value of the `angle` property.
    Property description:
      Defines the angle of rotation measured in degrees.
    Parameters:
      `value` - the value for the `angle` property
    See Also:
      - `getAngle()`
      - `angleProperty()`

  - ### getAngle

    public final double getAngle()
    Gets the value of the `angle` property.
    Property description:
      Defines the angle of rotation measured in degrees.
    Returns:
      the value of the `angle` property
    See Also:
      - `setAngle(double)`
      - `angleProperty()`

  - ### angleProperty

    public final DoubleProperty angleProperty()
    Defines the angle of rotation measured in degrees.
    Returns:
      the `angle` property
    See Also:
      - `getAngle()`
      - `setAngle(double)`

  - ### setPivotX

    public final void setPivotX(double value)
    Sets the value of the `pivotX` property.
    Property description:
      Defines the X coordinate of the rotation pivot point.
    Default value:
      0.0
    Parameters:
      `value` - the value for the `pivotX` property
    See Also:
      - `getPivotX()`
      - `pivotXProperty()`

  - ### getPivotX

    public final double getPivotX()
    Gets the value of the `pivotX` property.
    Property description:
      Defines the X coordinate of the rotation pivot point.
    Default value:
      0.0
    Returns:
      the value of the `pivotX` property
    See Also:
      - `setPivotX(double)`
      - `pivotXProperty()`

  - ### pivotXProperty

    public final DoubleProperty pivotXProperty()
    Defines the X coordinate of the rotation pivot point.
    Default value:
      0.0
    Returns:
      the `pivotX` property
    See Also:
      - `getPivotX()`
      - `setPivotX(double)`

  - ### setPivotY

    public final void setPivotY(double value)
    Sets the value of the `pivotY` property.
    Property description:
      Defines the Y coordinate of the rotation pivot point.
    Default value:
      0.0
    Parameters:
      `value` - the value for the `pivotY` property
    See Also:
      - `getPivotY()`
      - `pivotYProperty()`

  - ### getPivotY

    public final double getPivotY()
    Gets the value of the `pivotY` property.
    Property description:
      Defines the Y coordinate of the rotation pivot point.
    Default value:
      0.0
    Returns:
      the value of the `pivotY` property
    See Also:
      - `setPivotY(double)`
      - `pivotYProperty()`

  - ### pivotYProperty

    public final DoubleProperty pivotYProperty()
    Defines the Y coordinate of the rotation pivot point.
    Default value:
      0.0
    Returns:
      the `pivotY` property
    See Also:
      - `getPivotY()`
      - `setPivotY(double)`

  - ### setPivotZ

    public final void setPivotZ(double value)
    Sets the value of the `pivotZ` property.
    Property description:
      Defines the Z coordinate of the rotation pivot point.
    Default value:
      0.0
    Parameters:
      `value` - the value for the `pivotZ` property
    See Also:
      - `getPivotZ()`
      - `pivotZProperty()`

  - ### getPivotZ

    public final double getPivotZ()
    Gets the value of the `pivotZ` property.
    Property description:
      Defines the Z coordinate of the rotation pivot point.
    Default value:
      0.0
    Returns:
      the value of the `pivotZ` property
    See Also:
      - `setPivotZ(double)`
      - `pivotZProperty()`

  - ### pivotZProperty

    public final DoubleProperty pivotZProperty()
    Defines the Z coordinate of the rotation pivot point.
    Default value:
      0.0
    Returns:
      the `pivotZ` property
    See Also:
      - `getPivotZ()`
      - `setPivotZ(double)`

  - ### setAxis

    public final void setAxis(Point3D value)
    Sets the value of the `axis` property.
    Property description:
      Defines the axis of rotation at the pivot point.
    Parameters:
      `value` - the value for the `axis` property
    See Also:
      - `getAxis()`
      - `axisProperty()`

  - ### getAxis

    public final Point3D getAxis()
    Gets the value of the `axis` property.
    Property description:
      Defines the axis of rotation at the pivot point.
    Returns:
      the value of the `axis` property
    See Also:
      - `setAxis(Point3D)`
      - `axisProperty()`

  - ### axisProperty

    public final ObjectProperty<Point3D> axisProperty()
    Defines the axis of rotation at the pivot point.
    Returns:
      the `axis` property
    See Also:
      - `getAxis()`
      - `setAxis(Point3D)`

  - ### clone

    public Rotate clone()
    Description copied from class: `Transform`
    Returns a deep copy of this transform.
    Overrides:
      `clone` in class `Transform`
    Returns:
      a copy of this transform

  - ### inverseTransform

    public Point2D inverseTransform(double x, double y)
    Description copied from class: `Transform`
    Transforms the specified point by the inverse of this transform. This method can be used only for 2D transforms.
    Overrides:
      `inverseTransform` in class `Transform`
    Parameters:
      `x` - the X coordinate of the point
      `y` - the Y coordinate of the point
    Returns:
      the inversely transformed point

  - ### inverseTransform

    public Point3D inverseTransform(double x, double y, double z)
    Description copied from class: `Transform`
    Transforms the specified point by the inverse of this transform.
    Overrides:
      `inverseTransform` in class `Transform`
    Parameters:
      `x` - the X coordinate of the point
      `y` - the Y coordinate of the point
      `z` - the Z coordinate of the point
    Returns:
      the inversely transformed point

  - ### inverseDeltaTransform

    public Point2D inverseDeltaTransform(double x, double y)
    Description copied from class: `Transform`
    Transforms the relative magnitude vector by the inverse of this transform. The vector is transformed without applying the translation components of the affine transformation matrix. This method can be used only for a 2D transform.
    Overrides:
      `inverseDeltaTransform` in class `Transform`
    Parameters:
      `x` - vector magnitude in the direction of the X axis
      `y` - vector magnitude in the direction of the Y axis
    Returns:
      the inversely transformed relative magnitude vector represented by a `Point2D` instance

  - ### inverseDeltaTransform

    public Point3D inverseDeltaTransform(double x, double y, double z)
    Description copied from class: `Transform`
    Transforms the relative magnitude vector by the inverse of this transform. The vector is transformed without applying the translation components of the affine transformation matrix.
    Overrides:
      `inverseDeltaTransform` in class `Transform`
    Parameters:
      `x` - vector magnitude in the direction of the X axis
      `y` - vector magnitude in the direction of the Y axis
      `z` - vector magnitude in the direction of the Z axis
    Returns:
      the inversely transformed relative magnitude vector represented by a `Point3D` instance

  - ### toString

    public String toString()
    Returns a string representation of this `Rotate` object.
    Overrides:
      `toString` in class `Object`
    Returns:
      a string representation of this `Rotate` object.