私はJavaでオブジェクトを回転しようとしていますが、何かが間違っていることに気付きました。 私は180度の回転、私は90度の角度の値を取得するので、360度の角度を取得するには、私はそれを2回回転する必要があります。 どうしたの? 0°,90°,180°オブジェクトの回転角度が間違っています
コード:
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
if (rotate == true) {
ship.increaseDegress();
}
ship.draw(g);
}
Ship.java
public void increaseDegress() {
rotationAngle += 10;
if(rotationAngle>360) {
rotationAngle = 0;
}
}
public void draw(Graphics g) {
this.g = g;
Graphics2D g2 = (Graphics2D) g;
AffineTransform at = new AffineTransform();
Rectangle rect = this.getBounds();
at.rotate(Math.toRadians(rotationAngle), rect.getX() + rect.getWidth()/2, rect.getY() + rect.getHeight()/2);
g2.setColor(Color.BLUE);
g2.setTransform(at);
g2.draw(at.createTransformedShape(this));
}
[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 –
答えはあなたが0点を考える場所によって異なります – MadProgrammer
あなたは回転を2回適用しているようですが、それ以上の情報は必要ありません(繰り返し塗りつぶす度に、グラフィックス全体を角度で回転しています) – MadProgrammer