ヤマカサのプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

JavaFX Polygonを使って三角形を描画する

Polygon (ポリゴン)

ポリゴンとは、コンピュータグラフィックなどで用いられるもので、日本語で多角形という意味です。
JavaFXにおけるPolygonクラスは、xy平面における座標を3つ指定することで三角形 (ポリゴン) を描画します。]
f:id:yamakasa3:20180316191708p:plain

使い方

Polygonクラスは座標を3つ指定しますが、ポリゴンを作った後に、描画する位置を指定できるので、3つの座標のうち1つは、(0, 0)でよいと思います。
また、位置だけでなく、回転もできるので、指定する座標をp1 = (0, 0), p2 = (x2, 0), p3 = (x3, y3)とすればよいと思います。
正三角形を描画したいとき、p1とp2の辺の長さはx2となるので、p3 = ( (x2)/2, (x2)*√3/2 ) )とすればいいと思います。
ポリゴンを90°回転させるには、.setRotate(90)とすればできます。また、最初から座標を回転行列を用いて変換しておく方法も考えられます。

コード

package application;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Polygon;
import javafx.stage.Stage;

public class Triangle extends Application{
	public static void main(String[] args) {
		launch(args);
	}
	@Override
	public void start(Stage stage) throws Exception{
		stage.setTitle("Triangle");
		stage.setWidth(300);
		stage.setHeight(300);
		Double []d = new Double[]{0.0, 0.0, 0.0, 30.0, 21.0, 15.0};
		Polygon triangle = new Polygon();
		triangle.getPoints().addAll(d);
		triangle.setLayoutX(50);
		triangle.setLayoutY(50);
		triangle.setFill(Color.BLACK);

		Group gp = new Group();
		gp.getChildren().add(triangle);
		Scene scene = new Scene(gp);
		stage.setScene(scene);
		stage.show();
	}
}

参考にしたサイト

d.hatena.ne.jp