回転、移動、スケーリングの 3 つのアクションをサポートするプログラムを作成しました。
移動とスケーリングはうまく機能していますが、回転に問題があります。
コードの冒頭で、ファイルから原点を解析し、2D 平面に最初のオブジェクトを描画します。次に、オブジェクトはそれ自体の周りを回転するのではなく、原点の周りを回転します。
すべての行列と数式をチェックしましたが、正確なバグを見つけることができませんでした。ここでどこが間違っていたのでしょうか?
スケーリングと変換なしで、回転の部分的なコードを添付しました。
コードの SSCCE は次のとおりです。
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.util.ArrayList;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Point2D;
import java.awt.geom.Line2D;
import java.io.IOException;
import javax.swing.JFrame;
public class SSCCE {
public static void main (String[] args) throws IOException
{
ClippingView1 CC = new ClippingView1();
CC.start();
}
}
- これが私の主な問題であるため、この SSCCE は回転のみをサポートします。
問題のアイデアは大歓迎です!
よろしく