我编写了一个支持 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 只支持轮换,因为这是我的主要问题。
对于这个问题的任何想法将不胜感激!
问候