2011-04-20 71 views
5

在现有的项目中,我看到一个类Vector_3d,模板化,具有矢量(代数意义上)的常用操作。在分析后,我注意到在这堂课中花费了大量的时间。C++中是否有一个标准的3d矢量类

我想知道是否有这样一个基本概念的知名实现,如C++中的3d矢量。事实上,使用矢量的一个很好的实现可能会更容易,而不是试图优化这个矢量。

编辑: 这是在一些对象的几何表示的上下文中。但它独立于任何可视化。我会看看是否有避免经常调用各种方法的方法。我会看看提议的软件包。

+0

你参与了什么样的项目?如果它与3D渲染相关,那么使用完善的实时渲染包可能会很幸运。 – Bart 2011-04-20 12:31:55

+0

可能出现这种情况,您无法避免这一事实。也许你应该将关键字“inline”添加到其中一个常用功能中。例如:光线追踪器经常使用许多像cross-product一样的函数,这是无法避免的 – tgmath 2011-04-20 12:36:07

回答

6

在3D矢量类中没有太多改进空间(基本上,点/交叉产品相当容易,矩阵乘法也是如此)。 如果在这堂课上花费了很多时间,那么使用它的代码可能有缺陷。你(通过矩阵链就像乘法矩阵,那么所有矢量将所得的矩阵,而不是所有向量)

我知道,核对

  • 副本VS引用
  • 错协会有在Qt中是QVector3D,这可能会帮助你(顺便说一下,他们也获得了Vector 2D和4D以及常见的3D几何操作)

1

我对partial Eigen的看法。再加上它只有标题,并且具有内置的矢量化支持。