AffineTransform at;
Graphics2D g2 = (Graphics2D)g;
g2.setColor(Color.black);
at = new AffineTransform();
at.setToTranslation(x, y);
at.setToRotation(theta);
g2.setTransform(at);
g2.drawPolygon(points);
私のコードは x と y に三角形を描画します...そして、a と d を押すと三角形が回転します..しかし、w と s を押すと、三角形は x と y を変更しません。
変数は正しいです..それは翻訳ルーチンです..どこで間違ったのかわかりません..
私がこれを行う場合:
AffineTransform at;
Graphics2D g2 = (Graphics2D)g;
g2.setColor(Color.black);
at = new AffineTransform();
at.setToTranslation(x, y);
g2.setTransform(at);
g2.drawPolygon(points);
at.setToRotation(theta);
g2.setTransform(at);
g2.drawPolygon(points);
1 つは回転し、もう 1 つは移動します。では、描画する前に両方の平行移動を適用できないのはなぜですか?