Масштабирование с помощью колесика мышки, ? |
Здравствуйте, гость ( Вход | Регистрация )
Масштабирование с помощью колесика мышки, ? |
AD |
28.5.2008, 10:43
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
На данный момент масштабирование графика реализовано также, как и в книжке Саммерфилда и Бланшета. Смысл метода заключается в том, что сохраняется предыдущий масштаб и идет при прокрутке колесика мышки на него. Меня не устраивает такая интерпретация изменения масштаба, хочется сделать обычную!. То есть, чтобы масштаб изменялся гладко и правильно.
Помогите, пожалуйста! Подскажите, пожалуйста, методы решения данной проблемы. |
|
|
ViGOur |
28.5.2008, 15:04
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
|
|
|
AD |
28.5.2008, 15:32
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Не совсем понял, что есть (как работает) и что нужно. Необходимо, чтобы при прокручивании колесика мыши или нажатии на "+", "-", изображение увеличивалось или уменьшалось плавно. Ну например как в некоторых программах, как пример Google Earth (земля). В примере книги на "+", "-" сделано так, что запоминается какие масштабы уже были и осуществляется переход на один из предыдущих масштабов. Напомню, что можно еще масштабировать, выделяя область (эти масштабы и запоминаются). Смысл такой, хочу чтобы увеличить или уменьшить график можно было, просто покрутив колесико мыши. |
|
|
Litkevich Yuriy |
28.5.2008, 15:48
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
А в чем трудность, алгоритм вроде не сложный получается, ловить событие мыша, смотреть изменение перемещения колесика, добавлять это изменение к текущему масштабу. Скажи конкретнее что вызывает трудность.
|
|
|
AD |
29.5.2008, 14:25
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
А в чем трудность, алгоритм вроде не сложный получается, ловить событие мыша, смотреть изменение перемещения колесика, добавлять это изменение к текущему масштабу. Скажи конкретнее что вызывает трудность. Трудность в реализации. Не очень понимаю как сделать. Вот так оно сделано сейчас:
Что и где поменять? Сможете помочь? |
|
|
Litkevich Yuriy |
29.5.2008, 15:39
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
я бы так доработал:
подобное изменение для уменьшения масштаба, правда надо проверять, чтобы curZoom не перевернулся через себя. Ну и в обработчике событий вызывать эти функции так:
|
|
|
AD |
4.6.2008, 10:31
Сообщение
#7
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
я бы так доработал:
подобное изменение для уменьшения масштаба, правда надо проверять, чтобы curZoom не перевернулся через себя. Ну и в обработчике событий вызывать эти функции так:
Не понял отличия от моего алгоритма. Я не знаю, как сделать такой алгоритм изменения масштаба, в котором при прокручивании мыши изменения масштаба идет плавное! Такого рода изменения масштаба можно увидеть в Google Earth. Кто может помочь? |
|
|
Litkevich Yuriy |
4.6.2008, 10:37
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
AD |
4.6.2008, 10:50
Сообщение
#9
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Не понял отличия от моего алгоритма В этом curZoom+=delta изменение масштаба происходит на величину смещения колесика мышки, а у тебя на еденицу, ведь человек может крутануть резко тогда и дельта будет большая, а не еденица. Тот алгоритм, который я привел не подходит для моей задачи. В данном случае, он всего-лишь возвращает к тому масштабу, который был ранее и все! Мне необходимо, чтобы он именно масштабировал, а не запоминал предыдущие масштабы и возвращал к ним. P.S. Масштабировать с помощью прямоугольной области удается, как ни странно! |
|
|
Litkevich Yuriy |
4.6.2008, 10:58
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
а в приведенном тобой коде вообще нет нистрочки о применении переменной curZoom, и запоминании масштаба, давай больше кода, где ты сам масштаб-то изменяешь
|
|
|
Текстовая версия | Сейчас: 30.11.2024, 3:05 |