我正在编写一个工具,用于处理一堆3D数据,处理旋转对象,翻译,缩放和所有好东西。有没有人知道一个好的图书馆已经做了一些常见的3D东西?
我目前对数据的可视化不感兴趣,并且主要对执行操作感兴趣。
我知道我现在需要的东西:
我能够找到Sharp3D库,但似乎它可以做我想要的但是很长时间没有更新。以前有人用过吗?还有其他(更好的)建议吗?
答案 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,它具有更多功能。我一个月前为我的研究购买了一份副本。我到目前为止都喜欢它。