Инструменты эти видать из обычного мира были позаимствованы. Вот есть доска:

С обычными инструментами как? Взял пилу — отпилил, взял дрель — просверлил, взял клей — приклеил, взял краску — покрасил. Это всё модальное до мозга костей. Пошел в сарай, вместо пилы взял дрель, приходишь — жопа, дрелью не отпилишь.
Если подумать, действия с доской состоят из двух частей. 1) выбираем место на деревяшке, 2) что-то с этим местом делаем. Действие зависит от инструмента.

А потом скомандовал: пили! И он отпилил.

Перенесёмся в Фотошоп.
Со всеми инструментами мы работаем одинаково: нажали левую кнопку мыши, поводили курсором (или не поводили, то есть поводили на 0 пикселей), отпустили. То есть для каждого действия есть координата нажатия, путь курсора и координата отпускания. Назовем эту штуку элементарным объектом.
Дальше просто. У элементарного объекта может быть множество состояний. Каждое состояние эквивалентно инструменту.
То есть когда мы рисуем — мы не говорим программе что это. Сначала нарисовали элементарный объект, мышку отпустили, потом говорим (хоткеем или в палитре состояний объекта тыкаем иконочку) в каком состоянии его показать.

В теории круто, на практике не будет работать. Во-первых, все привыкли к инструментам. От Фотошопа отвыкнуть еще можно, но от реального мира с молотком и пилой невозможно. Второе, и главное, нет обратной связи. Когда я рисую круг я хочу круг видеть, а не ебучую красную полоску.
Окей, добавляем этой системе то, чего все хотят. То есть перед началом рисования объекта я могу указать состояние. То есть если я выбрал состояние квадрат, то новый элементарный объект рисуется в этом состоянии.
Но это же, блин, режим опять получается?! Получается как бы да. Но этот режим перенесся на сам объект. Это как бы призма через которую мы смотрим на элементарный объект. И призмы можно менять в любой момент времени. То есть круг может стать квадратом или треугольником, треугольник можно уменьшить и снова превратить в квадрат.
Реализация
Смену состояния объекта нужно сделать удобной. Всё должно работать однообразно. Только через хоткеи. Надо к Фотошопу спец. клаву выпускать вроде лебедевского Аукса. Планшеты покупают же чтобы рисовать на компе, вот и для проф. использования Фотошопа тоже будет нужна такая. Или хорошая память, чтобы на обычной клаве хоткеи выучить.

