Java Applet

MyShape クラス作成

Graphics2D における Shape クラスには、中心と半径を指定して円を描くものはありません。 そういったものを作っていきます。 クラス名は、MyShape とします。

MyShape.java

全ソースです。

import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;

public class MyShape {

	// 直線
	public Line2D Line(double x1, double y1, double x2, double y2) {
		return new Line2D.Double(x1, y1, x2, y2);
	}

	// 円
	public Ellipse2D Circle(double x, double y, double r) {
		return new Ellipse2D.Double(x - r, y - r, 2 * r, 2 * r);
	}

	// 点
	int PointSize = 2;

	public Ellipse2D Point(double x, double y) {
		return new Ellipse2D.Double(x - PointSize, y - PointSize,
				2 * PointSize, 2 * PointSize);
	}

	public void setPointSize(int size) {
		PointSize = size;
	}
}

解説

直線を作る必要はないです。 ただ、点、直線、円の3つを揃えたいだけです。 では、Line2D を使って直線を作ります。

// 直線
public Line2D Line(double x1, double y1, double x2, double y2) {
	return new Line2D.Double(x1, y1, x2, y2);
}

円は、Ellipse2Dクラスを使います。 Ellipse2D は楕円です。 楕円を囲む長方形の角(かど)の座標とサイズを指定します。

これを利用して円を作ります。

// 円
public Ellipse2D Circle(double x, double y, double r) {
	return new Ellipse2D.Double(x - r, y - r, 2 * r, 2 * r);
}
}

点は円を塗りつぶします。 ただ、座標のみ指定するだけです。 点のサイズを指定するメソッドも作ります。

// 点
int PointSize = 2;

public Ellipse2D Point(double x, double y) {
	return new Ellipse2D.Double(x - PointSize, y - PointSize, 2 * PointSize, 2 * PointSize);
}

public void setPointSize(int size) {
	PointSize = size;
}

点のサイズは、ドット単位です。

[前へ] [戻る] [次へ]