[英]Translating a rectangle's coordinates
我有两个应用程序,一个创建矩形,输出它的左、上、宽、高和旋转角度,另一个将矩形绘制到屏幕上。
Application1(编写器)使用左上角作为旋转原点。
Application2(阅读器)使用中心作为旋转的原点。
我正在尝试获取 deltaX 和 deltaY,以便我可以绘制矩形,围绕原点旋转它,并使用内置的平移方法将矩形移动到位。
我知道点旋转可以计算如下:
x' = x*cos(theta) - y*sin(theta)
y' = x+sin(theta) + y*cos(theta)
但是,有了这个,我似乎无法弄清楚翻译方法所需的实际增量值。
在下图中,白色矩形是使用 top/left 作为旋转点绘制的,而绿色矩形是使用 center 作为旋转点绘制的。 我想将绿色矩形移到白色矩形上。
(0,0)
您必须通过以下方式翻译:
发展:
在应用程序 1 中,矩形的左上顶点应为 .
由于应用程序 1 围绕左上顶点旋转矩形,因此它们的旋转位置重合:
应用程序 2 使用中心坐标,它与应用程序 1 中的左上角点相关,如下所示:
为了在应用程序 2 中计算旋转后的左上角顶点,我们应用旋转矩阵R :
所以平移向量T是(代入上面的等式):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.