Java SWT中的二维变换-使用变换转换坐标

Java SWT中的二维变换-使用变换转换坐标,java,swt,2d,transform,Java,Swt,2d,Transform,假设我对gc应用了2D转换: Transform trRotated = new Transform(display); trRotated.rotate(-90); gc.setTransform(trRotated); 坐标系逆时针旋转-X轴指向上方,Y轴指向右侧 假设我想处理坐标,就好像Y指向下,X指向右 例如,我想输入转换前绿点的坐标(2,3)。 如果考虑转换,它应该转换为(-3,2),这是坐标 问题: 我是否必须手动转换坐标,或者是否有某种方法可以自动转换坐标,可能是通过

假设我对gc应用了2D转换:

  Transform trRotated = new Transform(display);
  trRotated.rotate(-90);
  gc.setTransform(trRotated);
坐标系逆时针旋转-X轴指向上方,Y轴指向右侧

假设我想处理坐标,就好像Y指向下,X指向右

例如,我想输入转换前绿点的坐标(2,3)。 如果考虑转换,它应该转换为(-3,2),这是坐标

问题: 我是否必须手动转换坐标,或者是否有某种方法可以自动转换坐标,可能是通过使用可用的
转换


我不确定您需要的旋转函数的上下文是什么

但是,对于以θ度旋转矩形(例如,数学托拉迪安(90))可以使用:


我不确定我是否正确地回答了这个问题,但是画出你想要的GC上下文,然后设置转换。瞧,结果会按照你通过设置
Transformation
instance选择的方式进行转换。。无需手动转换,只需使用转换即可。
AffineTransform transform = new AffineTransform();
transform.rotate(theta, rect.getX() + rect.width/2, rect.getY() + rect.height/2);
g2.transform(transform);