Animation 3D图形

  • 旋转

    Timeline timelineR = new Timeline();  
    Rotate rotate = new Rotate(0, 0, 0, 0);// 中心点  
    rotate.setAxis(new Point3D(1, 1, 1));  
    box.getTransforms().add(rotate);  
    KeyValue angle1 = new KeyValue(rotate.angleProperty(), 0);  
    KeyFrame kf1 = new KeyFrame(Duration.seconds(0), angle1);  
    KeyValue angle2 = new KeyValue(rotate.angleProperty(), 360);  
    KeyFrame kf2 = new KeyFrame(Duration.seconds(5), angle2);  
    timelineR.getKeyFrames().addAll(kf1, kf2);  
    timelineR.setCycleCount(Timeline.INDEFINITE);
    
  • 缩放

    Timeline timelineS = new Timeline();  
    Scale scale = new Scale(1, 1, 1, 0, 0, 0);// 中心点  
    box.getTransforms().add(scale);  
    KeyValue scale1x = new KeyValue(scale.xProperty(), 1);  
    KeyValue scale1y = new KeyValue(scale.yProperty(), 1);  
    KeyValue scale1z = new KeyValue(scale.zProperty(), 1);  
    KeyFrame kf3 = new KeyFrame(Duration.seconds(0), scale1x, scale1y, scale1z);  
    KeyValue scale2x = new KeyValue(scale.xProperty(), 2);  
    KeyValue scale2y = new KeyValue(scale.yProperty(), 2);  
    KeyValue scale2z = new KeyValue(scale.zProperty(), 2);  
    KeyFrame kf4 = new KeyFrame(Duration.seconds(2), scale2x, scale2y, scale2z);  
    timelineS.getKeyFrames().addAll(kf3, kf4);  
    timelineS.setCycleCount(Timeline.INDEFINITE);  
    timelineS.setAutoReverse(true);