C#中的3D数学好库?

时间:2009-03-03 17:08:01

标签: c# math 3d

我正在编写一个工具,用于处理一堆3D数据,处理旋转对象,翻译,缩放和所有好东西。有没有人知道一个好的图书馆已经做了一些常见的3D东西?

我目前对数据的可视化不感兴趣,并且主要对执行操作感兴趣。

我知道我现在需要的东西:

  • 2D / 3D / 4D向量
    • (加,减,点积,叉积等......)
  • 使用矩阵进行旋转/平移/缩放
  • 四元数

我能够找到Sharp3D库,但似乎它可以做我想要的但是很长时间没有更新。以前有人用过吗?还有其他(更好的)建议吗?

4 个答案:

答案 0 :(得分:12)

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结构来表示和计算围绕指定角度的向量的有效旋转。

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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