Я написал программу, которая поддерживает 3 действия: вращать, переводить и масштабировать.Как повернуть 2D-объект вокруг себя?
Перевод & масштабирование отлично работает, но у меня возникли проблемы с вращением.
В начале кода я анализирую исходную точку из файла и затем рисую исходный объект в 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 поддерживает только вращение, так как это моя главная проблема.
Любая идея для этой проблемы была бы принята с благодарностью!
С уважением
Вы уверены в этом? он по-прежнему вращается вокруг центра, хотя я изменил, как вы упомянули выше .. спасибо. Изменено это: 'currentLine = m_transforms.translate (-this.m_orX, -this.m_orY, currentLine);', 'currentLine = m_transforms.rotate (m_direction, currentLine);', 'currentLine = m_transforms.translate (this.m_orX , this.m_orY, currentLine); ',' this.m_currentLines.set (i, currentLine); ' – ron
Ну, я не пробовал, и это было какое-то время, но основное вращение всегда происходит вокруг, поэтому .. Но я понимаю, что тебе нужно работать тогда, хорошо :) – hyde