我需要让图像绕线飞行,我现在只停留在一部分上。
为了计算点,需要使用毕达哥拉斯来计算高度(点B)。

现在,当使用sqrt函数时,出现我无法将double转换为int的错误。
这是我的代码:

package vogel;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;

public class vogel extends Component {
    private int x;
    private int r;
    private int b;


    BufferedImage img;

    public vogel() {
       try {
           img = ImageIO.read(new File("F:/JAVA/workspace/School/src/vogel/vogel.png"));
       } catch (IOException e) {
       }
       r = 6;
    }


    @Override
    public void paint(Graphics g) {
        for(int i = -r; i <= r; i++) {
            x = i;

            b = Math.sqrt(r^2 - x^2);
            g.drawImage(img, x, b, this);
        }
    }


    public static void main(String[] args) {
        JFrame f = new JFrame("Boot");
        f.setSize(1000,1000);
        f.add(new vogel());
        f.setVisible(true);

        for (int number = 1; number <= 1500000; number++) {
            f.repaint();

            try {
                Thread.sleep(50);
            } catch (InterruptedException e) {}
        }
    }
}


希望你们中的一个能帮助我

最佳答案

转换值。例如。

b = (int)Math.sqrt(r^2 - x^2);

关于java - 在Java中让图像绕圈飞行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7752167/

10-10 17:58