JavaFX轉(zhuǎn)換相關類位于javafx.scene.transform包中,并且是Transform類的子類。
一個變換是關于如何改變坐標系。 JavaFX支持以下類型的轉(zhuǎn)換:
JavaFX Transformations可以在三個坐標上操作,從而允許我們創(chuàng)建三維3D對象和效果。
JavaFX實現(xiàn)了x軸和y軸以及x,y和z軸的變換構造函數(shù)。
要創(chuàng)建二維2D效果,請僅指定x和y坐標。要創(chuàng)建3D效果,請指定所有三個坐標。
平移變換將節(jié)點沿著一個軸相對于其初始位置從一個位置移動到另一個位置。木琴條的初始位置由x,y和z坐標定義。
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle("Text Fonts"); Group rectangleGroup = new Group(); Scene scene = new Scene(rectangleGroup, 550, 250); Rectangle rect = new Rectangle(); rect.setWidth(100); rect.setHeight(100); rect.setTranslateX( 135); rect.setTranslateY(11.0); rectangleGroup.getChildren().add(rect); primaryStage.setScene(scene); primaryStage.show(); } }
上面的代碼生成以下結果。
旋轉(zhuǎn)變換將圍繞指定的樞軸點移動節(jié)點。
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle("Text Fonts"); Group rectangleGroup = new Group(); Scene scene = new Scene(rectangleGroup, 550, 250); Rectangle rect = new Rectangle(); rect.setWidth(100); rect.setHeight(100); rect.setRotate(10); rectangleGroup.getChildren().add(rect); primaryStage.setScene(scene); primaryStage.show(); } }
上面的代碼生成以下結果。
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.shape.Rectangle; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle("Text Fonts"); Group rectangleGroup = new Group(); Scene scene = new Scene(rectangleGroup, 550, 250); Rectangle rect = new Rectangle(); rect.setWidth(100); rect.setHeight(100); rect.setScaleY(2); rectangleGroup.getChildren().add(rect); primaryStage.setScene(scene); primaryStage.show(); } }
上面的代碼生成以下結果。
要剪切,使用Transform類的剪切類或剪切方法
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.shape.Rectangle; import javafx.scene.transform.Shear; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle("Text Fonts"); Group rectangleGroup = new Group(); Scene scene = new Scene(rectangleGroup, 550, 250); Rectangle rect = new Rectangle(); rect.setWidth(100); rect.setHeight(100); Shear sh = new Shear(); sh.setY(0.4); rect.getTransforms().add(sh); rectangleGroup.getChildren().add(rect); primaryStage.setScene(scene); primaryStage.show(); } }
上面的代碼生成以下結果。
更多建議: