2016-05-19 5 views
0

У меня проблема. Я пытаюсь сортировать.Преобразование из системы координат реального мира в другую

Итак, в основном у меня есть система координат, где + x = перемещение на восток, + y вверх, а + z - на север. Фактически я взял Lat/Long и проецировал его на OSGB.

У меня есть список точек в этой системе координат, но когда я их визуализирую, они перевернуты на одну ось. Ось Z (север), поэтому мой список точек выглядит некорректным. Это связано с тем, что API-интерфейс рендеринга имеет ось + z работает другим способом.

Я думал, что мое решение этого может быть, все мои объекты/3d модели/точки и т. Д., Нарисованные в моей системе координат «Реальный мир», затем в последний момент, прежде чем я отрисую, применим Масштабную матрицу (1, 1, -1) для каждой из мировых матриц, так что ось Z перевернута на все.

Так что, если мой реальный мир проецирует координату: 281852; 161,488; 655844 После применения моей матрицы «RealWorldToXNA» точка будет 281852; 161,488; -655844;

Затем я применил бы ту же самую вещь к своей камере, чтобы она отображалась с правильного положения.

Будет ли это работать, или я чего-то не хватает? В последнее время я много не делал 3D-математики и страдал от церебрального метеоризма. Часть моего мозга думает, что это сработает, но другая часть думает, что это не должно быть так просто.

+0

Кажется разумным для меня как способ преобразования, хотя XNA использует правильную математическую систему, но я думаю, вы можете быть использованы для работы в противостоящей системе из-за использования некоторых инструментов моделирования. – ManoDestra

+0

Попробуйте, посмотрите, работает ли он, скажите нам результаты – Monset

+0

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

ответ

0

FYI Я использовал решение в своем вопросе - просто протестировал его, и он действительно работал, как и ожидалось.