标签: affinetransform

将2d方形旋转到另一个方形

我有两个正方形,S1 =(x1,y1,x2,y2)和S2 =(a1,b1,a2,b2)

我正在寻找A*S1 = S2的A变换矩阵

据我所知,A是一个仿射3x3矩阵,所以我有9个未知值.

我该如何计算这些值?

谢谢,最好,Viktor

math geometry affinetransform

1
推荐指数
1
解决办法
575
查看次数

如何围绕Java中的点旋转多边形/点

我一直在尝试围绕指定的中心点旋转多边形,但我尝试过的所有东西都失败了.我用谷歌搜索过,发现很多,但没有一个似乎工作.

我试图复制的结果与第一个答案类似

如何在Swing中逐渐旋转图像?

不同之处在于我需要多边形实际旋转,只是以一定角度绘制它不会切割它.(这是简单的物理建模)

这是我的代码,我尝试过几种不同的方法

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.Polygon;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JPanel;

public class rotationPanel extends JPanel {

    private static final int SIZE = 500;
    private static final Shape outline = makeShape();

    Point p;
    Point p2;
    Point p3;
    Point p4;
    Point[] points;
    Point[] npoints;

    Point center;
    Polygon poly;

    double angle;

    Timer timer;
    long start;
    long sleepTime;
    static int runTime;

    public rotationPanel(){
        setSize(500,500);
        setBackground(Color.DARK_GRAY);
        setVisible(true);

        runTime = 100;  //ms

        start …
Run Code Online (Sandbox Code Playgroud)

java polygon rotation affinetransform

1
推荐指数
1
解决办法
1万
查看次数

AffineTransform()以非常快的速度旋转矩形

我试图用java awt绘制一个矩形,并通过鼠标拖动使其与鼠标光标一起旋转.

当我测试它时,矩形旋转速度非常快.

我的矩形():

private Rectangle2D rec = new Rectangle2D.Float(x0,y0,w,h);
AffineTransform recTrans = new AffineTransform();
int pivotX = x0+w/2, pivotY = y0+h;
// (0,0) is at the top-left corner
Run Code Online (Sandbox Code Playgroud)

我的paintComponent():

 public void paintComponent(Graphics g) {
    Graphics2D graph = (Graphics2D) g;
            graph.translate(x,y);
            graph.transform(recTrans);
            graph.fill(rec);
            graph.setColor(Color.blue);
            graph.draw(rec);
}
Run Code Online (Sandbox Code Playgroud)

我的鼠标拖动事件:

 addMouseListener(new MouseAdapter() {
    public void mousePressed(MouseEvent e) {
            previousX = e.getX();
            previousY = e.getY();
        }
    });
 addMouseMotionListener(new MouseMotionAdapter() {
    public void mouseDragged(MouseEvent e) {
        currentX = e.getX();
        currentY = e.getY();

        double angle1 = …
Run Code Online (Sandbox Code Playgroud)

java swing awt java-2d affinetransform

0
推荐指数
1
解决办法
1361
查看次数

getAffineTransform - opencv

Q1.我想将点(x1,x2,x3)与点(y1,y2,y3)匹配.getAffineTransform无论这些点的顺序是什么,函数总是返回相同的变换矩阵吗?

Q2.如果我知道这些点只能通过旋转和平移进行变换而不进行任何缩放,那么从返回的变换矩阵中删除缩放的最简单方法是什么getAffineTransform.

c++ opencv affinetransform

0
推荐指数
1
解决办法
3526
查看次数

在Swift,Cocoa,Mac OSX中旋转NSImage

有没有一种简单的方法可以在Mac OSX应用程序中旋转NSImage?或者只是使用Swift设置从纵向到横向的方向?

我正在玩CATransform3DMakeAffineTransform,但我无法让它工作.

CATransform3DMakeAffineTransform(CGAffineTransformMakeRotation(CGFloat(M_PI) * 90/180))
Run Code Online (Sandbox Code Playgroud)

这是我第一次使用转换.所以请耐心等待我:)也许我正在采取错误的方法......

有人能帮帮我吗?

谢谢!

cocoa image-rotation nsimage affinetransform swift

0
推荐指数
2
解决办法
4231
查看次数

无法分配给属性:'CALayer'是不可变的

我正在尝试CALayer使用以下代码将仿射转换应用于:

var myLayer:CALayer!
myLayer.affineTransform = CGAffineTransformMakeRotation(0)
Run Code Online (Sandbox Code Playgroud)

但我遇到了错误

无法分配给属性:'myLayer'是不可变的.

有什么必要解决这个问题?

calayer affinetransform ios

0
推荐指数
1
解决办法
403
查看次数