【问题标题】:2D Transformation in SWT - converting coordinates with TransformSWT 中的 2D 变换 - 使用 Transform 转换坐标
【发布时间】:2013-03-07 20:57:36
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 我不确定我是否以正确的方式得到了这个问题,但是绘制任何你想要的 GC 上下文,然后设置转换一个瞧,结果被转换为你通过设置Transformation instance..无需手动转换,只需使用转换即可。

标签: java swt 2d transform


【解决方案1】:

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

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

AffineTransform transform = new AffineTransform();
transform.rotate(theta, rect.getX() + rect.width/2, rect.getY() + rect.height/2);
g2.transform(transform);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-06
    • 2015-01-01
    • 2018-05-25
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 2010-11-16
    • 2015-06-29
    相关资源
    最近更新 更多