Я пытаюсь создать рендеринг необработанных данных из файла Quake 3. .map с Java. Формат .map хранит информацию о кисти (форме) в виде серии плоскостей, но я хотел бы преобразовать их в точки формы (x, y, z). В этом отношении математика немного выше меня, так же как у кого-нибудь есть советы о том, как я могу это сделать? Я в порядке с использованием внешних библиотек, если это необходимо, но я предпочел бы использовать мой собственный код, если это возможно.Как найти точку пересечения трех плоскостей?
Некоторые данные, чтобы играть с:
Dimensions: 64*64*64
Position: All sides are equidistant from the origin (0,0,0)
Shape: Cube
(64 64 64) (64 -64 64) (-64 64 64)
(64 64 64) (-64 64 64) (64 64 -64)
(64 64 64) (64 64 -64) (64 -64 64)
(-64 -64 -64) (64 -64 -64) (-64 64 -64)
(-64 -64 -64) (-64 -64 64) (64 -64 -64)
(-64 -64 -64) (-64 64 -64) (-64 -64 64)
Edit:
Эти данные показывает куб, который имеет 6 сторон. Каждая из этих шести сторон может быть сохранена как плоскость, с тремя координатами, чтобы показать положение и ориентацию. Каждая строка из приведенных выше данных показывает одну плоскость, и все 6 рядов образуют 6 плоскостей, составляющих куб.
Это изображение помогает проиллюстрировать мою точку зрения: Three Points Defining a Plane
точек p1, p2, p3 и то, что я даю в строке, в приведенных выше данных.
Двигатель Quake 3 должен разобраться, какие части самолетов держать во время компиляции, но в данный момент меня это не интересует. Если вы хотите получить дополнительную информацию, не стесняйтесь спрашивать!
Не могли бы вы объяснить, как ваши данные представляют собой три плоскости, а не 18 векторов? –
Конечно. Я отредактировал свой вопрос. – Fiarr