我有一个点数组
PArr [0..3]
对应于矩形点,我知道如何围绕其中心旋转矩形,但我想在旋转角度 theta 后调整它的大小。
我在网上搜索过,但没有找到适用于旋转矩形的算法 关于我在鼠标移动操作中调整它的大小。
如何在保持矩形边长宽比的同时调整点的大小,我知道这是一个矢量问题,但我对此有点困惑?
最佳答案
使用变换矩阵。它们提供清晰的多重转换。
http://en.wikipedia.org/wiki/Transformation_matrix
在您的情况下,您需要 4 个矩阵:
Translation
(-sizeX/2, -sizeY/2)
- 处理围绕矩形中心的进一步转换旋转指定角度
按指定比例缩放(矩形的纵横比将保持不变!)
翻译
(sizeX/2, sizeY/2)
- 恢复第一个定位
将这 4 个矩阵相乘并将结果应用于矩形点。哦,您的矩形必须以 (0, 0) 为原点才能应用矩阵。如果矩形的原点具有 (x0, y0) 坐标,请使用
(-x0 - sizeX/2, -y0 - sizeY/2)
第一个矩阵
和(x0 + sizeX/2, y0 + sizeY/2)
第四个
关于algorithm - 如何调整具有纵横比的旋转矩形的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8118745/