четверг, 16 декабря 2010 г.

Пластический способ редактирования фигур

К проектированию взаимодействия с пользователем разработчик может подойти двумя путями:

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

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

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

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


При выборе первого подхода основная задача проектировщика заключается в стирании различий между разными устройствами ввода. Например, ввод от мультитач экрана трансформируется во ввод от мыши. Разработчик использует готовую схему взаимодействия с пользователем и подстраивается под нее.

При выборе второго подхода главная задача проектировщика заключается в разработке новых схем человеко-машинного взаимодействия. В этом случае разработчик по-максимуму использует особенности конкретного устройства ввода.

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

1) Перейти от описания готовых схем (см. первый подход) к описанию функций. Иными словами, нам нужно сформулировать цели пользователя, которые достигаются при помощи той или иной схемы.

2) Поискать другие области человеческой деятельности, где данные цели достигаются другими путями, с помощью других схем взаимодействия.

Такие области автор ТРИЗ Г.С. Альтшуллер называл ведущими.

Важно: Искать не готовые решения, а модели решений. Бездумный механический перенос вряд ли приведет к успеху.

Рассмотрим данный алгоритм на примере.

Современные графические редакторы предоставляют пользователю разнообразные инструменты для создания и редактирования фигур. Один из них - Shape. Это мощный инструмент для изменения формы фигуры.

Механизм использования инструмента Shape неинтуитивен. Основная проблема заключается в том, что пользователь не может изменить форму фигуры сразу так, как ему надо. Вместо этого он должен выполнить ряд подготовительных действий, как то:

1.     Преобразовать фигуру в кривые.
2.     Разбить кривую на части.
3.     Изменить форму перехода между кривыми.
4.     Изменить кривизну контура при помощи управляющих точек.
5.     И т.д.

Неудобство использования инструмента Shape объясняется тем, что он был спроектирован под мышь. Мышь предоставляет достаточно ограниченные возможности для передачи управляющих воздействий от пользователя к программе. При использовании другого, более совершенного, нежели мышь, устройства ввода механизм редактирования формы фигуры можно реализовать иначе.

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

1) Составим список задач, которые решает пользователь при редактировании формы фигуры.

Это не так уж трудно:

1.     Создание выпуклого криволинейного участка.
2.     Создание вогнутого криволинейного участка.
3.     Увеличение кривизны участка.
4.     Уменьшение кривизны участка.
5.     Оттягивание отдельного участка от остального контура.
6.     Втягивание вытянутого участка внутрь контура.

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

Такую область найти нетрудно. Первое, что приходит в голову - это лепка фигур из пластилина.

В процессе лепки человек выполняет такие операции:

1.     Сминание (комкание).
2.     Раскатывание прямыми или круговыми движениями.
3.     Вытягивание (оттягивание).
4.     Загибание.
5.     Скручивание.
6.     Придавливание.
7.     Выдавливание.
8.     Разглаживание.
9.     Заострение.
10. Сплющивание.
11. Защипывание.

Более подробно смотрите здесь.

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

1.     Преобразование прямолинейного сегмента контура в кривую.
2.     Разбиение криволинейного сегмента на части.
3.     Изменение кривизны сегмента.
4.     И т.д.

Различие заключается только в том, что большинство из этих операций будет выполняться автоматически.