只是想知道C ++中C#是否有标准的Vector2 / 3/4(我认为的结构?)?
编辑:为了澄清一个XNA C#Vector2 / 3/4“结构”(我不完全确定它们是什么)基本上保存2,3或4个浮点值,就像C ++中的结构定义为:
struct Vector3
{
float x, y, z;
};
我基本上一直在使用C ++中的代码,但我希望有一个标准的替代方案,而且无法找到它。
答案 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)