アナログ時計を作ります。
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));
}
}