Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: once_again_abc от Сентябрь 06, 2011, 10:15



Название: Как делают зум?
Отправлено: once_again_abc от Сентябрь 06, 2011, 10:15
Очень простой и сложный вопрос. Я не спрашиваю о технических деталях. Меня интересуют принципы - что такое правильный зум? Как правильно изменять оси разметку оси координат? Как правильно выбирают "шаг" зума? Какими принципами руководствуются при реализации зума?
Никогда такого не делал, сижу голову ломаю =)
Смотрел пример из всем известной книги Саммерфилда, но что-то мне этот метод не нравится...


Название: Re: Как делают зум?
Отправлено: kambala от Сентябрь 06, 2011, 10:28
например QGraphicsView::scale(). или что конкретно надо зуммировать? картинку?


Название: Re: Как делают зум?
Отправлено: Странник от Сентябрь 06, 2011, 10:31
не бывает зума правильного и неправильного - бывает удобный и неудобный. а здесь уже все определяется спецификой задачи и личными предпочтениями пользователей.


Название: Re: Как делают зум?
Отправлено: once_again_abc от Сентябрь 06, 2011, 10:44
объясните пожалуйста для начала как правильно "зумить" значения координатных осей.
например по оси Х у нас есть изначально следующие значения: 0.5 0.6 0.7 0.8 0.9. 1.1 1.2

вот когда говорят об увеличении (не масштабировании!), как правильно "увеличить" шкалу оси Х, чтобы оставаться в указанном формате значений и с максимальным числом отметок на оси?

ПС. kambala, мне нужно понять как делается зум руками, без помощи классов Qt и сторонних библиотек.


Название: Re: Как делают зум?
Отправлено: kambala от Сентябрь 06, 2011, 11:33
коэффициент разбиения интервала (шаг) меняется при зуме - в соответствии с этим и перерисовывать оси и графики.


Название: Re: Как делают зум?
Отправлено: once_again_abc от Сентябрь 06, 2011, 15:44
подскажите хороший алгоритм зума. алгоритм Хекбертса (nice numbers) буксует на определенных диапазонах.
чтобы не зарываться в математику, как можно упростить задачу и сделать зум как можно более глубоким?