アップレットプログラムですが、以前に作った 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; } } }