如何使用矩形坐标计算变换?

时间:2015-04-16 10:05:58

标签: c++ qt rotation geometry transformation

朋友您好我正在处理一个项目,但我遇到了问题。 见下图 enter image description here

这个紫色的矩形是我想要旋转和变换的主要区域。我使用Qtransform旋转30度旋转,尺寸(180,173)。我已经计算了内部区域的绳索并将它们传递给paint事件,当我调整外部Rectangle时,这个内部矩形是使用painterpath绘制的,请参见下图 enter image description here 现在img 2中的这个紫色区域看起来变形了,因为当我缩小外部直肠的大小时,我只绘制了绳索。

所以我的问题是,是否有任何方法可以计算内部区域变换的角度如果是,请帮助我们。

1 个答案:

答案 0 :(得分:1)

我假设您能够获得目标图形的坐标(应用变换后)。您可以使用atan2函数获取矢量和X轴之间的角度(辐射亮度):

QPointF vector = vector_end - vector_start;
double angle = atan2(vector.y(), vector.x());

两个向量的angle值的差异将给出这两个向量之间的角度。您可能需要通过添加或减去2π来确保差异在[0,2π]范围内。