C#中用于3D数学的好库?

我正在编写一个工具,用于处理一堆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提供了四元数结构来表示和计算围绕指定角度的向量的有效旋转。

我之前从未使用它,但我只是抓住了Sharp3D,它似乎运行良好(除了一些关于强名称需要几分钟才能解决的问题)。 我的印象是它不是很轻,但远不是沉重的一面。

至于最近没有更新,它不像数学正在改变或任何事情……

在www.obacs.com上试试Scinet Linea。 它不是一个免费的图书馆,但与替代品相比,它不是非常昂贵的ww

Scinet Linea不再在www.obacs.com上提供。 现在它来自Scinet Math,它具有更多function。 我一个月前为我的研究购买了一份副本。 我喜欢它,到目前为止。