Существует ли стандартный C++, эквивалентный из C# Vector3?

Просто удивление, если C++ имеет стандартный эквивалент Vector2/3/4 (структуры я думаю?) в C#?

Править: Для разъяснения XNA C# Vector2/3/4 "структуры" (я не совсем уверен, что они) в основном содержат 2, 3, или 4 значения плавающих как структура в C++, определенном как:

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

Я в основном использовал просто, что код в C++, но я надеялся на стандартную альтернативу и не мог найти ту.

8
задан Agnel Kurian 10 August 2010 в 16:16
поделиться

6 ответов

Ничего стандартного, о котором я знаю, но вот некоторый код для начала

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

Если вы используете C ++ / CLI и ориентированный на Windows и .NET, вы можете использовать Vector2 и т. Д.

3
ответ дан 5 December 2019 в 15:17
поделиться

Структура Vector3 в C # взята из XNA, а не из библиотек базовых классов.

Эквивалентом C ++ было бы использование XMFLOAT3 .

6
ответ дан 5 December 2019 в 15:17
поделиться

Хотя в стандартном C ++ нет эквивалента Vector3, существует несколько библиотек линейной алгебры, в которых он есть. Некоторые из них очень маленькие и быстрые:

2
ответ дан 5 December 2019 в 15:17
поделиться

valarray > во многих случаях может использоваться как Vector2 . Для Vector3 / 4 я не знаю стандартного эквивалента.

0
ответ дан 5 December 2019 в 15:17
поделиться

Существует также несколько библиотек 3D-графики C ++, подобных XNA, например Ogre3D , Irrlicht и другие. Это может быть немного излишним, если вам нужна только структура Vector3.

0
ответ дан 5 December 2019 в 15:17
поделиться

Я не верю, что в C ++ есть какие-либо "консервированные" объекты, которые эквивалентны. Вектор STL - это не одно и то же. По сути, это динамический массив для хранения любых типов значений, тогда как вектор, на который вы ссылаетесь, является классом с добавленными функциями члена, обычно используемыми в графических приложениях XNA (по крайней мере, по моему опыту). Вы понимаете, что Vector2 / 3/4 - это структуры данных. Вы можете очень легко сохранить значения компонентов W, X, Y, Z в своей собственной структуре, но добавленные функции-члены, предоставленные с объектом Vector2 / 3/4, должны быть добавлены вами.

0
ответ дан 5 December 2019 в 15:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: