2011-04-20 59 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的看法。再加上它只有標題,並且具有內置的矢量化支持。