Хорошая библиотека для 3D-математики на C #?[закрыто]

StackOverflow https://stackoverflow.com/questions/607254

  •  03-07-2019
  •  | 
  •  

Вопрос

Я пишу инструмент, который будет использоваться для обработки большого количества 3D-данных, выполнения таких действий, как вращение объектов, перевод, масштабирование и все такое прочее.Кто-нибудь знает о хорошей библиотеке, которая уже выполняет некоторые из этих распространенных 3D-задач?

В данный момент я не заинтересован в визуализации данных, а в первую очередь заинтересован в выполнении операций.

Вещи, которые, я знаю, мне понадобятся на данном этапе:

  • Векторы 2D / 3D /4D
    • (сложение, вычитание, точечное произведение, перекрестное произведение и т.д.)
  • Вращение /Перемещение / Масштабирование с использованием матриц
  • Кватернионы

Мне удалось найти Острый 3D библиотека, но похоже, что она может делать то, что я хочу, но давно не обновлялась.Кто-нибудь пользовался этим раньше?Есть какие-нибудь другие (лучшие) предложения?

Это было полезно?

Решение

Microsoft.Xna.Framework (отправьте этот XNA), который мог бы выполнить эту работу.

Математическая библиотека XNA Framework содержит несколько базовых геометрических типов, которые можно использовать для манипулирования объектами в 2D или 3D пространстве.Примитивные объекты в этой библиотеке представляют данные, необходимые для представления геометрического объекта или операции над этим объектом.Каждый геометрический тип имеет ряд математических операций, которые поддерживаются для данного типа.

Вектор

Платформа XNA предоставляет классы Vector2, Vector3 и Vector4 для представления векторов и манипулирования ими.Вектор обычно используется для представления направления и величины.Однако в XNA Framework он также может использоваться для хранения координат или какого-либо другого типа данных с теми же требованиями к хранению.

Каждый векторный класс имеет методы для выполнения стандартных векторных операций, таких как:

  • Точечный продукт
  • Перекрестный продукт
  • Нормализация
  • Трансформация
  • Линейная, кубическая интерполяция, интерполяция сплайнами Катмулла-Рома или Эрмита.

Матрицы

Платформа XNA предоставляет класс Matrix для преобразования геометрии.Класс Matrix использует порядок следования строк для обращения к матрицам, что означает, что строка указывается перед столбцом при описании элемента двумерной матрицы.Класс Matrix предоставляет методы для выполнения стандартных матричных операций, таких как вычисление определенной или обратной матрицы, в дополнение к вспомогательным методам для создания матриц масштаба, перемещения и поворота.

Кватернионы

Платформа XNA предоставляет структуру кватернионов для представления и вычисления эффективного поворота вокруг вектора на заданный угол.

Другие советы

Я никогда не использовал его раньше, но я просто взял Sharp3D, и, кажется, он работает хорошо (если не считать некоторой проблемы со строгими именами, на решение которой ушло несколько минут).У меня сложилось впечатление, что он не совсем легкий, но и далеко не тяжелый.

Что касается отсутствия последних обновлений, то это не похоже на то, что математика меняется или что-то в этом роде...

Попробуйте Scinet Linea в www.obacs.com.Это не бесплатная библиотека, но по сравнению с альтернативами она не очень дорогая.

Scinet Linea больше не доступен в www.obacs.com.Теперь это входит в Scinet Math, который обладает гораздо большими возможностями.Я купил копию для своего исследования месяц назад.Пока мне это нравится.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top