- java.lang.Object
-
- javafx.scene.transform.Transform
-
- javafx.scene.transform.Rotate
-
- All Implemented Interfaces:
Cloneable
,EventTarget
public class Rotate extends Transform
This class represents anAffine
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 anglet
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 DoubleProperty
angle
Defines the angle of rotation measured in degrees.ObjectProperty<Point3D>
axis
Defines the axis of rotation at the pivot point.DoubleProperty
pivotX
Defines the X coordinate of the rotation pivot point.DoubleProperty
pivotY
Defines the Y coordinate of the rotation pivot point.DoubleProperty
pivotZ
Defines the Z coordinate of the rotation pivot point.-
Properties inherited from class javafx.scene.transform.Transform
identity, onTransformChanged, type2D
-
-
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 DoubleProperty
angleProperty()
Defines the angle of rotation measured in degrees.ObjectProperty<Point3D>
axisProperty()
Defines the axis of rotation at the pivot point.Rotate
clone()
Returns a deep copy of this transform.Transform
createConcatenation(Transform transform)
Returns the concatenation of this transform and the specified transform.Transform
createInverse()
Returns the inverse transform of this transform.Point2D
deltaTransform(double x, double y)
Transforms the relative magnitude vector by this transform.Point3D
deltaTransform(double x, double y, double z)
Transforms the relative magnitude vector by this transform.double
getAngle()
Gets the value of the property angle.Point3D
getAxis()
Gets the value of the property axis.double
getMxx()
Gets the X coordinate scaling element of the 3x4 matrix.double
getMxy()
Gets the XY coordinate element of the 3x4 matrix.double
getMxz()
Gets the XZ coordinate element of the 3x4 matrix.double
getMyx()
Gets the YX coordinate element of the 3x4 matrix.double
getMyy()
Gets the Y coordinate scaling element of the 3x4 matrix.double
getMyz()
Gets the YZ coordinate element of the 3x4 matrix.double
getMzx()
Gets the ZX coordinate element of the 3x4 matrix.double
getMzy()
Gets the ZY coordinate element of the 3x4 matrix.double
getMzz()
Gets the Z coordinate scaling element of the 3x4 matrix.double
getPivotX()
Gets the value of the property pivotX.double
getPivotY()
Gets the value of the property pivotY.double
getPivotZ()
Gets the value of the property pivotZ.double
getTx()
Gets the X coordinate translation element of the 3x4 matrix.double
getTy()
Gets the Y coordinate translation element of the 3x4 matrix.double
getTz()
Gets the Z coordinate translation element of the 3x4 matrix.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.DoubleProperty
pivotXProperty()
Defines the X coordinate of the rotation pivot point.DoubleProperty
pivotYProperty()
Defines the Y coordinate of the rotation pivot point.DoubleProperty
pivotZProperty()
Defines the Z coordinate of the rotation pivot point.void
setAngle(double value)
Sets the value of the property angle.void
setAxis(Point3D value)
Sets the value of the property axis.void
setPivotX(double value)
Sets the value of the property pivotX.void
setPivotY(double value)
Sets the value of the property pivotY.void
setPivotZ(double value)
Sets the value of the property pivotZ.String
toString()
Returns a string representation of thisRotate
object.Point2D
transform(double x, double y)
Transforms the specified point by this transform.Point3D
transform(double x, double y, double z)
Transforms the specified point by this transform.protected void
transformChanged()
This method must be called by all transforms whenever any of their parameters changes.-
Methods inherited from class javafx.scene.transform.Transform
addEventFilter, addEventHandler, affine, affine, buildEventDispatchChain, column, column, deltaTransform, deltaTransform, determinant, getElement, getOnTransformChanged, 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, transform2DPoints, transform3DPoints, translate, type2DProperty
-
-
-
-
Property Detail
-
angle
public final DoubleProperty angleProperty
Defines the angle of rotation measured in degrees.- See Also:
getAngle()
,setAngle(double)
-
pivotX
public final DoubleProperty pivotXProperty
Defines the X coordinate of the rotation pivot point.- Default value:
- 0.0
- See Also:
getPivotX()
,setPivotX(double)
-
pivotY
public final DoubleProperty pivotYProperty
Defines the Y coordinate of the rotation pivot point.- Default value:
- 0.0
- See Also:
getPivotY()
,setPivotY(double)
-
pivotZ
public final DoubleProperty pivotZProperty
Defines the Z coordinate of the rotation pivot point.- Default value:
- 0.0
- See Also:
getPivotZ()
,setPivotZ(double)
-
axis
public final ObjectProperty<Point3D> axisProperty
Defines the axis of rotation at the pivot point.- See Also:
getAxis()
,setAxis(Point3D)
-
-
Constructor Detail
-
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 degreesaxis
- 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 degreespivotX
- the X coordinate of the rotation pivot pointpivotY
- 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 degreespivotX
- the X coordinate of the rotation pivot pointpivotY
- the Y coordinate of the rotation pivot pointpivotZ
- 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 degreespivotX
- the X coordinate of the rotation pivot pointpivotY
- the Y coordinate of the rotation pivot pointpivotZ
- the Z coordinate of the rotation pivot pointaxis
- the axis of rotation
-
-
Method Detail
-
setAngle
public final void setAngle(double value)
Sets the value of the property angle.- Property description:
- Defines the angle of rotation measured in degrees.
-
getAngle
public final double getAngle()
Gets the value of the property angle.- Property description:
- Defines the angle of rotation measured in degrees.
-
angleProperty
public final DoubleProperty angleProperty()
Defines the angle of rotation measured in degrees.- See Also:
getAngle()
,setAngle(double)
-
setPivotX
public final void setPivotX(double value)
Sets the value of the property pivotX.- Property description:
- Defines the X coordinate of the rotation pivot point.
- Default value:
- 0.0
-
getPivotX
public final double getPivotX()
Gets the value of the property pivotX.- Property description:
- Defines the X coordinate of the rotation pivot point.
- Default value:
- 0.0
-
pivotXProperty
public final DoubleProperty pivotXProperty()
Defines the X coordinate of the rotation pivot point.- Default value:
- 0.0
- See Also:
getPivotX()
,setPivotX(double)
-
setPivotY
public final void setPivotY(double value)
Sets the value of the property pivotY.- Property description:
- Defines the Y coordinate of the rotation pivot point.
- Default value:
- 0.0
-
getPivotY
public final double getPivotY()
Gets the value of the property pivotY.- Property description:
- Defines the Y coordinate of the rotation pivot point.
- Default value:
- 0.0
-
pivotYProperty
public final DoubleProperty pivotYProperty()
Defines the Y coordinate of the rotation pivot point.- Default value:
- 0.0
- See Also:
getPivotY()
,setPivotY(double)
-
setPivotZ
public final void setPivotZ(double value)
Sets the value of the property pivotZ.- Property description:
- Defines the Z coordinate of the rotation pivot point.
- Default value:
- 0.0
-
getPivotZ
public final double getPivotZ()
Gets the value of the property pivotZ.- Property description:
- Defines the Z coordinate of the rotation pivot point.
- Default value:
- 0.0
-
pivotZProperty
public final DoubleProperty pivotZProperty()
Defines the Z coordinate of the rotation pivot point.- Default value:
- 0.0
- See Also:
getPivotZ()
,setPivotZ(double)
-
setAxis
public final void setAxis(Point3D value)
Sets the value of the property axis.- Property description:
- Defines the axis of rotation at the pivot point.
-
getAxis
public final Point3D getAxis()
Gets the value of the property axis.- Property description:
- Defines the axis of rotation at the pivot point.
-
axisProperty
public final ObjectProperty<Point3D> axisProperty()
Defines the axis of rotation at the pivot point.- See Also:
getAxis()
,setAxis(Point3D)
-
getMxx
public double getMxx()
Description copied from class:Transform
Gets the X coordinate scaling element of the 3x4 matrix.
-
getMxy
public double getMxy()
Description copied from class:Transform
Gets the XY coordinate element of the 3x4 matrix.
-
getMxz
public double getMxz()
Description copied from class:Transform
Gets the XZ coordinate element of the 3x4 matrix.
-
getTx
public double getTx()
Description copied from class:Transform
Gets the X coordinate translation element of the 3x4 matrix.
-
getMyx
public double getMyx()
Description copied from class:Transform
Gets the YX coordinate element of the 3x4 matrix.
-
getMyy
public double getMyy()
Description copied from class:Transform
Gets the Y coordinate scaling element of the 3x4 matrix.
-
getMyz
public double getMyz()
Description copied from class:Transform
Gets the YZ coordinate element of the 3x4 matrix.
-
getTy
public double getTy()
Description copied from class:Transform
Gets the Y coordinate translation element of the 3x4 matrix.
-
getMzx
public double getMzx()
Description copied from class:Transform
Gets the ZX coordinate element of the 3x4 matrix.
-
getMzy
public double getMzy()
Description copied from class:Transform
Gets the ZY coordinate element of the 3x4 matrix.
-
getMzz
public double getMzz()
Description copied from class:Transform
Gets the Z coordinate scaling element of the 3x4 matrix.
-
getTz
public double getTz()
Description copied from class:Transform
Gets the Z coordinate translation element of the 3x4 matrix.
-
createConcatenation
public Transform createConcatenation(Transform transform)
Description copied from class:Transform
Returns the concatenation of this transform and the specified transform. Applying the resulting transform to a node has the same effect as adding the two transforms to itsgetTransforms()
list,this
transform first and the specifiedtransform
second.- Overrides:
createConcatenation
in classTransform
- Parameters:
transform
- transform to be concatenated with this transform- Returns:
- The concatenated transform
-
createInverse
public Transform createInverse() throws NonInvertibleTransformException
Description copied from class:Transform
Returns the inverse transform of this transform.- Overrides:
createInverse
in classTransform
- Returns:
- the inverse transform
- Throws:
NonInvertibleTransformException
- if this transform cannot be inverted
-
clone
public Rotate clone()
Description copied from class:Transform
Returns a deep copy of this transform.
-
transform
public Point2D transform(double x, double y)
Description copied from class:Transform
Transforms the specified point by this transform. This method can be used only for 2D transforms.
-
transform
public Point3D transform(double x, double y, double z)
Description copied from class:Transform
Transforms the specified point by this transform.
-
deltaTransform
public Point2D deltaTransform(double x, double y)
Description copied from class:Transform
Transforms the relative magnitude vector by 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:
deltaTransform
in classTransform
- Parameters:
x
- vector magnitude in the direction of the X axisy
- vector magnitude in the direction of the Y axis- Returns:
- the transformed relative magnitude vector represented
by a
Point2D
instance
-
deltaTransform
public Point3D deltaTransform(double x, double y, double z)
Description copied from class:Transform
Transforms the relative magnitude vector by this transform. The vector is transformed without applying the translation components of the affine transformation matrix.- Overrides:
deltaTransform
in classTransform
- Parameters:
x
- vector magnitude in the direction of the X axisy
- vector magnitude in the direction of the Y axisz
- vector magnitude in the direction of the Z axis- Returns:
- the transformed relative magnitude vector represented
by a
Point3D
instance
-
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 classTransform
- Parameters:
x
- the X coordinate of the pointy
- 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 classTransform
- Parameters:
x
- the X coordinate of the pointy
- the Y coordinate of the pointz
- 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 classTransform
- Parameters:
x
- vector magnitude in the direction of the X axisy
- 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 classTransform
- Parameters:
x
- vector magnitude in the direction of the X axisy
- vector magnitude in the direction of the Y axisz
- 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 thisRotate
object.
-
transformChanged
protected void transformChanged()
Description copied from class:Transform
This method must be called by all transforms whenever any of their parameters changes. It is typically called when any of the transform's properties is invalidated (it is OK to skip the call if an invalid property is set).- Overrides:
transformChanged
in classTransform
-
-