Скроллбар с линзой
От: Кодт Россия  
Дата: 12.10.05 11:58
Оценка: 33 (4) +3
Пришла в голову такая идея: скроллбар с линзой и с прогрессивной характеристикой.

Вокруг текущей позиции есть область увеличения, перемещение и клики мыши в её пределах вызывает более точное позиционирование.
Если мышь отвести за пределы линзы, то через некоторое время линза переместится под мышь.

Почему и для чего?

Во-первых, меня достало, что ворд и акробат стремительно прыгают по страницам.
Например, если в документе 1000 страниц, а высота вертикального скроллбара 500 пикселов, то при всём желании я не смогу попасть на нечётную страницу с первой попытки: субпиксельное наведение мыши невозможно.

В то же время, перелистывание физических толстых книг не затрудняет:
— мгновенно наугад открываю (примерно по толщине) — это как бы клик мышкой по скроллбару
— быстро перелистываю стопку соседних страниц — это как бы тяну с большой скоростью
— затем медленно и вдумчиво перелистываю постранично — это как бы тяну или кликаю в области линзы.

Линзу на скроллбаре (или на трекере — в общем-то, не принципиально) можно отображать
— во-первых, сменой шага засечек
— во-вторых, утолщением полоски
— в-третьих, светотенью
Вот примерно так (очень грубо, извините — не дизайнер).


Сразу же возник вопрос о математической стороне этого явления. Нужно отобразить пикселы на логические координаты и обратно.
Это некая кусочно-линейная функция или кусочный сплайн (возможно, с вертикальными участками, т.е. часть логических координат окажется в слепых зонах под линзой).
Переместим мышь от точки фокуса линзы в сторону. Было бы неплохо, чтобы после того, как линза переедет вслед за мышью, логическая координата под мышью осталась неизменной.
Подвигав мышь туда-сюда, мы можем замести семейством функций весь квадрат (диапазон_логических_координат)x(диапазон_пикселов). А вот этого не хочется.

Поэтому на повестке 4 пункта
— полезность
— юзабельность
— дизайн
— математика
Перекуём баги на фичи!
Re: Скроллбар с линзой
От: Зверёк Харьковский  
Дата: 12.10.05 13:16
Оценка:
Идея интересная и, на мой вкус, правильная (но не очень новая). Если я ошибаюсь, называется такая штука "рыбий глаз". К сожалению, сходу не ткну пальцем, где уже реализовано, но вроде как на Маке должны быть такие штуки.

Лично я вообще скроллбар (традиционного вида) считаю штукой не менее (точнее — существенно более) вредной, нежели TreeView
Автор: Зверёк Харьковский
Дата: 06.04.05
и активно собираю идеи на тему, чем его заменять. Сколлбар-"рыбий глаз" — достаточно интересная модификация (хотя на мой вкус — недостаточно радикальная ).

Ну а по поводу математики — это, имхо, McSeem2 должен быть в курсе
FAQ — це мiй ай-кью!
Re: Скроллбар с линзой
От: CiViLiS Россия  
Дата: 12.10.05 13:23
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Поэтому на повестке 4 пункта

К>- полезность
К>- юзабельность
К>- дизайн
К>- математика
И еще один пункт, чтобы треугольнички для плавного перемещения находились вместе причем оба вверху и оба внизу, ну и настраивалось бы.
... << RSDN@Home 1.2.0 alpha rev. 605>>
"Бог не терпит голой сингулярности" -- Роджер Пенроуз
Re: Скроллбар с линзой
От: c-smile Канада http://terrainformatica.com
Дата: 12.10.05 16:43
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Пришла в голову такая идея: скроллбар с линзой и с прогрессивной характеристикой.


Посмотри в сторону Picassa и EverNote. Там прогрессивные эти самые — не знаю как сие явление
назвать. (EverNote internal name — "Моталка")
Re: Скроллбар с линзой
От: GlebZ Россия  
Дата: 12.10.05 18:09
Оценка: 1 (1)
Здравствуйте, Кодт, Вы писали:

К>Поэтому на повестке 4 пункта

К>- полезность
К>- юзабельность
К>- дизайн
К>- математика
Что-то знакомое.здесь
Автор: McSeem2
Дата: 30.09.05


