c# – 将2D仿射变换矩阵转换为3D仿射变换矩阵

c# – 将2D仿射变换矩阵转换为3D仿射变换矩阵,第1张

概述我的代码中有一个错误,想知道这是不正确的. 我的代码中有一个2D视图矩阵,但要将我的世界显示在屏幕上,我需要将2D视图矩阵转换为3D视图矩阵.这是我正在使用的过程: | a b c | | a b c 0 || d e f | => | d e f 0 || g h i | | g h i 0 | | 0 0 0 1 | 当我对2D矩阵使用 我的代码中有一个错误,想知道这是不正确的.

我的代码中有一个2D视图矩阵,但要将我的世界显示在屏幕上,我需要将2D视图矩阵转换为3D视图矩阵.这是我正在使用的过程:

| a b c |      | a b c 0 || d e f |  =>  | d e f 0 || g h i |      | g h i 0 |               | 0 0 0 1 |

当我对2D矩阵使用单位矩阵时它起作用,但是一旦我将任何变换应用于2D矩阵,我绘制的所有对象都会消失.

对于使用3D绘制2D,我使用此投影矩阵:

_basicEffect.Projection = Matrix.CreateOrthographicOffCenter(0,graphicsDevice.VIEwport.WIDth,graphicsDevice.VIEwport.Height,1);

将2D矩阵转换为3D的正确方法是什么?

解决方法 仿射变换使用变换矩阵的额外行/列进行转换.所以我认为你想要做的是向下/向右移动最后一行/列,然后为新轴简单地插入标识转换.
| a b c |      | a b 0 c || d e f |  =>  | d e 0 f || g h i |      | 0 0 1 0 |               | g h 0 i |

我不确定,但至少试一试.

总结

以上是内存溢出为你收集整理的c# – 将2D仿射变换矩阵转换为3D仿射变换矩阵全部内容,希望文章能够帮你解决c# – 将2D仿射变换矩阵转换为3D仿射变换矩阵所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1241998.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存