gpt4 book ai didi

java - 如何在java小程序中像模拟时钟一样制作360度的线条动画

转载 作者:行者123 更新时间:2023-12-01 09:24:20 26 4
gpt4 key购买 nike

360 度移动一条线。

这是我的代码

import java.applet.*;
import java.awt.*;
import java.util.*;
public class HelloWorldApplet extends Applet implements Runnable{
Insets insets;
Thread th;
int x;
Image bakground;
public void paint (Graphics g){
super.paint(g);
g.setColor(Color.BLACK);
g.drawLine(x,10,90,90);
}
public void init() {
bakground=getImage(getCodeBase(),"clock");
}
@Override
public void start() {
if(th==null){
th=new Thread(this);
th.start();
}
}
@Override
public void run() {
// TODO Auto-generated method stub
for (x = 90;x <=450; x+=5) {
repaint();
try{
th.sleep(100);
}
catch(Exception r){

}
}
}
}

它会旋转,但不是 360 度旋转,而是线条变得越来越大。我想像模拟时钟一样为线条设置动画。

最佳答案

您可以使用数学的魔力,特别是三角学来计算圆上直线的端点。但最简单的方法是使用仿射变换。看看这个 paint() 方法

public void paint (Graphics g){
super.paint(g);
g.setColor(Color.BLACK);
Graphics2D gg = (Graphics2D) g.create(); // create new layer and cast to advanced Graphics2d
gg.rotate(Math.toRadians(x), 90,90); // rotate new layer at center position 90,90 around x degrees
gg.drawLine(90,90,0,0); // draw line to center position
gg.dispose(); // push new layer back
}

关于java - 如何在java小程序中像模拟时钟一样制作360度的线条动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39957195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com