Просмотр равносторонней карты - PullRequest
3 голосов
/ 16 марта 2012

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

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

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

Может кто-нибудь сказать мне, как решить эту проблему?Все, что мне нужно, - это ссылка на хороший документ или подсказка с чего начать.Заранее спасибо.

1 Ответ

2 голосов
/ 03 апреля 2012

Хорошо, никто не ответил, и я понял это. Есть два «практических» решения, первое - использование кватернионов. Вы можете определить трехмерный прямоугольник как вид, а затем повернуть его с помощью кватернионов. После этого вы можете прокрутить полученный прямоугольник и использовать обратные преобразования, чтобы получить координаты карты. Другое решение, которое кажется мне более быстрым, заключается в использовании матриц вращения Эйлера. Просто обратите внимание на использование ArcTan2 вместо функции ArcTan, потому что вам нужно покрытие 2 * PI. Это все, что я хотел!

...