繁体   English   中英

C++ 中是否有标准的 3d 矢量类

[英]Is there a standard 3d vector class in C++

在一个现有的项目中,我看到一个类 Vector_3d,模板化,具有向量的常用操作(在代数的意义上)。 在分析之后,我注意到大量时间都花在了这个类上。

我想知道在 C++ 中是否有像 3d 矢量这样的基本概念的众所周知的实现。 实际上,使用向量的良好实现而不是尝试优化向量可能更容易。

编辑:这是在某些对象的几何表示的上下文中。 但它独立于任何可视化。 我会看看是否有办法避免过于频繁地调用各种方法。 我将看看建议的软件包。

3d 向量类没有太大的改进空间(基本上,点/叉积相当容易,矩阵乘法也是如此)。 如果在该类上花费了太多时间,那么您使用它的代码可能存在缺陷。 你检查过吗

  • 复制与引用
  • 错误的关联(如乘矩阵然后所有向量乘以结果矩阵,而不是所有向量乘以矩阵链)

我知道 Qt 中有QVector3D ,这可能会对您有所帮助(顺便说一下,他们还为常见的 3D 几何操作提供了 Vector 2D 和 4D)

Dave Eberly 的http://www.geometrictools.com/是此类课程的绝佳资源。

我偏爱Eigen 此外,它仅包含标题并具有内置的矢量化支持。

Boost::QVM 也可以是一个选项: http : //boostorg.github.io/qvm/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM