JavaFX - Transformasi
Transformasi berarti mengubah beberapa grafik menjadi sesuatu yang lain dengan menerapkan aturan. Kita dapat memiliki berbagai jenis transformasi sepertiTranslation, Scaling Up or Down, Rotation, Shearing, dll.
Menggunakan JavaFX, Anda dapat menerapkan transformasi pada node seperti rotasi, penskalaan, dan terjemahan. Semua transformasi ini diwakili oleh berbagai kelas dan ini termasuk dalam paketjavafx.scene.transform.
S.No | Transformasi & Deskripsi |
---|---|
1 | Rotasi Dalam rotasi, kami memutar objek pada sudut tertentu θ (theta) dari asalnya. |
2 | Penskalaan Untuk mengubah ukuran suatu objek, transformasi penskalaan digunakan. |
3 | Terjemahan Memindahkan objek ke posisi berbeda di layar. |
4 | Pencukuran Transformasi yang memiringkan bentuk suatu objek disebut Transformasi Geser. |
Transformasi Ganda
Anda juga dapat menerapkan beberapa transformasi pada node di JavaFX. Program berikut adalah contoh yang bekerjaRotation, Scaling dan Translation transformasi pada persegi panjang secara bersamaan.
Simpan kode ini dalam file dengan nama -
MultipleTransformationsExample.java.
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.scene.transform.Scale;
import javafx.scene.transform.Translate;
import javafx.stage.Stage;
public class MultipleTransformationsExample extends Application {
@Override
public void start(Stage stage) {
//Drawing a Rectangle
Rectangle rectangle = new Rectangle(50, 50, 100, 75);
//Setting the color of the rectangle
rectangle.setFill(Color.BURLYWOOD);
//Setting the stroke color of the rectangle
rectangle.setStroke(Color.BLACK);
//creating the rotation transformation
Rotate rotate = new Rotate();
//Setting the angle for the rotation
rotate.setAngle(20);
//Setting pivot points for the rotation
rotate.setPivotX(150);
rotate.setPivotY(225);
//Creating the scale transformation
Scale scale = new Scale();
//Setting the dimensions for the transformation
scale.setX(1.5);
scale.setY(1.5);
//Setting the pivot point for the transformation
scale.setPivotX(300);
scale.setPivotY(135);
//Creating the translation transformation
Translate translate = new Translate();
//Setting the X,Y,Z coordinates to apply the translation
translate.setX(250);
translate.setY(0);
translate.setZ(0);
//Adding all the transformations to the rectangle
rectangle.getTransforms().addAll(rotate, scale, translate);
//Creating a Group object
Group root = new Group(rectangle);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Multiple transformations");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
Kompilasi dan jalankan file java yang disimpan dari command prompt menggunakan perintah berikut.
javac MultipleTransformationsExample.java
java MultipleTransformationsExample
Saat menjalankan, program di atas menghasilkan jendela JavaFX seperti yang ditunjukkan di bawah ini.
Transformasi pada Objek 3D
Anda juga dapat menerapkan transformasi pada objek 3D. Berikut adalah contoh yang memutar dan menerjemahkan kotak 3 Dimensi.
Simpan kode ini dalam file dengan nama RotationExample3D.java.
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Box;
import javafx.scene.transform.Rotate;
import javafx.scene.transform.Translate;
import javafx.stage.Stage;
public class RotationExample3D extends Application {
@Override
public void start(Stage stage) {
//Drawing a Box
Box box = new Box();
//Setting the properties of the Box
box.setWidth(150.0);
box.setHeight(150.0);
box.setDepth(150.0);
//Creating the translation transformation
Translate translate = new Translate();
translate.setX(400);
translate.setY(150);
translate.setZ(25);
Rotate rxBox = new Rotate(0, 0, 0, 0, Rotate.X_AXIS);
Rotate ryBox = new Rotate(0, 0, 0, 0, Rotate.Y_AXIS);
Rotate rzBox = new Rotate(0, 0, 0, 0, Rotate.Z_AXIS);
rxBox.setAngle(30);
ryBox.setAngle(50);
rzBox.setAngle(30);
box.getTransforms().addAll(translate,rxBox, ryBox, rzBox);
//Creating a Group object
Group root = new Group(box);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Drawing a cylinder");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
Kompilasi dan jalankan file java yang disimpan dari command prompt menggunakan perintah berikut.
javac RotationExample3D.java
java RotationExample3D
Saat menjalankan, program di atas menghasilkan jendela JavaFX seperti yang ditunjukkan di bawah ini.