Сценарий
Рассмотрим типичный сценарий: Ты хочешь нарисовать квадрат. Хуйнул U. Нарисовал.
Дальше нужно круг, но ты забыл, что у тебя квадрат. Начинаешь рисовать, видишь — жопа, квадрат вместо круга рисуется. Прямо не отпуская мышки хуйнул O (или какой там хоткей?), квадрат стал кругом, ты его дотянул куда нужно. Готово.
Или не так. Ты опять же круг стал рисовать, а у тебя квадрат. Ты испугался, мышку бросил. У тебя создался квадрать. Ты O нажал, квадрат кругом стал, ты его смасштабировал как нужно. Готово.
Дальше в круге надо дырку резинкой протереть. Начинаем тереть... Бля, круг рисуется. Давим E. Там где мы уже навазюкали мышкой стирается. А если B нажать, то это закрашивается кистью.
Дальше вы :)
P. S.
Я думал, думал, я всё понял. Это Пунтосвитчер для Фотошопа получился. Точная копия, только в пунто два состояния (две раскладки), а в Фотошопе их куча.
May 6 2011, 12:42:37 UTC 1 year ago
и всё кривось-накось
May 6 2011, 12:54:15 UTC 1 year ago
May 6 2011, 13:42:04 UTC 1 year ago
может я не настолько много пользуюсь фотошопом, но ваша проблема мне кажется неактуальной, ввиду крайне редкого возникновения ситуаций "ой, выбрал не тот инструмент"
1 year ago
May 6 2011, 13:13:19 UTC 1 year ago
May 6 2011, 13:42:45 UTC 1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
May 6 2011, 13:04:22 UTC 1 year ago
Отказавшись от панели ты вынудишь всех пользователей пользоваться справкой для заучивания сочетаний клавиш, что уменьшит аудиторию приложения в разы.
Если же прибегать к специализированным устройствам, то у крутых художников есть удобные для них наборы перьев, у каждого из которых — свои настройки инструментов, размеров кистей и т. п. Для них как раз ментальная модель полностью аналогична обычным инструментам.
Потом ты не избавился от модальности, на которую так грешил. Ну хорошо, есть возможность переключить неверно выбранный инструмент во время выполнения операции. В случае с векторными объектами это может помочь, но Фотошоп — программа растровой графики. Так что начав рисовать кистью, вместо стирания ластиком, всё равно придётся сделать отмену, так как ты не можешь контролировать непосредственный результат пока у тебя выбран не тот инструмент (разве что у тебя настройки кисти и ластика абсолютно идентичны и ты в голове проделываешь связь между тем, что нарисовано кистью и тем, что будет стёрто).
И всё же вернёмся к панели инструментов. Основная её цель — выбор инструмента для «вечных середняков». Так как ты предлагаешь реализовать его без панели инструментов и дополнительных устройств для экспертов?
May 6 2011, 13:18:32 UTC 1 year ago
May 6 2011, 15:17:11 UTC 1 year ago
May 6 2011, 15:13:10 UTC 1 year ago
Да пусть остаётся, сама палитра — это просто панелька с иконочками. С ней нет проблем. Проблема в модальности. Пусть будет и пусть середняки с её помощью учатся пользоваться программой. Там будет нарисована иконка состояния и хоткей, например.
>Потом ты не избавился от модальности, на которую так грешил.
Я еще обдумал и пришел к выводу, что то, что осталось это не модальность. Нет режима. Есть разные состояния от которых не возможно избавится по условиям задачи, мы же хотим разные объекты.
>В случае с векторными объектами это может помочь
Это хрень, какая разница как там реализовано внутри всё. В конце концов на выходе матрица пикселей.
---
Пиздеть то все могут. Как на счет того, чтобы дальше подумать? :)
May 6 2011, 16:45:53 UTC 1 year ago
Так, давай разберёмся из-за чего мы тут клавиши мнём. В своём посте ты сказал: «И фотошоп и все остальные программы с палитрами инструментов нихуя не хорошие и в них легко запутаться... Модальность всегда говно».
У меня эта фраза вызвала непонимание, так как модальность не всегда плоха, и если её умело использовать, то она может быть полезна (с учётом ограничений реального мира). Кроме того, панели инструментов вполне себе полезная и удобная идиома. Я решил разобраться что ты имеешь в виду, так как интересно, если эта идиома плоха, то, наверняка, ты знаешь что-то лучше.
Моё предположение ты подтвердил гордой фразой: «Мне не нужно видеть интерфейс с КПД 20%, чтобы понять, что интерфейс с КПД 10% хуёвый. Я и так вижу, что можно на 90% лучше».
Ну ок, значит ты в самом деле, видимо, знаешь как лучше.
Я всё это время говорил про палитру, выбор инструментов на ней и переключение между ними (или ты имеешь в виду другую модальность?). Тут ты говоришь: «Да пусть остаётся, сама палитра — это просто панелька с иконочками». Т. е. я уже не понял, где тут «на 90% лучше» о которых ты говорил.
> В конце концов на выходе матрица пикселей.
Разница тут большая. В векторных редакторах ты имеешь дело с набором геометрических объектов, заданных набором вершин. Поэтому легко поменять один объект на другой — просто задав эти вершины другому объекту. Да и то это верно только для простых объектов.
В растровых же редакторах, результат полностью зависит от формата кисти. Так что просто поменять ластик на кисть не получится. Точнее, получится, но это совершенно бессмысленная операция.
> Пиздеть то все могут.
А я пока и не «пиздел». :) Я как раз считаю, что модальность там уместна и панель инструментов в данном случае является более чем приемлемой идиомой. Со своими недоработками, но их уже каждый знает, кто хоть раз работал в фотошопе.
Короче, ты наехал на панели инструментов и модальность, с ними связанную, при этом сказал, что «видишь как сделать на 90% лучше». Вот мне и интересно, что ты такого видишь, чтобы порочить панели инструментов.
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
May 6 2011, 13:06:11 UTC 1 year ago
Там он node-based. То есть менять круг на квадрат можно в любой момент времени. Сделали 10 преобразований, захотели поменять форму на шестигранник - не вопрос! Вернулись, поменяли. При определенных условиях, операции, которые были проделаны с объектом после его создания будут применены к обновленной форме.
May 6 2011, 13:19:26 UTC 1 year ago
Нажали Tab - открылось контекстное меню. Дальше либо выбираем из него, что мы хотим, либо просто начинаем печатать первые буквы. Например "Poly..." и нам список сокращается до тех элементов, в которых есть "poly" в начале слова.
1 year ago
May 6 2011, 15:15:08 UTC 1 year ago
May 7 2011, 04:25:38 UTC 1 year ago
May 6 2011, 13:09:22 UTC 1 year ago
May 6 2011, 15:16:28 UTC 1 year ago
May 6 2011, 16:37:27 UTC 1 year ago
1 year ago
1 year ago
1 year ago
May 6 2011, 13:45:32 UTC 1 year ago
May 6 2011, 15:26:51 UTC 1 year ago
Где жопа, давай наберем конкретным примеров, мне интересно подумать будет.
May 6 2011, 15:52:25 UTC 1 year ago
1 year ago
May 6 2011, 15:56:30 UTC 1 year ago
Кстати говоря, в некоторой степени это реализовано в лайтруме, инструмент там есть такой который кисточка.
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
May 6 2011, 13:58:36 UTC 1 year ago
Это крайне универсальное средство. В старых версиях в фотошопе только им и можно было нарисовать ровный круг или квадрат/прямоугольник.
А что сейчас мы можем сделать при помощи выделения?
Действия не влияющие на документ:
- изменить его форму (новое выделение или Select - Smooth)
- изменить его размер
- изменить его положение
"Деструктивные" действия:
- залить его цветом/паттерном
- создать при помощи него маску
- использовать его для выравнивания других объектов/слоев
- редактировать текущий или любой другой выбранный слой в конкретной области
Порядком так действий для одного инструмента? :)
May 6 2011, 14:28:10 UTC 1 year ago
Поменять фон.
Сделать красиво.
Сделать дизайн.
Повернуть картинку, как трехмерную. Ну или объект.
May 6 2011, 15:03:52 UTC 1 year ago
Объекты в палитре таки слишком разные, чтобы все свелось к пунтосвитчеру, если про круг и квадрат можно придумать, то как быть с текстом, например? Плюс, как вы правильно заметили, хочется обратной связи во время рисования. Если подумать, то типичные инструменты — круг, квадрат, текст — это не действия даже, а вовсе объекты, а инструменты все-таки должны быть действиями. Поэтому мне кажется, что объекты не должны рисоваться инструментом, а должны существовать в виде некоторых заготовок (стандартные круг, квадрат, и т.д.) и по нажатию кнопки копия заготовки вставляется в документ, а дальше доводится до ума редактированием. Т.е. инструментом мы всегда редактируем, никогда не рисуем ничего с нуля.
В этом смысле в палитрах ничего страшного нет, пока на них не инструменты, а заготовки — они не создают модальность. Я так, например, в ИнДизайне интерфейсы проектирую — у меня библиотека элементов, я их таскаю с палитры в документ и подгоняю под нужный размер, меняю подписи и т.д. Прекрасная система. Опять же, в палитру можно будет добавлять своего — нужного размера квадраты, как-то специально стилизованные круги, надпись требуемой гарнитурой, размером и т.п.
Если подумать дальше, то инструменты все-таки нужны, чтобы а) выбирать объект(ы), и б) редактировать/дорисовывать кривые. Тут можно псевдорежим — по умолчанию выбирается, с Cmd включается режим рисования кривой.
Еще останутся палитры во всякими действиями, конечно — выравнивание там, пересечение какое-нибудь и т.п. Но инструментов, вот, двое будет, как мне видится.
May 6 2011, 15:34:36 UTC 1 year ago
Ну получится текстовый фрейм.
>Поэтому мне кажется, что объекты не должны рисоваться инструментом
Интересно, надо обдумать.
>Еще останутся палитры во всякими действиями, конечно
Эти не страшны, режима же не вызывают.