アップレットプログラムですが、以前に作った Tpl30 クラスを継承します。
MyScreenクラスを使います。 ですから、画面の左下が原点です。 y軸も上に向かっています。 目盛りは、30ドットを1とします。 プログラムは次のようになります。
MyScreen sc;
public void initApp() {
sc = new MyScreen(getSize());
sc.setScale(30);
sc.moveOrgCenter();
setTimer(10);
}
軸を描きます。
// 軸 g2.draw(sp.LineX(sc)); g2.draw(sp.LineY(sc));
エピサイクロイドは、以前作ったクラスを利用します。
MyEpiCycloid mp = new MyEpiCycloid(); double rc = 1.0; // 定円 double rm = 1.0; // 動円 mp.init(rc, rm); x = Math.toRadians(t); mp.draw(g2, sc, 0, x);
ここまでのソースです。
import java.awt.Color;
import java.awt.Graphics2D;
import myMath.MyEpiCycloid;
import myMath.Tpl10;
public class TestMyEpiCycloid01 extends Tpl10 {
// 円・秒
int t = 0;
double rc = 1.0; // 定円
double rm = 1.0; // 動円
public void init() {
tr.move(getWidth()/2,getWidth()/2);
tr.set(1, 0, 0, -1);
tr.scale(30);
setTimer(10);
}
public void draw(Graphics2D g2) {
MyEpiCycloid mp = new MyEpiCycloid();
double x;
mp.set(rc, rm);
x = Math.toRadians(t);
// 軸
g2.setColor(Color.black);
g2.draw(tr.LineX());
g2.draw(tr.LineY());
draw(mp, 0, x);
t++;
if (t > 360) {
t = 0;
}
}
}