如何使用中心点平移对象
我有一个矩形,它的中心点远离矩形的位置。
当我旋转矩形时,它绕其中心轴旋转。
如果我在modelView矩阵中旋转之前有多个位置
ModelViewMatrix = Rotation * Scaling * Position
假设我要翻译。
1)将矩形位置平移x = 10个单位。
1)将矩形以其中心为中心旋转35度。
2)将矩形位置平移x = 10个单位。
3)将中心点的x位置更改10个单位(矩形不应受中心点位置的变化影响)
如果有人可以指导我,我们如何在转换中使用中心点。 如果我使用中心点,如何通过ModelView Matrix进行构建。
答案 0 :(得分:2)
如果必须跟随矩形,则红色十字是世界的中心,并且您要围绕绿色枢轴旋转它
然后您必须执行以下步骤:
下面的transPivot
是一个转换矩阵,它由从原点(0,0)到枢轴点(pivotPos
)的向量定义。枢轴以绿色十字标记。
rotation
是绕z轴的旋转矩阵:
ModelViewMatrix = transPivot * rotation * -transPivot
-transPivot
是inverse(transPivot)
矩阵,在这种情况下等于-pivotPos
的转换矩阵。