我有一个带有旋转和平移变换的 System.Drawing.Drawing2D.Matrix,我需要将其应用于 Sprite 。不幸的是,旋转原点位于 Sprite 的左上角。
如何将旋转原点更改为 Sprite 的中心?
最佳答案
目前,您的变换矩阵由一个旋转(原点左上角)乘以一个平移(从原来的左上角到新的左上角)组成。
要改变旋转的原点,你需要先做另一个平移:
Translate (-half width, -half height) 使对象居中
然后旋转(现在以 Sprite 的中心为中心)
然后是最终翻译(加上你在第 1 阶段起飞的一半和一半高度)。
关于c# - 改变矩阵变换的变换原点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5218436/