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; }
点のサイズは、ドット単位です。