本文概述
平移可以定义为屏幕上对象位置的变化。通过沿X-Y方向移动对象, 可以更改其位置。在JavaFX中, 类javafx.scene.transform.Translate表示Translate转换。我们需要实例化此类以翻译对象。
下图将圆从一个位置平移到另一位置。圆的中心坐标P(x, y)转换为P(x1, y1)。 X坐标以因子Tx改变, 而Y坐标以因子Ty改变。
属性
下表描述了该类的属性以及setter方法。
属性 | 描述 | 设置方法 |
---|---|---|
X | 这是一个双精度类型的属性。它表示对象在X方向上平移的距离。 | setX(double value) |
Y | 这是一个双精度类型的属性。它表示对象沿Y方向平移的距离。 | setY(double value) |
Z | 这是一个双精度类型的属性。它表示对象在Z方向上平移的距离。 | setZ(double value) |
构造函数
该类包含三个构造函数
- public Translate():使用默认参数创建Translate类的新实例。
- public Translate(double X, double Y):创建具有指定(X, Y)坐标的新实例。
- public Translate(double X, double Y, double Z):创建具有指定(x, y, z)坐标的新实例。
例:
以下示例说明了矩形上的平移变换。在这里, 我们创建了两个具有相同坐标的矩形。第一个矩形用红色填充, 第二个矩形用绿色填充。通过将转换对象的属性设置为适当的值, 可以将绿色矩形移动到其他位置。
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.Translate;
import javafx.stage.Stage;
public class TranslateExample extends Application{
@Override
public void start(Stage primaryStage) throws Exception {
// TODO Auto-generated method stub
//creating the Rectangles with the same coordinates
Rectangle rect1 = new Rectangle(20, 20, 200, 150);
Rectangle rect2 = new Rectangle(20, 20, 200, 150);
//setting rectangle properties
rect1.setFill(Color.RED);
rect1.setStroke(Color.BLACK);
rect1.setStrokeWidth(5);
rect2.setFill(Color.GREEN);
rect2.setStroke(Color.BLACK);
rect2.setStrokeWidth(5);
//Instantiating the Translate class
Translate translate = new Translate();
//setting the properties of the translate object
translate.setX(200);
translate.setY(200);
translate.setZ(200);
//applying transformation to the second rectangle
rect2.getTransforms().addAll(translate);
Group root = new Group();
root.getChildren().addAll(rect1, rect2);
Scene scene = new Scene(root, 500, 400);
primaryStage.setScene(scene);
primaryStage.setTitle("Translation Example");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
评论前必须登录!
注册