c# - 改变矩阵变换的变换原点

标签 c# matrix

我有一个带有旋转和平移变换的 System.Drawing.Drawing2D.Matrix,我需要将其应用于 Sprite 。不幸的是,旋转原点位于 Sprite 的左上角。

如何将旋转原点更改为 Sprite 的中心?

最佳答案

目前,您的变换矩阵由一个旋转(原点左上角)乘以一个平移(从原来的左上角到新的左上角)组成。

要改变旋转的原点,你需要先做另一个平移:

Translate (-half width, -half height) 使对象居中
然后旋转(现在以 Sprite 的中心为中心) 然后是最终翻译(加上你在第 1 阶段起飞的一半和一半高度)。

关于c# - 改变矩阵变换的变换原点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5218436/

相关文章:

c# - 如何在 EmguCV 中保存具有透明背景的图像

c# - 浏览器关闭时使 ASPXAUTH Cookie 过期

matlab - 矩阵/张量三重积?

python - 如何用Python创建150万用户的友谊矩阵?

R - 更新非常大的稀疏矩阵中的列

python - 矩阵转置

c# - 保持应用程序始终运行

c# - 没有事件处理程序的绑定(bind)事件..为什么有效?

c# - 在 lambda 表达式中的另一个对象列表中获取一个对象列表

matlab - 将不需要的值替换为最接近的恰好为正的索引值