C#的Vector3是否有标准的C ++等价物?

时间:2010-08-10 15:42:54

标签: c# c++ xna

只是想知道C ++中C#是否有标准的Vector2 / 3/4(我认为的结构?)?

编辑:为了澄清一个XNA C#Vector2 / 3/4“结构”(我不完全确定它们是什么)基本上保存2,3或4个浮点值,就像C ++中的结构定义为:

struct Vector3
{
    float x, y, z;
};

我基本上一直在使用C ++中的代码,但我希望有一个标准的替代方案,而且无法找到它。

6 个答案:

答案 0 :(得分:6)

C#中的Vector3 struct来自XNA,而不是基类库。

C ++中的平等就是使用XMFLOAT3

答案 1 :(得分:3)

我所知道的没有标准,但这里有一些代码可以帮助你入门

http://www.flipcode.com/archives/Faster_Vector_Math_Using_Templates.shtml

如果您使用的是C ++ / CLI并且目标是Windows和.NET,则可以使用Vector2等

答案 2 :(得分:2)

虽然在标准 C ++中没有与Vector3相同的功能,但有几个线性代数库只有一个。一些非常小而且快:

答案 3 :(得分:0)

在许多情况下,valarray<complex<T>>可以像Vector2一样使用。对于Vector3/4,我知道没有标准的等价物。

答案 4 :(得分:0)

我不相信C ++中有任何“罐装”对象是等价的。 STL vector不是一回事。这本质上是一个用于存储任何值类型的动态数组,而您引用的向量是具有添加成员功能的类,通常在XNA图形应用程序中使用(至少在我的经验中)。您认识到Vector2 / 3/4是数据结构这一事实。您可以非常轻松地将W,X,Y,Z组件的值存储在您自己的结构中,但是您需要添加随Vector2 / 3/4对象提供的添加的成员函数。

答案 5 :(得分:0)

还有一些类似于XNA的C ++ 3D图形库,例如Ogre3DIrrlicht等。如果你只需要Vector3结构,可能会有点过分。