エピサイクロイド

はじめに

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

TestMyEpiCycloid01.java

ここまでのソースです。

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;
		}
	}
}

[戻る] [次へ]