中心 \( (c_x, c_y) \)、半径 \( r \) の円の媒介変数表示です。
\[ \begin{cases} x = r \cos t + c_x \\ y = r \sin t + c_y \end{cases} \]package myMath; // 円の媒介変数表示 public class MyCircle extends MyCurve { // 中心・半径 double cx, cy, r; // コンストラクタ public MyCircle() { cx = cy = 0; r = 1; } // 中心・半径 public void set(double cx, double cy, double r) { this.cx = cx; this.cy = cy; this.r = r; } public void p(double t) { x = r * Math.cos(t) + cx; y = r * Math.sin(t) + cy; } }
円を表示させます。
import java.awt.Color; import java.awt.Graphics2D; import myMath.MyCircle; import myMath.Tpl20; public class TestMyCircle extends Tpl20 { public void draw2(Graphics2D g2) { MyCircle pf = new MyCircle(); draw(pf, 0, 2 * Math.PI); g2.setColor(Color.cyan); pf.set(1, 1, 1); draw(pf, 0, 2 * Math.PI); } }
円が表示されますが、線分の集まりなのでギザギザ感があります。