Russian Qt Forum
Ноябрь 01, 2024, 07:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вывод векторной карты  (Прочитано 2689 раз)
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 ничего не выводится, т.к. идет сдвиг в другую сторону.

Подскажите пожалуйста, как преобразовать координаты и сохранить пропорции карты. Спасибо.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Июнь 23, 2015, 22:24 »

я бы вычислил отношение "ширина к высоте" и умножал на него m_topCoordScene и m_bottomCoordScene. Где там могут отрицательные числа вылезти?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.081 секунд. Запросов: 23.