С уважением, Gleb.
Re[2]: Скроллбар с линзой
От: McSeem2 США http://www.antigrain.com
Дата: 12.10.05 23:36
Оценка: 15 (1)
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Ну а по поводу математики — это, имхо, McSeem2 должен быть в курсе


Это не такой простой вопрос. Проекция, эмулирующая оптическую линзу является практически бесполезной по той простой причине, что сама линза закрывает часть изображения — мы не видим, что находится между областью увеличения и самой линзой — есть некая слепая зона в виде кольца.
Я использую очень простой метод, позволяющий не терять "визуальный контакт". В некой окружности изображение просто масштабируется относительно центра. Вне окружности — раздвигается:


Математика тривиальна:
http://antigrain.com/__code/src/agg_trans_warp_magnifier.cpp.html

Поиграться можно здесь:
http://antigrain.com/demo/lion_lens.zip
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[3]: Скроллбар с линзой
От: Зверёк Харьковский  
Дата: 13.10.05 08:57
Оценка:
Здравствуйте, McSeem2, Вы писали:

ЗХ>>Ну а по поводу математики — это, имхо, McSeem2 должен быть в курсе


MS>Это не такой простой вопрос. Проекция, эмулирующая оптическую линзу является практически бесполезной по той простой причине, что сама линза закрывает часть изображения — мы не видим, что находится между областью увеличения и самой линзой — есть некая слепая зона в виде кольца.

MS>Я использую очень простой метод, позволяющий не терять "визуальный контакт". В некой окружности изображение просто масштабируется относительно центра. Вне окружности — раздвигается.

Ну да. Именно это "рыбьим глазом" и называется.
FAQ — це мiй ай-кью!
Re[2]: Скроллбар с линзой
От: sluge  
Дата: 13.10.05 13:20
Оценка: -1
по моему ты не совсем прав это ж не замена стандартному скролбару а тока некоторое его улучшение на случай большого объема скролинных данных. а вообще по моему такие контролы как стколбар уже настолько укоренились в созоании, что узеры врятли примут что-то иное
Re[4]: Скроллбар с линзой
От: McSeem2 США http://www.antigrain.com
Дата: 13.10.05 14:08
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Ну да. Именно это "рыбьим глазом" и называется.


Нет, это нечто другое: http://astronomy.swin.edu.au/~pbourke/projection/fisheye/index.html
А то, что у меня — это вообще нечто странное. Оно как бы раздвигает все окружающее пространство — и от этого все кривеет. Главный toolbar в MacOS X работает так же.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[3]: Скроллбар с линзой
От: slavdon  
Дата: 13.10.05 14:09
Оценка: +1 :))) :)
Здравствуйте, sluge, Вы писали:

S>по моему ты не совсем прав это ж не замена стандартному скролбару а тока некоторое его улучшение на случай большого объема скролинных данных. а вообще по моему такие контролы как стколбар уже настолько укоренились в созоании, что узеры врятли примут что-то иное


Не говори речей призывающих отказаться от изменения привычного, ибо карающая длань Зверька настигнет тебя неотвратимо.

Когда ты перестаешь изменять мир — он начинает изменять тебя! (Мао Цзе Дун)

Duran Duran — Come Undone {?}
Re[3]: Скроллбар с линзой
От: Кодт Россия  
Дата: 13.10.05 17:07
Оценка:
Здравствуйте, McSeem2, Вы писали:

ЗХ>>Ну а по поводу математики — это, имхо, McSeem2 должен быть в курсе


MS>Это не такой простой вопрос. Проекция, эмулирующая оптическую линзу является практически бесполезной по той простой причине, что сама линза закрывает часть изображения — мы не видим, что находится между областью увеличения и самой линзой — есть некая слепая зона в виде кольца.

MS>Я использую очень простой метод, позволяющий не терять "визуальный контакт". В некой окружности изображение просто масштабируется относительно центра. Вне окружности — раздвигается:

Твоя линейка всего лишь увеличивает изображение, но не влияет на точность позиционирования.
Этак меня и ворд устраивал бы (он выдаёт подсказку с номером текущей страницы), беда в том, что если пикселов меньше, чем логических позиций, то такой способ не позволит прицелиться.

