Graphics2D における Shape クラスには、中心と半径を指定して円を描くものはありません。 そういったものを作っていきます。 クラス名は、MyShape とします。
全ソースです。
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;
}
点のサイズは、ドット単位です。