java applet 绘制动态太极图
时间: 2023-08-29 11:07:08 浏览: 153
Java Applet 是一种在网页中嵌入 Java 程序的技术,通过使用 Java Applet 可以在网页中实现一些动态效果。下面是一个简单的 Java Applet 绘制太极图的示例代码:
```java
import java.applet.*;
import java.awt.*;
public class Taiji extends Applet implements Runnable {
int x, y, r;
int angle = 0;
boolean flag = true;
Thread t;
public void init() {
x = getWidth() / 2;
y = getHeight() / 2;
r = Math.min(getWidth(), getHeight()) / 2 - 50;
setBackground(Color.white);
}
public void start() {
if (t == null) {
t = new Thread(this);
t.start();
}
}
public void run() {
while (true) {
if (flag) {
angle += 5;
if (angle >= 360) {
angle = 0;
}
} else {
angle -= 5;
if (angle <= -360) {
angle = 0;
}
}
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
}
}
public void stop() {
if (t != null) {
t = null;
}
}
public void paint(Graphics g) {
g.setColor(Color.black);
g.drawOval(x - r, y - r, r * 2, r * 2);
g.fillArc(x - r, y - r, r * 2, r * 2, 90 + angle / 2, -180);
g.setColor(Color.white);
g.fillArc(x - r, y - r, r * 2, r * 2, 90 + angle / 2, 180);
g.setColor(Color.black);
g.fillOval(x - r / 2, y - r, r, r);
g.setColor(Color.white);
g.fillOval(x - r / 2, y, r, r);
}
public boolean mouseDown(Event e, int x, int y) {
flag = !flag;
return true;
}
}
```
在这个例子中,我们创建了一个名为 Taiji 的 Java Applet,通过继承 Applet 类并实现 Runnable 接口来实现动态效果。
在 init 方法中,我们初始化了太极图的圆心坐标和半径,并设置了背景颜色。
在 start 方法中,我们创建并启动了一个新的线程,在这个线程中不断更新太极图的旋转角度,并调用 repaint 方法重新绘制太极图。
在 run 方法中,我们使用一个循环来不断更新太极图的旋转角度。当 flag 为 true 时,太极图顺时针旋转;当 flag 为 false 时,太极图逆时针旋转。我们通过调用 Thread.sleep 方法来控制更新速度。
在 paint 方法中,我们绘制了太极图的两个半圆和两个小圆。我们使用 setColor 方法设置颜色,使用 drawOval 和 fillOval 方法绘制圆形,使用 fillArc 方法绘制半圆形。
在 mouseDown 方法中,我们处理了鼠标单击事件,将 flag 取反以改变太极图的旋转方向。
阅读全文