3

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

  Transform trRotated = new Transform(display);
  trRotated.rotate(-90);
  gc.setTransform(trRotated);

坐标系逆时针旋转 - X achse 指向上方,Y achse 指向右侧。

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

例如,我想在转换之前输入绿点的坐标,即 (2,3)。如果考虑转换,则应将其转换为坐标 (-3,2)。

问题: 我是否必须手动转换坐标,或者是否有办法自动进行转换,也许是使用可用的transform

在此处输入图像描述

4

1 回答 1

0

我不确定您需要的旋转功能的上下文是什么。

但是,对于以 theta 度旋转矩形(例如 Math.toRadians(90))可以使用:

AffineTransform transform = new AffineTransform();
transform.rotate(theta, rect.getX() + rect.width/2, rect.getY() + rect.height/2);
g2.transform(transform);
于 2013-04-28T14:04:04.417 回答