私は Java Swing で形状を回転および平行移動するコマンド パターンです。平行移動と回転は別々にうまく機能しますが、60 度を実行すると、回転、次に平行移動、平行移動は新しい回転座標に従います。つまり、マウスをドラッグすると、マウスの移動ベクトルから 60 度のギャップで形状が移動します。簡単な解決策はありますか? 助けてください、私はここで壁にぶつかっています
ローテーションの実行方法
public void execute() {
System.out.println("command: rotate " + thetaDegrees );
Iterator iter = objects.iterator();
Shape shape;
while(iter.hasNext()){
shape = (Shape)iter.next();
mt.addMememto(shape);
AffineTransform t = shape.getAffineTransform();
t.rotate(Math.toRadians(thetaDegrees), shape.getCenter().x, shape.getCenter().y);
shape.setAffineTransform(t);
}
}
翻訳のための私の実行方法
public void execute() {
Iterator iter = objects.iterator();
Shape shape;
while(iter.hasNext()){
shape = (Shape)iter.next();
mt.addMememto(shape);
AffineTransform t = shape.getAffineTransform();
System.out.println("Translation x :"+x + ", Translation y :"+y);
t.translate(x,y);
shape.setAffineTransform(t);
}
}
どんな助けでも本当に感謝できます