我正在编写一个工具,用于处理一堆3D数据,像旋转对象,翻译,缩放和所有好东西.有谁知道一个好的图书馆已经做了一些常见的3D东西?
我对目前的数据可视化不感兴趣,并且主要对执行操作感兴趣.
我知道在这一点上我需要的东西:
2D/3D/4D向量
(加,减,点积,叉积等......)
使用矩阵进行旋转/平移/缩放
四元
我能够找到Sharp3D库,但它似乎可以做我想要的但是很长时间没有更新.以前有人用过吗?还有其他(更好的)建议吗?
Microsoft.Xna.Framework(发布此XNA)可以完成这项工作.
XNA Framework Math库具有多种基本几何类型,可用于处理2D或3D空间中的对象.此库中的原始对象表示表示几何对象或该对象上的操作所需的数据.每种几何类型都有许多支持该类型的数学运算.
向量
XNA Framework提供了用于表示和操作向量的Vector2,Vector3和Vector4类.矢量通常用于表示方向和幅度.但是,在XNA框架中,它还可能用于存储具有相同存储要求的坐标或其他数据类型.
每个向量类都有执行标准向量操作的方法,例如:
点产品
交叉产品
正常化
转型
线性,立方,Catmull-Rom或Hermite样条插值.
矩阵
XNA Framework提供了用于转换几何的Matrix类.Matrix类使用行主要顺序来处理矩阵,这意味着在描述二维矩阵的元素时,在列之前指定行.除了用于创建比例,平移和旋转矩阵的辅助方法之外,Matrix类还提供了执行标准矩阵运算的方法,例如计算矩阵的确定性或反向性.
四元
XNA Framework提供了Quaternion结构来表示和计算围绕指定角度的向量的有效旋转.