時計

時計を作る

Tokei.java

アナログ時計を作ります。

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

import MyTokeiAnalog;
import Tpl10;

public class Tokei extends Tpl10 {

	// 円の半径
	double r;

	public void init() {
		// 画面
		tr.move(getWidth() / 2, getHeight() / 2);
		tr.set(1, 0, 0, -1);
		tr.scale(50);
		// 時計の半径
		r = 2;
		// Timerを1秒間隔にする
		setTimer(1000);
	}

	public void draw(Graphics2D g2) {
		// 現在の時刻を取得
		MyTokeiAnalog clock = new MyTokeiAnalog();

		double x, y;

		// アナログ時計
		g2.setColor(Color.orange);
		g2.draw(tr.Circle(0, 0, 0.98 * r));

		// 時計
		for (int i = 0; i < 360; i += 6) {
			x = 0.8 * r * Math.cos(Math.toRadians(i));
			y = 0.8 * r * Math.sin(Math.toRadians(i));
			if (i % 30 == 0) {
				g2.setColor(Color.magenta);
			} else {
				g2.setColor(Color.cyan);
			}
			g2.fill(tr.Point(x, y));
		}

		// 秒針
		g2.setColor(Color.lightGray);
		x = 0.6 * r * Math.cos(clock.getRadSec());
		y = 0.6 * r * Math.sin(clock.getRadSec());
		g2.draw(tr.Line(0, 0, x, y));

		g2.setColor(Color.black);
		// 長針h
		x = 0.9 * r * Math.cos(clock.getRadMin());
		y = 0.9 * r * Math.sin(clock.getRadMin());
		g2.draw(tr.Line(0, 0, x, y));

		// 短針
		x = 0.5 * r * Math.cos(clock.getRadHour());
		y = 0.5 * r * Math.sin(clock.getRadHour());
		g2.draw(tr.Line(0, 0, x, y));
	}
}

[前へ] [戻る]