我有一系列分数
PArr [0..3]
对应于矩形点,我知道如何围绕其中心旋转矩形,但我希望在角度θ旋转过程后调整它。
我在网上搜索但我没有找到适合旋转矩形的算法 关于我在鼠标移动操作中调整它的大小。
如何在保持矩形边长宽比的同时调整点的大小,我知道这是一个向量问题,但我对此有点困惑?
答案 0 :(得分:2)
使用转换矩阵。它们提供了清晰的多重变换。
http://en.wikipedia.org/wiki/Transformation_matrix
在您的情况下,您需要4个矩阵:
翻译(-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)