c# - 发送矩阵的方向...转换为度数?弧度?没有小数点的东西?

标签 c# memory xna shared

我希望能够告诉服务器我的模型的方向,以便它可以反过来将其发送回所有其他玩家。但是通过共享内存获取值(最坏情况下取字节值,最好情况下取整数)。

有没有一种数学方法可以检查我的模型的旋转,将其转换为偏离默认值的度数,然后将该 1-360 度值发送到服务器,而不是尝试发送整个矩阵结构的 16 个浮点值?

发送 16 个花车让我获得了 120 个与所有相关玩家的额外共享内存文件。不是真正的最佳实践。有什么见解吗?

最佳答案

将旋转矩阵转换为四元数是否可行? 这将从发送整个矩阵减少到发送单个向量并围绕该向量旋转。

XNA 有一个四元数结构 ( http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.quaternion.aspx ),其中包含方法:Quaternion.CreateFromRotationMatrix,它采用旋转矩阵。

这将生成 ijk 四元数,其中 W 分量作为围绕该轴的旋转 theta。

关于c# - 发送矩阵的方向...转换为度数?弧度?没有小数点的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5671920/

相关文章:

c# - 缓存 - IDictionary 与顶级键前缀

c - 在C中初始化数据结构来管理内存池

c# - 如何在 XNA 中最大化窗口

c# - 从列表创建敌人

c++ - 访问内存时发生奇怪的崩溃

c# - Kinect NullReferenceException 错误

C# - 从基本方法完成返回

c# - 从模板生成 App.config

c# - 如何使通用列表等于另一个通用列表

c - 使用 malloc 给我的内存比预期的多吗?