JavaFX - 平移转换

  • 简述

    平移将对象移动到屏幕上的不同位置。您可以通过将平移坐标 (tx, ty) 添加到原始坐标 (X, Y) 以获得新坐标 (X', Y') 来平移 2D 中的点。
    翻译
  • 例子

    以下是在 JavaFX 中演示翻译的程序。在这里,我们在同一位置创建了 2 个具有相同尺寸但颜色不同(棕色和 Cadetblue)的圆(节点)。我们也在圆圈上应用翻译cadetblue 颜色。
    将此代码保存在名称为的文件中 TranslationExample.java.
    
    import javafx.application.Application; 
    import javafx.scene.Group; 
    import javafx.scene.Scene; 
    import javafx.scene.paint.Color; 
    import javafx.scene.shape.Circle; 
    import javafx.scene.transform.Translate; 
    import javafx.stage.Stage;  
    public class TranslationExample extends Application { 
       @Override 
       public void start(Stage stage) {      
          //Drawing Circle1 
          Circle circle = new Circle(); 
          
          //Setting the position of the circle 
          circle.setCenterX(150.0f); 
          circle.setCenterY(135.0f); 
          
          //Setting the radius of the circle 
          circle.setRadius(100.0f); 
          
          //Setting the color of the circle 
          circle.setFill(Color.BROWN); 
          
          //Setting the stroke width of the circle 
          circle.setStrokeWidth(20); 
           
          //Drawing Circle2 
          Circle circle2 = new Circle(); 
          
          //Setting the position of the circle 
          circle2.setCenterX(150.0f); 
          circle2.setCenterY(135.0f); 
          
          //Setting the radius of the circle 
          circle2.setRadius(100.0f); 
          
          //Setting the color of the circle 
          circle2.setFill(Color.CADETBLUE); 
          
          //Setting the stroke width of the circle 
          circle2.setStrokeWidth(20); 
           
          //Creating the translation transformation 
          Translate translate = new Translate();       
          
          //Setting the X,Y,Z coordinates to apply the translation 
          translate.setX(300); 
          translate.setY(50); 
          translate.setZ(100);  
          
          //Adding transformation to circle2 
          circle2.getTransforms().addAll(translate); 
           
          //Creating a Group object  
          Group root = new Group(circle,circle2); 
             
          //Creating a scene object 
          Scene scene = new Scene(root, 600, 300);  
          
          //Setting title to the Stage 
          stage.setTitle("Translation transformation example"); 
             
          //Adding scene to the stage 
          stage.setScene(scene); 
             
          //Displaying the contents of the stage 
          stage.show(); 
       }
       public static void main(String args[]){ 
          launch(args); 
       } 
    } 
    
    使用以下命令从命令提示符编译并执行保存的 java 文件。
    
    javac TranslationExample.java 
    java TranslationExample 
    
    执行时,上述程序会生成一个 JavaFX 窗口,如下所示。
    翻译转换