中心 \( (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);
}
}
円が表示されますが、線分の集まりなのでギザギザ感があります。