Обнаружение границы

Я работаю над проектом в OpenGL 2.0. Я загружаю объекты из файла, который содержит информацию об именах объектов, их положении, масштабе и повороте.

Я получил всю эту информацию в коде, теперь я хочу вычислить границы всех загруженных объектов, чтобы я мог начать работать над столкновением.

Проект — это значение масштаба, равное 0,1, т. Е. Оно умножается на вектор измерения, чтобы получить фактическое измерение границы.

например, объект 1: масштаб х: -0,1, у: 0,05, з: 0,1
Объект 2: масштаб х: 0,1, у: 0,1, з: 0,1

Объект 1: позиция x: 5, y: 21.7269, z: 0
Объект 2: позиция x -58.0646 y: -6.68359, z: 0

Объект 1: гниль x: 0, y: 0, z: 0
Объект 2: гниль x: 0, y: 90, z: 0

Мой вопрос заключается в том, что я хочу рассчитать размеры, то есть границу каждого объекта, как можно достичь этой цели?

0

Решение

Зависит от того, что вы подразумеваете под «границей». Если вы имеете в виду AABB (ограничивающий прямоугольник), то для каждого отдельного объекта это просто вопрос

  1. найти все свои вершины
  2. умножение компонентов на шкалу
  3. преобразование с использованием вращения (либо с помощью матрицы вращения, либо с помощью стандартной тригонометрии)
  4. найти крайности на осях
  5. Перевод по позиционным векторам

Многие из них могут быть выполнены в другом порядке.

Возможно, вам лучше начать с хорошей теории. Обнаружение столкновений в реальном времени очень понятен, и всегда был одной из моих любимых книг по этому вопросу, и прекрасное место для любого человека, заинтересованного в начале.

Начинать с физики низших измерений также будет хорошей идеей, пока концепции не станут более прочными (т.е. не используйте измерение z).

1

Другие решения

Других решений пока нет …