个性化阅读
专注于IT技术分析

JavaFX旋转

本文概述

旋转可以定义为将物体旋转一定角度θ(θ)的过程。在JavaFX中, 类javafx.scene.transform.Rotate表示Rotation变换。

该图说明了旋转变换。图像中显示的矩形沿Y轴旋转角度θ。矩形的坐标由于旋转而改变, 而边缘保持相同的长度。

JavaFX旋转

属性

下表描述了该类的属性以及setter方法。

属性 描述 设置方法
angle 这是一个双精度类型的属性。它以度为单位表示旋转角度。 setAngle(double value)
axis 这是一个对象类型属性。它代表旋转轴。 setAxis(Point3D value)
pivotX 这是一个双精度类型的属性。它代表旋转枢轴点的X坐标。 setPivotX(double value)
pivotY 这是一个双精度类型的属性。它代表旋转枢轴点的Y坐标。 setPivotY(double value)
pivotZ 这是一个双精度类型的属性。它代表旋转枢轴点的Z坐标。 setPivotZ(double value)

构造函数

该类包含六个构造函数。

  1. public Rotate():使用默认参数创建旋转变换。
  2. public Rotate(double angle):创建以度为单位的指定角度的旋转变换。枢轴点设置为(0, 0)。
  3. public Rotate(双角度, Point3D轴):使用指定的变换创建3D旋转变换。枢轴点设置为(0, 0, 0)。
  4. public Rotate(double angle, double axisX, double axisY):使用指定的角度和枢轴坐标(x, y)创建Rotate变换。
  5. public Rotate(双角度, 双枢轴X, 双枢轴Y, 双枢轴Z):使用指定的角度和3D枢轴坐标(x, y, z)创建Rotate变换。
  6. public Rotate(双角度, 双枢轴X, 双枢轴Y, 双枢轴Z, Point3D轴):创建具有指定角度和枢轴坐标(x, y, z)的3D旋转变换。

例:

以下示例说明了旋转变换的实现。在这里, 我们创建了两个矩形。一种填充有柠檬绿色, 另一种填充有深灰色。沿枢轴点坐标(100, 300)将深灰色矩形旋转30度。

package application;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;
public class RotateExample extends Application{
@Override
public void start(Stage primaryStage) throws Exception {
	// TODO Auto-generated method stub
	// creating the rectangles 
	Rectangle rect1 = new Rectangle(100, 100, 200, 200);
	Rectangle rect2 = new Rectangle(100, 100, 200, 200);
	
	// setting the color and stroke for the Rectangles 	
	rect1.setFill(Color.LIMEGREEN);
	rect2.setFill(Color.DARKGREY);
	rect1.setStroke(Color.BLACK);
	rect2.setStroke(Color.BLACK);
	
	// instantiating the Rotate class. 
	Rotate rotate = new Rotate();
	
	//setting properties for the rotate object. 
	rotate.setAngle(30);
	rotate.setPivotX(100);
	rotate.setPivotY(300);
	
	//rotating the 2nd rectangle. 
	rect2.getTransforms().add(rotate);
	
	Group root = new Group();
	root.getChildren().addAll(rect1, rect2);
	Scene scene = new Scene(root, 500, 420);
	primaryStage.setScene(scene);
	primaryStage.setTitle("Rotation Example");
	primaryStage.show();
}
public static void main(String[] args) {
	launch(args);
}
}
JavaFX旋转
赞(0)
未经允许不得转载:srcmini » JavaFX旋转

相关推荐

评论 抢沙发

评论前必须登录!