【发布时间】:2011-06-23 06:42:45
【问题描述】:
我有两个应用程序,一个创建一个矩形,并输出它的左侧、顶部、宽度、高度和旋转角度,另一个将矩形绘制到屏幕上。
Application1 (writer) 使用左上角作为旋转原点。
Application2(阅读器)使用中心作为旋转原点。
我正在尝试获取 deltaX 和 deltaY,以便我可以绘制矩形,围绕原点旋转它,并使用内置的 translate 方法将矩形移动到位。
我知道可以按如下方式计算点旋转:
x' = x*cos(theta) - y*sin(theta)
y' = x+sin(theta) + y*cos(theta)
但是,这样一来,我似乎无法弄清楚 translate 方法所需的实际 delta 值。
在下图中,白色矩形是使用顶部/左侧作为旋转点绘制的,而绿色矩形是使用中心作为旋转点绘制的。我想将绿色矩形移到白色矩形上。
(0,0)
【问题讨论】:
-
翻译,例如,将增量添加到矩形边界?还是您在谈论其他翻译?
-
我的理解是翻译意味着将每个坐标移动deltaX,deltaY。
-
那么应用程序2通过中心坐标、宽度、高度和旋转来描述矩形?
-
@Alan: 应用 1 和 2 中 x 轴和 y 轴的方向是什么?
-
在这两个应用程序中,0,0 是屏幕的左上角。
标签: geometry translation