mport java.lang.Math; import javafx.animation.Interpolator; import javafx.animation.transition.RotateTransition; import javafx.scene.effect.BlendMode; import javafx.scene.Group; import javafx.scene.Node; import javafx.scene.paint.Color; import javafx.scene.Scene; import javafx.scene.shape.Circle; import javafx.stage.Stage; import javafx.scene.shape.Arc; import javafx.scene.shape.ArcType; def radian = Math.PI / 180.0; var node: Node = Group { translateX: 100 translateY: 100 // 6個の円 content: [ for (angle in [0..300 step 60]) { Circle { centerX: 50.0 * Math.cos(angle * radian); centerY: -50.0 * Math.sin(angle* radian); radius: 35 fill: Color.PINK stroke: Color.RED } }, // 重ね順を調節するための半円 Arc { centerX: 50, centerY: 0 radiusX: 35, radiusY: 35 startAngle: 180, length: 180 type: ArcType.OPEN fill: Color.PINK stroke: Color.RED } ] }; var rotateTransition = RotateTransition { // 回転の対象ノード node: node // 回転角度の設定 // 0度から720度回転させる fromAngle: 0 byAngle: 720 // これらのアトリビュートは Timeline クラスに準ずる duration: 5s repeatCount:4 interpolate: Interpolator.EASEBOTH autoReverse: true }; // 回転の開始 rotateTransition.play(); Stage { title: "Rotate Sample" scene: Scene { width: 200 height: 200 content: node } }