Коллектив Авторов - Цифровой журнал «Компьютерра» № 146
- Название:Цифровой журнал «Компьютерра» № 146
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Коллектив Авторов - Цифровой журнал «Компьютерра» № 146 краткое содержание
Sketchpad Айвена Сазерленда и сила случая Автор: Евгений Лебеденко
ТерралабОбзор беспроводной акустической системы BBK BTA 106 Автор: Ника Парамонова
КолумнистыВасилий Щепетнёв: Иридий и гусь Автор: Василий Щепетнев
Дмитрий Вибе: Марс а натюрель Автор: Дмитрий Вибе
Дмитрий Шабанов: Эволюция: биологическая и социальная Автор: Дмитрий Шабанов
Кафедра Ваннаха: Ворожба Бимини Автор: Михаил Ваннах
Голубятня-ОнлайнГолубятня: Свежий глоток Чамби Автор: Сергей Голубицкий
Голубятня: Прогулки по Москве Автор: Сергей Голубицкий
Цифровой журнал «Компьютерра» № 146 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Научную карьеру Айвена Сазерленда можно назвать блестящей. Ещё школьником он увлекся программированием, самостоятельно собрав простенький релейный компьютер SIMON, придуманный популяризатором вычислительной техники Эдмундом Беркли. Бакалавром Сазерленд стал в Технологическом институте Карнеги, выиграв стипендию за разработку умной робомыши Фрэнкен. Докторскую диссертацию, для написания которой Сазерленд перебрался в MIT, вызвался консультировать сам Клод Шеннон.

На идею, из которой вырос Sketchpad, молодой аспирант MIT наткнулся в институтском кампусе, куда руководство лаборатории переместило TX-0. Использовать машину мог кто угодно и как угодно, благо компьютер был совершенно автономен и, что важно, обладал ЭЛТ-дисплеем. Конечно же, студенческая братия приспособила его для игр.
Это само по себе было очень необычным. Spacewar, которую разработали студенты MIT, считается едва ли не первой компьютерной игрой в истории. По экрану перемещались космические корабли, стреляющие друг в друга. Чтобы победить, нужно было уничтожить вражеский корабль и уцелеть самому.
В этой игрушке Сазерленд увидел то, что другие проглядели: люди, не имеющие навыков программирования, легко взаимодействовали с компьютером, используя его дисплей.

К тому времени Джек Гилмор, один из предшественников Сазерленда в лаборатории Линкольна, разработал Scopewriter — видимо, первый интерактивный текстовый редактор, способный отображать на экране числа, символы алфавита и простые блок-схемы. До этого программистам приходилось работать с рулонами распечаток своих программ.
Сазерленд решил пойти дальше. Если экран компьютера можно использовать в качестве интерактивного «визуального принтера», то почему бы его вкупе со световым пером не превратить в «визуальный плоттер» — инструмент проектировщика? Ведь наиболее естественный способ передать компьютеру чертёж — нарисовать его на экране компьютера! Сейчас идея кажется очевидной, но пришла бы она Сазерленду на ум без той обстановки, в которую он погрузился, будучи аспирантом MIT?
Сазерленд начал трудиться над Sketchpad (в переводе название означает «блокнот для набросков») в 1960 году. Для начала он реализовал рисование прямых линий. Решение Сазерленда было простым и изящным: чтобы нарисовать отрезок, пользователь должен был навести световое перо на точку его начала, нажать на пульте клавишу LINE и указать пером конечную точку отрезка. Sketchpad считывал координаты точек и соединял их линией.

Вдохновлённый успехом, Сазерленд в декабре 1961 года показывает прототип системы Клоду Шеннону и... получает от него ряд критических замечаний. Консультант докторской Сазерленда предлагает расширить функциональность «блокнота», добавив возможность рисования окружностей и максимально приблизив функции аппаратных клавиш Sketchpad к стандартным инструментам проектировщика.
Процедура рисования окружностей отняла у Сазерленда массу сил и времени. Разработать подпрограмму, с помощью которой можно было бы указать центр окружности и точку, ограничивающую её радиус, было просто. Но вот описать границу для дуги, завершающей рисование окружности, было весьма непросто.

Решение этой проблемы вылилось в разработку обобщённого понятия «ограничитель» (constraint), описывающего границы самых разнообразных объектов, формируемых Sketchpad. Тогда же Сазерленд пришёл к мысли об унификации элементов, составляющих рисунок в Sketchpad. Он предложил представлять любой нарисованный элемент n-компонентной структурой, в которой атомарной единицей был бы компонент.

Например, компонент «отрезок» представлялся двумя компонентами «точка», каждый из которых представлялся двумя компонентами "X"- и "Y"-координаты. В свою очередь, треугольник составляется из трёх компонентов «отрезок». С помощью компонентов типа «ограничитель» можно было задать отношения между визуальными компонентами. Установив ограничитель «параллельность» между двумя отрезками, можно было менять координаты одного из них, не заботясь об изменении координат другого отрезка. Тот автоматически перерисовывался параллельным первому. Точно так же, выбрав ограничитель «равенство», можно было сделать все грани многоугольника одинаковыми, превратив его в равнобедренный.
Следующий логичный шаг, сделанный Сазерлендом, заключался в применении рекурсии для масштабирования изображений. Вместо того, чтобы многократно вручную рисовать элементы разного масштаба, процедура рекурсии позволяла пользователю Sketchpad сгенерировать подмножество любого элемента в разных масштабах и под разными углами, просто пересчитав значения его дочерних компонентов.

Разработав базовые подходы к визуализации элементов рисунка, Сазерленд озаботился его хранением. Для быстрого вывода рисунка на экран компьютеру требовалась структура, хранящая координаты массива точек, составляющих рисунок. В Sketchpad каждая точка описывалась 36-разрядным словом, двадцать бит которого содержали координаты X и Y, а шестнадцать были указателем на элемент n-компонентной структуры, к которой принадлежит точка. Для проектировщика же требовалось хранить сведения обо всех элементах n-компонентоной структуры, составляющей рисунок.
Чтобы унифицировать эти данные, Сазерленд позаимствовал подход, применявшийся в редакторе Scopewriter, где файл, содержащий сведения о том или ином символе, представлял собой стек шестнадцатибитных указателей на элемент. Сазерленд расширил это представление, введя так называемую «кольцевую структуру» — замкнутый буфер, содержащий указатели на элементы n-компонентной структуры.
Читать дальшеИнтервал:
Закладка: