現在のg2dオブジェクトに回転を適用しようとすると、回転せず、同じ場所にレンダリングされます(私のコンテキストでは、他のオブジェクトの上に)。回転メソッドについて私が理解していることから、現在のグラフィックス コンテキストに変換を適用し、その後に続くレンダリングのピクセルを変換します (これが間違っている可能性があります)。問題のコードは次のとおりです。
@Override
public void paint(final Graphics graphics) {
super.paint(graphics);
final Graphics2D g2d = (Graphics2D) graphics;
....
....
g2d.setColor(Color.RED);
g2d.setStroke(new BasicStroke(SMALL_LINE_THICKNESS));
if (isLattice1Drawn) {
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1));
// lattice1 and lattice2 are Polygon objects
g2d.draw(lattice1);
// This fades in the second Polygon over the first
g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
// This line should rotate it, but doesn't
g2d.rotate(Math.toRadians(210));
g2d.draw(lattice2);
.....
ありがとう、マイク
編集 1 ジェフからの提案として、回転とペイントでの描画だけを試してみたところ、次のコードが残りました。
@Override
public void paint(final Graphics graphics) {
super.paint(graphics);
final Graphics2D g2d = (Graphics2D) graphics;
g2d.rotate(Math.toRadians(210));
g2d.draw(lattice2);
return;
// Rest of paint .................
残念ながら、これは役に立ちませんでした。他の提案は大歓迎です。
編集 2: 回転を呼び出さないと、ポリゴンがレンダリングされますが、何もしないと何も起こりません。誰でもこれを説明できますか?