如何围绕JPanel中的点旋转圆?

问题描述

我正在尝试绕程序中的单独点旋转一个圆。现在,我可以使圆旋转,但是它慢慢开始越来越接近旋转的起点。我正在尝试使用JPanel并将其实现为矩形。

package WoffindenZone;
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.awt.event.*;
import java.lang.Math;
public class Protector extends Rectangle{
double Velocity;
int speed = 3;
Protector(int x,int y,int PROTECTOR_DIAMETER){
    super(x,y,PROTECTOR_DIAMETER,PROTECTOR_DIAMETER);
}

public void keyPressed(KeyEvent e){
    if(e.getKeyCode()==KeyEvent.VK_A) {
        setDirection(speed);
        move();
    }
    if(e.getKeyCode()==KeyEvent.VK_D) {
        setDirection(speed);
        move();
    }
}
public void keyReleased(KeyEvent e){
    if(e.getKeyCode()==KeyEvent.VK_A) {
        setDirection(0);
        move();
    }
    if(e.getKeyCode()==KeyEvent.VK_D) {
        setDirection(0);
        move();
    }
}
public void setDirection(int Direction){
    Velocity = Direction*Math.PI/180;
}

public void move(){
    x = (int)Math.round(500 + Math.cos(Velocity) * (x-500) - Math.sin(Velocity) * (y-((1000*0.5555)/2)));
    y = (int)Math.round(((1000*0.5555)/2) + Math.sin(Velocity) * (x-500) + Math.cos(Velocity) * (y-((1000*0.5555)/2)));
    System.out.println(x);
    System.out.println(y);
}
public void draw(Graphics g){
    g.setColor(Color.blue);
    g.fillOval(x,width,height);
}    

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)