如何调整纵横比的旋转矩形?

时间:2011-11-14 07:58:15

标签: algorithm math graphics rotation

我有一系列分数

PArr [0..3]

对应于矩形点,我知道如何围绕其中心旋转矩形,但我希望在角度θ旋转过程后调整它。

我在网上搜索但我没有找到适合旋转矩形的算法 关于我在鼠标移动操作中调整它的大小。

如何在保持矩形边长宽比的同时调整点的大小,我知道这是一个向量问题,但我对此有点困惑?

1 个答案:

答案 0 :(得分:2)

使用转换矩阵。它们提供了清晰的多重变换。

http://en.wikipedia.org/wiki/Transformation_matrix

在您的情况下,您需要4个矩阵:

  1. 翻译(-sizeX/2, -sizeY/2) - 处理围绕矩形中心的进一步转换

  2. 按指定角度旋转

  3. 按指定系数缩放(将保留矩形的宽高比!)

  4. 翻译(sizeX/2, sizeY/2) - 恢复第一个定位

  5. 将这4个矩阵相乘并将结果应用于矩形点。哦,你的矩形的原点必须在(0,0)才能应用矩阵。如果矩形的原点有(x0,y0)坐标,请使用

    (-x0 - sizeX/2, -y0 - sizeY/2)第一个矩阵

    第四个

    (x0 + sizeX/2, y0 + sizeY/2)