我正在编写一个工具,将用于处理一堆 3D 数据,执行诸如旋转对象、平移、缩放等所有好东西。有谁知道有一个好的库已经可以实现一些常见的 3D 功能了吗?

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

我知道此时我需要的东西:

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

我能够找到 夏普3D 库,但它似乎可以做我想要的事情,但已经很长时间没有更新了。以前有人用过这个吗?还有其他(更好的)建议吗?

有帮助吗?

解决方案

微软Xna框架 (运送这个 XNA)可以完成这项工作。

XNA Framework Math 库具有多种基本几何类型,可用于操作 2D 或 3D 空间中的对象。该库中的原始对象表示表示几何对象或对该对象的操作所需的数据。每个几何类型都有许多该类型支持的数学运算。

向量

XNA 框架提供了 Vector2、Vector3 和 Vector4 类来表示和操作向量。矢量通常用于表示方向和大小。然而,在 XNA 框架中,它也可能用于存储坐标或具有相同存储要求的其他数据类型。

每个向量类都有执行标准向量运算的方法,例如:

  • 点积
  • 叉积
  • 正常化
  • 转型
  • 线性、三次、Catmull-Rom 或 Hermite 样条插值。

矩阵

XNA 框架提供了用于几何变换的 Matrix 类。Matrix 类使用行主序来寻址矩阵,这意味着在描述二维矩阵的元素时,行先于列指定。Matrix 类提供了用于执行标准矩阵运算(例如计算矩阵的行列矩阵或逆矩阵)的方法,以及用于创建缩放、平移和旋转矩阵的辅助方法。

四元数

XNA 框架提供了四元数结构来表示和计算围绕指定角度的向量的有效旋转。

其他提示

我以前从未使用过它,但我刚刚使用了 Sharp3D,它似乎运行良好(除了一些有关强名称的问题需要几分钟才能解决)。我的印象是,它的重量并不轻,但也远未达到重的程度。

至于最近没有更新,数学并没有改变什么的......

尝试 Scinet Linea www.obacs.com. 。它不是一个免费的库,但与替代方案相比,它并不是很昂贵 ww

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top