【JavaFX】オブジェクトの拡大、縮小、反転、回転
本稿ではNodeオブジェクトに対して拡大、縮小、反転、回転を適用してみたいと思います。
こちらは今回使用するベースプログラムのサンプルです。
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Test extends Application{
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
View v = new View();
Scene scene = new Scene(v, 400, 300);
primaryStage.setScene(scene);
primaryStage.show();
}
}
class View extends Group{
public View() {
//ここにオブジェクト表示処理を追加
}
}
拡大、縮小、反転を実装できるsetScaleメソッド
拡大縮小を実装するにはsetScaleメソッドを利用します。
setScaleX(倍率)で横幅を指定
setScaleY(倍率)で縦幅を指定
これを利用して画像の拡大縮小を実装してみたいと思います。
負の値を指定すると反転も可能です。
サンプルで使用するのはこの画像
まずは拡大のサンプルからです。
class View extends Group{
public View() {
//画像の表示
ImageView view = new ImageView(new File("./latifa_dot.png").toURI().toString());
view.setX(150);
view.setY(120);
view.setScaleX(3.5);
view.setScaleY(2);
getChildren().add(view);
}
}
実行結果

こちらは縮小のサンプルです。
class View extends Group{
public View() {
//画像の表示
ImageView view = new ImageView(new File("./latifa_dot.png").toURI().toString());
view.setX(150);
view.setY(120);
view.setScaleX(0.5);
view.setScaleY(0.8);
getChildren().add(view);
}
}
実行結果

最後に左右反転のサンプルです。
class View extends Group{
public View() {
//画像の表示
ImageView view = new ImageView(new File("./latifa_dot.png").toURI().toString());
view.setX(150);
view.setY(120);
view.setScaleX(-1);
getChildren().add(view);
}
}
実行結果

setScaleYのほうを負の数にすると上限反転できます。
回転を実装できるsetRotateメソッド
回転はsetRotateメソッドを使用します。
setRotate(角度)
awtみたいにラジアン指定ではなく、純粋に角度の指定でOKです。いや~便利になりましたね~
class View extends Group{
public View() {
//画像の表示
ImageView view = new ImageView(new File("./latifa_dot.png").toURI().toString());
view.setX(150);
view.setY(120);
view.setRotate(45);
getChildren().add(view);
}
}
実行結果











ディスカッション
コメント一覧
まだ、コメントがありません