📜  JavaFX Translation

📅  最后修改于: 2020-10-14 01:51:34             🧑  作者: Mango

JavaFX翻译

平移可以定义为屏幕上对象位置的变化。通过沿XY方向移动对象,可以更改其位置。在JavaFX中,类javafx.scene.transform.Translate表示Translate转换。我们需要实例化此类以翻译对象。

下图将圆从一个位置平移到另一位置。圆的中心坐标P(x,y)转换为P(x1,y1)。 X坐标以因子Tx改变,而Y坐标以因子Ty改变。

物产

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

Property Description Setter Methods
X It is a double type property. It represents the distance by which the object is translated in X Direction. setX(double value)
Y It is a double type property. It represents the distance by which the object is translated in Y direction. setY(double value)
Z It is a double type property. It represents the distance by which the object is translated in Z direction. 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);
}
}