円と正弦曲線

TestMySin01.java

ソースです。

import java.awt.Color;
import java.awt.Graphics2D;

import myMath.MyCircle;
import myMath.MyCurve;
import myMath.Tpl10;

public class TestMySin01 extends Tpl10 {

	int t = 0;

	public void init() {
		tr.move(50, getHeight() / 2);
		tr.set(1, 0, 0, -1);
		tr.scale(50);
		setTimer(10);
	}

	public void draw(Graphics2D g2) {
		double x;
		MyCircle mc = new MyCircle();
		MyParaSin mp = new MyParaSin();

		x = Math.toRadians(t);
		// 軸
		g2.setColor(Color.black);
		g2.draw(tr.LineX());
		g2.draw(tr.LineY());
		// 円
		g2.setColor(Color.blue);
		mc.p(x);
		g2.draw(tr.Line(0, 0, mc.x, mc.y));
		g2.setColor(Color.red);
		g2.fill(tr.Point(mc.x, mc.y));
		g2.setColor(Color.green);

		draw(mc, 0, x);

		// sin
		g2.draw(tr.Line(1, 0, 1+x, 0));
		g2.setColor(Color.red);
		g2.fill(tr.Point(1+x, 0));
		mp.p(x);
		g2.fill(tr.Point(mp.x, mp.y));
		g2.setColor(Color.orange);

		draw(mp, 0, x);

		t++;
		if (t > 360) {
			t = 0;
		}
	}

	class MyParaSin extends MyCurve {
		public void p(double t) {
			x = t + 1;
			y = Math.sin(t);
		}
	}
}

[戻る]