MS>Математика тривиальна:


Не... как линзу нарисовать — это вопрос простой. Я же имел в виду следующее.
Есть пространство экранных координат (x) и логических координат (y).
Линейка с линзой (фокус которой в точке x0, ещё какие-то параметры p0) определяется как функция
ruler: (xf,p) -> x->y

Когда мы отводим мышку в точку x1, выбирается точка y1 = ruler(x0,p0)(x1) = ruler1(x1,p1).
(Обрати внимание: в этом отличие моей задумки от твоей или MacOS'овской менюшки).

Сразу же:
— Лепо ли, если функция окажется не сюръективна, то есть, что не все точки y достижимы при данных параметрах?
В принципе, лепо: после того, как фокус уплывёт за мышкой, параметры изменятся и точки станут доступны.

— Фокус перемещается за мышкой. Новая линейка ruler(x1,p1) = ruler1.
Было бы полезно, чтобы ruler1(x1) == y1, то есть, если мы более не двигаем мышку, линейка не совершает скролл. (1)

Так вот, получается, что
ruler(x0,p0)(x1) = ruler(x1,p1)(x1);
ruler(x1,p1)(x1) = ruler(x2,p2)(x2);
......
и, если ruler не линейная, то получается, что семейство функций заметает неслабую часть квадрата X*Y.
Если p0==p1==..., то есть ruler параметризован только фокусом, то условие (1) недостижимо в принципе.
А некоторые наивные способы — приводят к тому, что каждое движение линзы за мышкой всё более и более удаляет функцию от диагонали. Это тоже неправильно.
Может быть, после увода мышки с контрола функция может релаксировать, при этом xf смещается так, чтобы текущая логическая позиция y оставалась в фокусе, а параметр был "исходным": ? xf : ruler(xf,p0)(xf) = y
Но такое движение тоже может удивить пользователя.

В общем, не знаю...
Перекуём баги на фичи!
Re: Скроллбар с линзой
От: Hydrogen  
Дата: 15.10.05 16:03
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Пришла в голову такая идея: скроллбар с линзой и с прогрессивной характеристикой.


К>Вокруг текущей позиции есть область увеличения, перемещение и клики мыши в её пределах вызывает более точное позиционирование.

К>Если мышь отвести за пределы линзы, то через некоторое время линза переместится под мышь.

К>Почему и для чего?


К>Во-первых, меня достало, что ворд и акробат стремительно прыгают по страницам.

К>Например, если в документе 1000 страниц, а высота вертикального скроллбара 500 пикселов, то при всём желании я не смогу попасть на нечётную страницу с первой попытки: субпиксельное наведение мыши невозможно.
А что если сделать вплотную стоящие два скроллбара, один грубый, другой точный?
... << RSDN@Home 1.1.3 stable >>
Re[2]: Скроллбар с линзой
От: Кодт Россия  
Дата: 16.10.05 19:42
Оценка:
Здравствуйте, Hydrogen, Вы писали:

К>>Во-первых, меня достало, что ворд и акробат стремительно прыгают по страницам.

К>>Например, если в документе 1000 страниц, а высота вертикального скроллбара 500 пикселов, то при всём желании я не смогу попасть на нечётную страницу с первой попытки: субпиксельное наведение мыши невозможно.

H>А что если сделать вплотную стоящие два скроллбара, один грубый, другой точный?


Да, я уже подумал: чем дальше от одного края к другому, тем точнее прицел.
То есть, задвинув мышку в позицию (x0,y), которой соответствует логическая позиция p0 (будем полагать, что скроллбар горизонтальный), её дальнейшее перетягивание в позицию (x0+dx,y) истолкуем как p0+dx*m(y) где m — масштабный коэффициент, зависящий от "глубины".
Перекуём баги на фичи!
Re[3]: Скроллбар с линзой
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 17.10.05 07:34
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Да, я уже подумал: чем дальше от одного края к другому, тем точнее прицел.


Так же подумал, но потом вспомнил, что есть же фигня ... в общем, когда мышкой в ворде колесико кликаешь, включается режим, и с его помошью уже можно точнее передвигаться.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Вселенная бесконечна как вширь, так и вглубь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.