Коллектив Авторов - Цифровой журнал «Компьютерра» № 146
Сазерленд начал трудиться над Sketchpad (в переводе название означает «блокнот для набросков») в 1960 году. Для начала он реализовал рисование прямых линий. Решение Сазерленда было простым и изящным: чтобы нарисовать отрезок, пользователь должен был навести световое перо на точку его начала, нажать на пульте клавишу LINE и указать пером конечную точку отрезка. Sketchpad считывал координаты точек и соединял их линией.
Сазерленд за Sketchpad
Вдохновлённый успехом, Сазерленд в декабре 1961 года показывает прототип системы Клоду Шеннону и... получает от него ряд критических замечаний. Консультант докторской Сазерленда предлагает расширить функциональность «блокнота», добавив возможность рисования окружностей и максимально приблизив функции аппаратных клавиш Sketchpad к стандартным инструментам проектировщика.
Процедура рисования окружностей отняла у Сазерленда массу сил и времени. Разработать подпрограмму, с помощью которой можно было бы указать центр окружности и точку, ограничивающую её радиус, было просто. Но вот описать границу для дуги, завершающей рисование окружности, было весьма непросто.
Под указательным пальцем на световом пере находилась кнопка спуска
Решение этой проблемы вылилось в разработку обобщённого понятия «ограничитель» (constraint), описывающего границы самых разнообразных объектов, формируемых Sketchpad. Тогда же Сазерленд пришёл к мысли об унификации элементов, составляющих рисунок в Sketchpad. Он предложил представлять любой нарисованный элемент n-компонентной структурой, в которой атомарной единицей был бы компонент.
Структура n-компонентного элемента «линия»
Например, компонент «отрезок» представлялся двумя компонентами «точка», каждый из которых представлялся двумя компонентами "X"- и "Y"-координаты. В свою очередь, треугольник составляется из трёх компонентов «отрезок». С помощью компонентов типа «ограничитель» можно было задать отношения между визуальными компонентами. Установив ограничитель «параллельность» между двумя отрезками, можно было менять координаты одного из них, не заботясь об изменении координат другого отрезка. Тот автоматически перерисовывался параллельным первому. Точно так же, выбрав ограничитель «равенство», можно было сделать все грани многоугольника одинаковыми, превратив его в равнобедренный.
Следующий логичный шаг, сделанный Сазерлендом, заключался в применении рекурсии для масштабирования изображений. Вместо того, чтобы многократно вручную рисовать элементы разного масштаба, процедура рекурсии позволяла пользователю Sketchpad сгенерировать подмножество любого элемента в разных масштабах и под разными углами, просто пересчитав значения его дочерних компонентов.
Выравнивание фигур с помощью ограничителя «параллельность». Обратите внимание на ряд функциональных клавиш у левого края дисплея
Разработав базовые подходы к визуализации элементов рисунка, Сазерленд озаботился его хранением. Для быстрого вывода рисунка на экран компьютеру требовалась структура, хранящая координаты массива точек, составляющих рисунок. В Sketchpad каждая точка описывалась 36-разрядным словом, двадцать бит которого содержали координаты X и Y, а шестнадцать были указателем на элемент n-компонентной структуры, к которой принадлежит точка. Для проектировщика же требовалось хранить сведения обо всех элементах n-компонентоной структуры, составляющей рисунок.
Чтобы унифицировать эти данные, Сазерленд позаимствовал подход, применявшийся в редакторе Scopewriter, где файл, содержащий сведения о том или ином символе, представлял собой стек шестнадцатибитных указателей на элемент. Сазерленд расширил это представление, введя так называемую «кольцевую структуру» — замкнутый буфер, содержащий указатели на элементы n-компонентной структуры.
Родительские элементы в кольцевой структуре именовались «курица» (hen), а следовавшие за ней дочерние элементы логично обзывались «цыплятами» (chicken). Специальная процедура позволяла дополнить любую n-компонентную структуру новыми дочерними элементами, разместив «цыплят» позади «курицы». Кольцевая структура обеспечивала компьютеру возможность быстро просматривать множество родительских и дочерних элементов, выбирая необходимые для отображения на экране.
Создав в Sketchpad элементы лица, Сазерленд научил картинку подмигивать
Усилиями Сазерленда в библиотеку хранимых компонентов Sketchpad попали не только геометрические фигуры, но и символы алфавита, цифры, научные символы, радиотехнические элементы и даже такие элементы, как «глаз», «нос», «рот», позволяющие нарисовать, например, такое лицо.
Программа позволяла не только рисовать, но и визуализировать результаты расчётов других программ, необходимые на этапе проектирования. Например, создав проект арочного моста с определёнными пропорциями элементов, проектировщик мог в режиме реального времени получить на экране сведения о напряжениях, возникающих в разных точках конструкции, что существенно облегчало процесс оптимизации чертежа.
Сделанный на Sketchpad чертёж моста с «привязанными» к элементам его конструкции расчётами механических напряжений
В 1963 году вторая версия Sketchpad, а также полное описание структур хранимых «компьютерным блокнотом» данных и математических процедур, обеспечивающих реализацию ограничений и рекурсии элементов, была готова.
Демонстрация программы вызвала настоящий фурор. Стало ясно, что для специалистов, использующих системы проектирования, появился инструмент, обеспечивающий удобный ввод чертёжной информации в систему. Разработанные чертежи можно хранить в памяти компьютера и многократно использовать их или же легко редактировать при необходимости.
Безусловно, представленная версия Sketchpad была лишь прототипом. Для своей работы «рисовалка» требовала всей мощности компьютера TX-2, занимающего несколько комнат лаборатории. «Полученный опыт — самый важный результат разработки Sketchpad. В настоящее время использовать компьютер стоит, если вы хотите получить нечто большее, чем просто рисунок, — писал Сазерленд. — Для обычных рисунков всё же пока экономнее применять обычные карандаш и бумагу».
Опыт действительно оказался бесценным. С одной стороны, из Sketchpad выросли современные системы автоматизированного проектирования. С другой — эта программа стимулировала разработки в области человеко-машинного взаимодействия и, в конечном счёте, стала прародителем всех систем с графическим интерфейсом пользователя, в том числе Windows и Mac OS.
Мечтал ли о таком развитии событий Айвен Сазерленд? Конечно! В основе Sketchpad лежала идея простого общения людей и компьютеров, подмеченная им однажды в университетском кампусе. А ведь именно такие идеи и обеспечивают очередной рывок вперёд мира технологий.
Ученики СазерлендаК оглавлению
Терралаб
Обзор беспроводной акустической системы BBK BTA 106
Ника Парамонова
Опубликовано 07 ноября 2012 года
Беспроводная акустика на рынке появилась довольно давно и сейчас, похоже, всё больше входит в моду в качестве аксессуара для вездесущих мобильных устройств. Компактная пятнадцативаттная акустическая система BBK BTA 106 с двумя динамиками и встроенным микрофоном — достойный представитель этой тенденции.
BTA106 соединяется по Bluetooth практически с любым смартфоном, компьютером, планшетом или каким-либо другим устройством, обладающим поддержкой этой технологии (используются протоколы A2DP, HFP, HSP). Радиус действия беспроводной связи составляет около десяти метров (на такое расстояние можно разнести друг от друга аудиосистему и источник сигнала).
Мощности динамиков устройства достаточно для того, чтобы «прозвучить» средних размеров помещение. Говорить об этом устройстве в аудиофильских категориях бессмысленно по определению, однако на фоне других устройств подобного класса акустическая система BBK смотрится неплохо.
Аудиосистема заключена в пластиковый корпус красного, белого или чёрного цвета и выглядит как перекрученный брус. Она предназначена для размещения на горизонтальных поверхностях, но за счёт резиновых вполне устоит и на поверхностях с небольшим наклоном, таких, например, как передняя панель в салоне автомобиля.