JavaFX - Dönüşümler
Dönüşüm, bazı grafikleri kurallar uygulayarak başka bir şeye dönüştürmek anlamına gelir. Gibi çeşitli dönüşüm türlerine sahip olabilirizTranslation, Scaling Up or Down, Rotation, Shearing, vb.
JavaFX kullanarak, döndürme, ölçekleme ve çevirme gibi düğümlere dönüşümler uygulayabilirsiniz. Tüm bu dönüşümler çeşitli sınıflarla temsil edilir ve bunlar pakete aittir.javafx.scene.transform.
S.No | Dönüşüm ve Açıklama |
---|---|
1 | Rotasyon Dönüşte nesneyi belirli bir açıyla döndürürüz θ (theta) kökeninden. |
2 | Ölçeklendirme Bir nesnenin boyutunu değiştirmek için ölçeklendirme dönüşümü kullanılır. |
3 | Tercüme Bir nesneyi ekranda farklı bir konuma taşır. |
4 | Kesme Bir nesnenin şeklini eğimli bir dönüşüme Kesme Dönüşümü denir. |
Çoklu Dönüşümler
JavaFX'te düğümlere birden çok dönüşüm de uygulayabilirsiniz. Aşağıdaki program gerçekleştiren bir örnektirRotation, Scaling ve Translation aynı anda bir dikdörtgende dönüşümler.
Bu kodu şu adla bir dosyaya kaydedin -
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);
}
}
Kaydedilen java dosyasını aşağıdaki komutları kullanarak komut isteminden derleyin ve yürütün.
javac MultipleTransformationsExample.java
java MultipleTransformationsExample
Yürütüldüğünde, yukarıdaki program aşağıda gösterildiği gibi bir JavaFX penceresi oluşturur.
3B Nesnelerdeki Dönüşümler
Ayrıca 3B nesnelere de dönüşüm uygulayabilirsiniz. Aşağıda 3 Boyutlu bir kutuyu döndüren ve çeviren bir örnek verilmiştir.
Bu kodu adıyla bir dosyaya kaydedin 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);
}
}
Kaydedilen java dosyasını aşağıdaki komutları kullanarak komut isteminden derleyin ve yürütün.
javac RotationExample3D.java
java RotationExample3D
Yürütüldüğünde, yukarıdaki program aşağıda gösterildiği gibi bir JavaFX penceresi oluşturur.