четверг, 26 апреля 2018 г.

Улучшаем прокрутку

Помаленьку продолжаем подтягивать уровень поддержки Mac OS. На сей раз улучшаем прокрутку.

Первоначально Валентина не была оптимизирована к сенсорным мышкам от Apple. Догадатся как она себя поведет имея в руках только обычную мышку не реально. После того как я заполучил такую, стало возможно оптимизировать работу алгоритма. Если в случае с обычной мышкой прокрутка осуществляется с расчета угла поворота колещатка мышки, то здесь же все по другому. Кстати, теперешний алгоритм рассчитан на обычную мышку, если у вас она имеет повышенную точность возможна некорректная работа.

Сенсорная мышка имеет один приятный бонус - анимация. Также она позволяет очень точно и быстро прокрутить большие расстояния. Чего не так просто добится с обычной мышкой.

До сегодняшнего дня позиционирование с сенсорной мышкой было очень быстрым, любое маленькое движение и вы на другом конце сцены. :) Первой трудностей для того чтобы исправить это была чувствительность. Она уменьшена вдвое. Дальше, красивая анимация прокрутки. Когда вы быстро раскручиваете и отводите палец прокрутка длится еще какое то время. Оказалось на Mac OS свою анимацию делать не нужно, достаточно использовать родную.

Если вы не счастливый обладатель мышки от Apple для вас тоже есть хорошие новости. Я попытался повторить анимацию прокрутки и в случаи использования обычной мышки. Чем быстрее вы прокручиваете колещатко, тем больше становится "долг" и тем быстрее начинает происходить прокрутка. Таким образом происходит разгон. Я считаю такой подход оправданным. Очень часто приходится работать при больших масштабах. Медленная построчная прокрутка будет занимать слишком много времени и будет вынуждать прибегать к масштабированию.

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

Комментариев нет:

Отправить комментарий