Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Larry от Июнь 18, 2015, 13:10



Название: Вывод векторной карты
Отправлено: Larry от Июнь 18, 2015, 13:10
Добрый день.
Есть необходимость вывода векторной карты средствами openGL. Вывод получается, все работает, но не могу решить проблемы с сохранением пропорции изображения при растягивании окна...Подскажите как правильно сделать...
На изображении видно как изменяются размеры изображения карты.
Код:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();

glOrtho(m_leftCoordScene, m_rightCoordScene, m_topCoordScene, m_bottomCoordScene, -1.0, 1.0);
   
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

Вот реальные координаты крайних точек по х и у:
m_leftCoordScene = 30.8086
m_rightCoordScene = 30.8425
m_topCoordScene = 50.5535
m_bottomCoordScene = 50.5727

пробовал примеры через расчет ratio, но ничего не вышло, т.к. размер изменятся от отрицательного числа к положительному, а у меня только положительные величины и при умножении/делении на ratio ничего не выводится, т.к. идет сдвиг в другую сторону.

Подскажите пожалуйста, как преобразовать координаты и сохранить пропорции карты. Спасибо.


Название: Re: Вывод векторной карты
Отправлено: Racheengel от Июнь 23, 2015, 22:24
я бы вычислил отношение "ширина к высоте" и умножал на него m_topCoordScene и m_bottomCoordScene. Где там могут отрицательные числа вылезти?