/
Автор: Веденов А.А.
Теги: математика издательство знание новое в жизни науке технике - серия математика кибернетика брошюра знание
ISBN: 5-07-002199-0
Год: 1991
Текст
& МАТЕМАТИКА
КИБЕРНЕТИКА
Новое
в жизни,
науке,
технике
Подписная
научно-
популярная
серия
Издается
ежемесячно
с 1967 г.
А. А. Веде нов
Математика
стереоизображений
1Г91
в жизни,
науке,
технике
МАТЕМАТИКА
КИБЕРНЕТИКА
Подписная
научно-
популярная
серия
А. А. Веденов
МАТЕМАТИКА
СТЕРЕОИЗОБРАЖЕНИЙ
Издается
ежемесячно
с 1967 г.
СОДЕРЖАНИЕ
Введение 3
Гл. 1. Стереовидение 3
С чего начать? 3
Исследования стереовидения 4
Стереоскопы 6
Изготовление стереопар 7
Не все так просто! 8
Гл. 2. Стереопары точно описанных объектов 9
Компьютерные стереопары 9
Трехмерный объект, для которого известно точное описание 9
Фракталы 11
Компьютерное стереокино 13
Гл. 3. Стереорисунок 15
Сканированное изображение и его трехмерная модель 15
Простейшие объекты 17
Интарсия — ушедшее искусство Возрождения 17
Сложные объекты 21
Проблема неоднозначности 30
Гл. 4. Условные стереоизображения 30
Стереоизображения невидимого 30
Стереоизображения непрозрачных объектов 30
Гл. 5. Восстановление сцены по фотостереопаре 30
Восстановление трехмерной сцены по стереопаре 30
Реконструкция сцены с выделением прямых вертикальных
линий 32
Реконструкция сцены в интерактивном режиме 33
Заключение 33
Приложение 35
Москва
Издательство
«Знание»
1991
ББК 22.1
В 26
ВЕДЕНОВ Александр Алексеевич — доктор
физико-математических наук, профессор, действительный член Академии
естественных наук РСФСР.
Редактор И. Г. ВИРКО
В 26 Веденов А. А.
Математика стереоизображений.— М.: Знание,
1991.— 48 с.— (Новое в жизни, науке, технике. Сер.
«Математика, кибернетика»; № И).
ISBN 5-07-002199-0
55 к.
В брошюре рассказывается, какие новые возможности в стереовидении
возникли с появлением персонального компьютера. Используя компьютер, можно
строить стереоизображения объектов (в частности, невидимых) с известным
расположением в пространстве, рисовать стереорисунки и стерео'картины,
восстанавливать по стереопаре трехмерную сцену.
Брошюра рассчитана на широкий круг читателей, интересующихся самыми
различными проблемами изображения в науке, технике и искусстве.
1602010000 ББК 22.1
ISBN 5-07-002199-0
© Веденов А. А.
ВВЕДЕНИЕ
Когда мы смотрим на книжную
иллюстрацию или на экран телевизора,
рассматриваем в музее картину, мы
воспринимаем каждое из этих плоских
изображений как объемное, но все-таки
получаем более слабое впечатление
объемности, глубины изображенных сцен, чем в
реальной жизни.
Уже около 200 лет люди ищут
решение задачи: как на плоском листе, экране,
холсте создать изображение, которое
выглядело бы как трехмерная копия
кусочка реального мира?
Один из путей, по которому идут
ученые и инженеры,— это стереовидение:
создание стереоизображений на стерео-
слайдах, различных видах
стереооткрыток, развитие стереотелевидения и
стереокино.
Стереопара дает возможность
увидеть запечатленное на плоскости
(бумаге, холсте, кино- или телевизионном
экране) изображение (полученное
художником, фотографом, кино- или
ТВ-оператором) части реальной природы так же
объемно, как это мы видим в реальном
мире.
Эта проблема — увидеть
запечатленную (уменьшенную или увеличенную)
неискаженную копию кусочка трехмерного
мира — возникла, по сути дела, потому,
что любая форма фотографии, в
соответствии с законами преломления света (или
других — электронных, рентгеновских —
лучей), создает в фоточувствительном
материале крайне искаженную, резко
сжатую в третьем измерении «копию»
трехмерного объекта.
Одно из решений этой проблемы и
состоит в использовании
стереоизображений: стереофотографий,
стереоскопических электронных микрофотографий в
сканирующем микроскопе и т. п.
(голография, по существу, решает ту же
задачу: увидеть запечатленный объект или
сцену как копию реального объекта или
сцены [1]).
В этой брошюре рассказывается,
какие новые возможности в стереовидении
возникли с появлением компьютера и
особенно персонального компьютера с
его мощной периферией — монитором,
сканером, принтером с высоким
разрешением. В частности, мы расскажем о
создании компьютерных
стереоизображений. Используя компьютер, можно:
1) строить стереоизображения
объектов, для которых точно известно их
расположение в пространстве (эти объекты
могут быть и невидимыми — тогда можно
строить их условные
стереоизображения);
2) рисовать стереорисунки и стерео-
картины;
3) редактировать стереофотографии;
4) восстанавливать по
фотостереопаре трехмерную сцену.
ГЛ. 1. СТЕРЕОВИДЕНИЕ
С чего начать!
Стереопара — это два изображения
одного и того же предмета,
рассматривая которые одновременно с помощью
стереоскопа (а при определенном навыке
и без всякого приспособления),
получаешь ощущение такой же глубины
изображения, как и при наблюдении самого
реального предмета.
Изготовить простейшую стереопару
самому довольно просто. Чтобы
получить, например, стереоизображение
прозрачного конуса, можно на белом листе
плотной бумаги размером 9,5 смХ7 см
дважды обвести карандашом копеечную
монету, расположив центры кружков на
расстоянии 6 см друг от друга и на вы-
3
и !
О |
Pwc. /. Конус
соте 2,5 см над нижним краем листка
бумаги. Поместив две точки, смещенные
соответственно вправо и влево от
центров кружков на 1 мм (так, чтобы
расстояние между ними составило 5,8 мм),
и рассматривая листок в стандартный
отечественный стереоскоп (см. описание
стереоскопов ниже), мы увидим
прозрачный конус: круглый ободок основания и
приближенную к нам вершину. (Если
стереопара изготовлена на непрозрачной
бумаге, рассматривать ее нужно в
рассеянном свете, проникающем в щель
стереоскопа; чтобы можно было
рассматривать стереопару на просвет, нужно
нарисовать ее на кальке либо кусочке
пергамента).
Если, наоборот, раздвинуть эти две
точки так, чтобы расстояние между ними
составило 6,2 мм, то при
рассматривании стереопары мы увидим прозрачный
конус с удаленной от нас вершиной.
Опыт показывает, что многие люди
видят единое объемное изображение,
рассматривая стереопару и без всякого
стереоскопа (как этому научиться,
можно прочитать, например, в [3]).
Иллюстрации, приведенные в этой брошюре,
можно рассматривать либо
невооруженным глазом, либо с помощью
стереоскопа — лорнета (см. ниже). На рис. 1
приведена стереопара конуса* .
Построим еще несколько простых сте-
* Лично я научился видеть помещенные здесь
компьютерные стереопары довольно быстро и
получил от этого большое удовлетворение. Чтобы
научиться видеть стереопару невооруженным глазом,
автор предлагает разрезать листок со стереопарой
(например, конуса) пополам (по вертикали).
Держа половинки стереопары перед собой, нужно мед-
реопар, которые можно рассматривать в
стандартный стереоскоп. Например,
наклоненный в глубину отрезок мы
получим, соединив «вершины конусов» на
правой и левой половинах стереопары
с одним из концов (скажем, верхним)
вертикальных диаметров кружков.
Усеченную пирамиду можно построить,
сместив вправо и влево маленькие
квадраты внутри больших. Лежащую на
плоскости прямоугольную коробку
можно увидеть, сместив вправо и влево
квадраты, изображающие заднюю стенку
коробки, относительно «передней стенки».
Наконец, построив несколько
наклоненных под разными углами отрезков, таких,
что конец одного является началом
следующего, можно сконструировать
пространственную ломаную линию и даже
«завязать ее узлом».
Исследования стереовидения
Как мы видим стереопару? Когда
человек смотрит на расположенный перед
ним небольшой объект Л, говорят, что
наблюдатель «фиксирует предмет». Лучи,
проходящие от А через хрусталики глаз
и попадающие на сетчатку глаз,
фокусируются на ней в областях А\ и Л2
(рис. 2). В сознании наблюдателя два
образа объекта А (воспринимаемые пра-
ленно сдвигать и раздвигать их, фиксируя взгляд
на точку примерно в метре позади стереопар. В
результате удается найти положение, когда
посередине между двумя половинками стереопары появится
третье изображение, которое и будет выглядеть
объемным. (Примечание редактора.)
4
• Объект Б
Объект Я 9 / \
i Л \
I / \ \
J / Оси зрения
\\
V
АЛ У \ \\
I Расстояния между изображениями различны
Рис. 2. Сетчаточная диспаратность
вым и левым глазом) «сливаются» в
единый образ.
При этом угол между «осями зрения»
А — А\ и А — Лг (угол конвергенции)
и разность смещений изображений А\
и Ач относительно центров сетчаток
(диспаратность) служат мерой
представления наблюдателя об удаленности
предмета А.
Лучи от второго объекта Б
фокусируются на сетчатке в областях Б\ и Бг,
угол конвергенции и диспаратность
принимают другие значения, и наблюдатель
воспринимает объект Б как удаленный
на иное, нежели объект Л, расстояние.
Если наблюдатель осознает, что объекты
А и Б принадлежат одному предмету,
то возникает естественное ощущение
протяженности этого предмета в глубину.
Исследования зрения человека (и
животных) показали, что для восприятия
глубины важны два явления —
аккомодация и конвергенция. Аккомодация
глаза — это его «приспособление к
отчетливому видению предметов на
различных расстояниях; при помощи
глазных мышц хрусталик глаза изменяет
свою форму так, что предмет дает
отчетливое изображение на сетчатке» [26].
«Видение предметов близких
заставляет глаз аккомодировать сильнее, чем
это необходимо для фиксации точек,
более удаленных. На основании
различия в напряжении аккомодации глаза
можно видеть и оценивать удаленность
различных объектов и при помощи
монокулярного зрения. Однако оценка
расстояния при монокулярном зрении очень
несовершенная и ограниченная. Для
точек, удаленных больше чем на 6—8 м,
глаз уже не аккомодирует вовсе. Поэтому
возможность видеть и тонко оценивать
большую или меньшую удаленность
предметов и их частей основывается по
преимуществу на зрении бинокулярном
(зрении двумя глазами). При
бинокулярном зрении, кроме аккомодации, видению
рельефа способствуют конвергенционные
движения и несоответствие изображений
на обеих сетчатках. Под конверген-
ционными движениями понимаются
движения сведения зрительных осей обоих
глаз на фиксируемом объекте.
Несоответствие сетчаточных изображений
обусловливается тем, что один глаз отстоит от
другого на некотором расстоянии (около
63 мм) и поэтому видит объект с
несколько другой точки зрения» [26].
Однако «конвергенция, как и
аккомодация, в стереоскопическом видении
решающей роли не играет. Последнее
доказывается известным опытом Геринга с
оценкой удаленности падающего шарика.
Через трубу, закрывающую от нас всю
окружающую обстановку, мы фиксируем
обоими глазами некоторую точку
(например, подвешенный на нити меловой
шарик); в это время лицо, производящее
опыт, бросает другой белый шарик
впереди или позади фиксируемой точки.
Поскольку мы смотрим бинокулярно, нам
не представляет труда правильно
оценить, упал ли шарик впереди или позади
фиксируемой точки. Между тем время
падения шарика меньше, чем то, которое
требуется на произведение
аккомодационных или конвергенционных
движений. Следовательно, наша оценка
удаленности может совершаться хорошо и
без их участия» [26].
Одним из основных факторов в
стереоскопическом видении является
несоответствие изображений на сетчатках
двух глаз. «Однако не всякое
несоответствие изображений, возникающих на
сетчатках, влечет за собой впечатление
стереоскопичности объекта. Если это
несоответствие слишком велико или если
точка предмета, дающая в одном глазу
изображение на левой половине сетчатки,
в другом глазу дает изображение на
5
Рис. 3. Опыт с двумя спицами
правой ее половине, мы получаем
впечатление двойственности, видим эту
точку двойной. Возьмем две спицы и
поставим их одну за другой на расстоянии
примерно 15 см друг от друга. Будем
при этом фиксировать ближнюю спицу,
находящуюся в точке с (рис. 3), тогда
дальняя (находящаяся в точке а),
увидится нами уже двойной в точках а' и
а". При фиксировании же более
удаленной спицы (в точке с) раздвоится
более близкая (помещенная в точку в) и
даст в свою очередь два изображения
в' и в". Как можно видеть на рис. 3,
в обоих случаях изображение нефикси-
руемой спицы падает на разноименные
половины сетчаток.
Если же несоответствие не слишком
велико или же оно односторонне
(т. е. раздраженные несоответствующие
точки сетчатки в обоих глазах лежат в
правых половинах сетчаток или в обоих
глазах — в левых половинах), двоения
не получается, но получается
впечатление третьего измерения, близости или
отдаленности предмета сравнительно с
фиксируемой точкой.
Степень и направление видимой
удаленности предмета зависят при этом от
так называемого относительного
бинокулярного параллакса» [26].
Бинокулярный параллакс р видимой
точки А равен углу А\—А—Ач (рис. 2)
и при малых значениях p<Cl
p = d/L (1)
где d — расстояние между зрачками
глаз, / — расстояние до точки А.
Относительный бинокулярный параллакс dp
двух точек А и Б равен
dp=d-dl/l2, (2)
где dl — разница удаленностей точек
А и Б. «Если разность углов,
составленных в обоих глазах линией фиксации
и направлением, идущим от данной (не
фиксируемой) точки через узловую точку
глаза, дает угол, лежащий на височной
половине сетчатки, мы видим данную
точку расположенной ближе, чем
фиксируемая. Если же эта разность дает угол,
лежащий в носовой половине сетчатки,
точка кажется дальше фиксиру-
мой» [26].
Как и для других органов чувств
человека (например, осязания или
слуха), для различения двух точек по
удаленности имеется порог; обычно
пороговая величина углового параллакса
составляет 5 угловых секунд. Этому
пороговому значению соответствует
предельная дальность (так называемый радиус
стереоскопического видения), за которым
глаз уже не в состоянии воспринять
различий рельефа. В соответствии с
формулой (1) величина радиуса
стереоскопического видения у разных людей
составляет 1 —1,5 км.
Стереоскопы
Слово «стереоскоп» состоит из
греческих стерео — объемный, телесный и
скопо — смотрю. По-видимому,
стереоскоп был изобретен около 1830 г., еще до
первых дагеротипов (1839 г.) В первых
стереоскопах до изобретения фотографии
помещались только чертежи
геометрических тел и несложные перспективные
рисунки [2]. Описание различных типов
стереоскопов, применявшихся в прошлые
годы, можно найти, например, в [3].
В России в начале века
выпускались высококачественные
стереофотографии (в частности, учебные пособия по
географии и зоологии), которые обычно
рассматривали в стереоскоп-лорнет [3].
Современные общедоступные
отечественные стереоскопы — это «Стерео-
скоп-3», стереоскоп «Салют», за рубежом
популярен «Viewmaster». Эти
стереоскопы используются для рассматривания
стереослайдов, изготовленных на цветной
6
й
Рис. 4. Стереоскоп Уитстона
фотопленке при стереофотосъемке видов
природы, городов, памятников
архитектуры, игрушечных макетов сказок,
макетов технических устройств и т. п.
Большая область стереоскопии —
стереоскопические космические и
аэрофотоснимки [4], расшифровка которых
позволяет определять рельеф земной
поверхности, строений, инженерных
сооружений.
Стереоскопические снимки
используются в микроскопии [5], медицине [6].
Стереоскоп устроен так, что при
рассматривании в него каждый глаз видит
только одну из двух картинок
стереопары. Если эти картинки соответствуют
тому, что видно каждым глазом при
рассматривании реального предмета, у
наблюдателя возникает ощущение, что
он видит реальный, протяженный в
глубину объект.
Первый стереоскоп изобретен Уитсто-
ном в 1833 г. Он представляет собой
два зеркала, стоящих под углом друг к
другу (рис. 4). Перед одним из них
ставится изображение предмета в той
проекции, как он видится только левым
глазом; перед другим ставится
изображение, соответствующее тому, как этот
же предмет виден правому глазу. Первое
изображение, отражаясь от зеркала,
попадает в левый глаз смотрящего,
вторые. 5. Стереоскоп Брюстера
рое — в его правый глаз. Путем
некоторых передвижек изображений перед
зеркалами добиваются того, чтобы
центральные места изображений упали бы в
обоих глазах на соответственные точки
сетчаток. В таком случае одностороннее
несоответствие изображений прочих
частей предмета вызовет у нас
впечатление рельефа. В А — В мы увидим
одно стереоскопическое изображение
предмета, представленного в а — b и
ai — b2.
Весьма распространен стереоскоп
Брюстера (рис. 5). Две карточки,
соответствующие проекции предмета для
левого й для правого глаза,
помещаются в а—б и al — pi, рассматриваются
обоими глазами через линзы Р и дают
стереоскопическое изображение в А — В
[2а].
Стереолорнет представляет собой два
стекла для очков (примерно +6
диоптрий, т. е. фокусное расстояние около
16 см), укрепленные на рукоятке так,
что, поворачивая оправки стекол вокруг
точки крепления к рукоятке, можно
менять расстояние между центрами
стекол, подбирая наиболее удобное.
Изготовление стереопар
И стереофотографии, и стереослайды
получаются при одновременном фотогра-
7
фировании объекта двумя объективами,
разнесенными примерно на 60 мм [7] —
расстояние между зрачками глаз
человека.
Самодельную стереопару прозрачного
объекта (стеклянного стакана, мотка
жесткой проволоки) можно изготовить,
обведя карандашом тень от этого
объекта, отбрасываемую на лист бумаги
при освещении обычной электрической
лампочкой. Обводя тень для левой и
правой половин стереопары, нужно
повернуть объект примерно на 7 угловых
градусов — это угол между осями зрения
двух глаз при рассматривании
небольшого предмета с расстояния примерно
50 см. Такая стереопара аналогична
стереофотографии, ее правая и левая
части при рассматривании (в
стереоскоп-лорнет, или какой-либо подобный
стереоскоп, или невооруженным глазом)
должны быть смещены примерно на
6 см.
Если уменьшить изображение на
каждой из половин такой теневой
стереопары до размера 29 ммХ22 мм (это
размер окна рамки для стереослайдов
отечественных стереоскопов),
сфотографировав правое и левое изображение
и воспользовавшись для уменьшения
размера сканером либо
ксерокопировальным аппаратом, можно рассматривать
стереопару как стереослайд.
Стереопару светящегося объекта,
например раскаленной нити обычной
лампочки накаливания, можно изготовить
с помощью камеры-обскуры [8].
Простейшую камеру-обскуру мы получим,
взяв два листа бумаги, расположив их
параллельно в вертикальной плоскости
на расстоянии в 20—30 см сбоку от
100-ваттной лампочки (лучше в темной
комнате) и на расстоянии примерно
10 см друг от друга. Предварительно
в листе, ближайшем к лампочке, нужно
проделать маленькое (0,5—1 мм)
отверстие (как наилучшим образом выбрать
величину отверстия, можно прочесть в
[8]). Обведя карандашом яркое
изображение нити на дальнем листе,
повернем ближайший к лампочке лист нашей
камеры-обскуры вокруг вертикальной
оси, проходящей через середину нити,
так, чтобы новое изображение нити на
дальнем листе отстояло от старого
примерно на 6 см, и снова обведем
изображение карандашом. Стереопару
можно рассматривать в стереоскоп-
лорнет или, если изображение нити
умещается в кадр 29 ммХ22 мм, как
стереослайд.
Не все так просто!
Еще в прошлом веке для
топографических целей и в военном деле
использовался телеостереоскоп Гельмголь-
ца — «прибор, назначенный для
определения, какие из дальних
предметов находятся впереди других. Перед
глазными трубочками находятся два
зеркальца... на одной линии с ними
направо и налево помещены другие два
зеркальца, отражающие изображения
предметов в первые зеркальца. В
каждом из глаз составится изображение
отдаленных предметов, и если линейка,
на концах которой укреплены крайние
зеркальца, имеет 1,5—2 метра длины,
то можно судить о том, например,
какая из вершин холмов, рисующихся
рядом, ближе к наблюдателю» [2].
При этом, однако, «рельеф будет
усиленный и может перейти в
безобразный для предметов, близких к глазу» [2].
«Увеличить радиус нашего
стереоскопического зрения и вообще повысить
остроту различения нами рельефа мы
могли бы путем увеличения
относительного бинокулярного параллакса,
соответствующего данным точкам
предмета, которые мы хотим стереоскопически
различать. По приведенной выше
формуле (2), увеличив как-либо
межзрачковое расстояние d, мы увеличили
бы и dp. Это и достигается в так
называемом телеостереоскопе Гельм-
гольца» [26].
«При увеличении базы В радиус
[стереоскопического зрения] увеличивается
как отношение расстояния В между
объективами прибора к расстоянию d
между глазами. Это отношение B/d
называется удельной пластикой прибора.
При введении в прибор еще и
увеличения w увеличиваются в w раз и
предел глазного параллакса (10 угловых
секунд), и полная пластика прибора».
Обычно в фокальных плоскостях
стереоскопических дальномеров «помещены
стереоскопические снимки с ряда вех,
8
находящихся на определенных
расстояниях от наблюдателя. Смотря в прибор,
увидим, что вехи как бы уходят в
глубь пространства, и сможем оценить
удаление точек обозреваемого
ландшафта в зависимости от того, близ
которой из вех они придутся» [27].
В наше время приборы такого типа
(называемые сейчас гиперскопами)
используются для изучения восприятия
человеком трехмерного пространства.
«Увеличение эффективного расстояния
между глазами приводит к
увеличению сетчаточной диспаратности —
различия в положениях изображений на
сетчатках — и разности углов
конвергенции, соответствующих
рассматриванию разноудаленных предметов.
Предположим, вы смотрите на предмет А через
гиперскоп так, что предмет Б также
находится в поле зрения. Новое различие
в положениях предметов на сетчатках
принуждает вас считать, что
расстояние между предметами по глубине стало
больше. Кроме того, вы воспринимаете
большую глубину потому, что стала
больше разница и в углах
конвергенции.
Гиперскоп изменяет также видимую
высоту и ширину соседних предметов.
При нормальных условиях зрения
человек привыкает к определенному
соотношению между размером изображения
предмета на сетчатке и расстоянием
до предмета. При наблюдении в
гиперскоп предмет кажется уменьшившимся,
поскольку угол конвергенции,
необходимый для рассматривания его через
зеркала, больше нормального значения.
Многие знакомые предметы
приобретают странные очертания, если
рассматривать их в гиперскоп. Например,
человеческое лицо утоньшается, а нос
выступает вперед. Все предметы сразу же
принимают свой нормальный вид, когда
вы закрываете один глаз и смотрите в
прибор другим глазом. В этом случае вы
уже не в состоянии оценивать сетчаточ-
ную диспаратность или углы
конвергенции и воспринимаете глубину
пространства лишь на основе признаков
картинности» [9].
Эти эффекты, наблюдаемые при
рассматривании в гиперскоп реальных
объектов и сцен, можно видеть и в
стереоскопе, рассматривая стереопары, снятые
фотографом при расстоянии между
объективами, превышающем расстояние
между глазами человека.
Надо упомянуть и об одном
своеобразном использовании стереоскопа —
в качестве стереокомпаратора,
служащего для сравнения одинаковости двух
изображений. Если, будучи помещены в
установку стереоскопа, они дают одно
совершенно плоское, не рельефное
изображение, то сравниваемые объекты
одинаковы; если же возникает впечатление
двоения или. рельефа — между ними
имеется различие. Так можно определять
подлинность марок, денежных знаков
и т. п. Стереокомпараторы позволяют
также из сравнения двух снимков,
сделанных с разных точек зрения,
определить рельеф снятого объекта [26].
ГЛ. 2. СТЕРЕОПАРЫ
ТОЧНО ОПИСАННЫХ ОБЪЕКТОВ
Компьютерные стереопары
С появлением персонального
компьютера, снабженного сканером — прибором
для оцифровки и ввода в компьютер
изображения с листа бумаги — и
высококачественным (размер точки
1/300 дюйма) принтером, появилась
возможность конструировать компьютерные
стереокарточки и стереослайды
(аналогичные обычным стереофотографиям
и стереослайдам).
Конечно, это возможно только в том
случае, когда известна трехмерная
структура объекта или сцены,
стереоизображение которой мы намерены построить.
Трехмерный объект, для которого
известно точное описание
Примером такого объекта может
служить любая макромолекула (молекула
белка, нуклеиновой кислоты и т. п.),
пространственные координаты которой
(обычно найденные экспериментально
путем численной обработки
рентгеновских дифракционных картин от
монокристаллов, выращенных из раствора
таких молекул) точно известны и, как
сейчас принято, хранятся на магнитных
лентах так называемого Брукхейвенского
2 сер. Математика № 11
9
банка молекулярных данных.
Стереоизображения таких молекул регулярно
публикуются в наиболее известных научных
журналах, например в журнале "Nature".
В файлах Брукхейвенского банка
содержатся декартовы координаты всех
атомов молекулы. Однако для
построения наиболее простой стереопары,
дающей общее представление о сложной
трехмерной структуре, к примеру
молекулы миоглобина, достаточно извлечь из
файла координаты лишь полутора сотен
так называемых С-альфа атомов
углерода, последовательно соединенных в
пространственную ломаную линию,
образующую «скелет» белковой молекулы.
Небольшая часть этих координат
(начальный участок С-альфа цепи с указанием
названий аминокислот) приведена в
Приложении.
Пример программы ST_IMAGE на
языке BASIC также приведен в
Приложении. Основное преобразование,
использованное в этой программе для
построения стереопары по известным
координатам атомов С-альфа углерода,
содержится в подпрограмме STEREO.
Предполагается, что мы наблюдаем
молекулу вдоль оси z, проходящей через ее
центр тяжести (координаты его
предварительно найдены), а ось х проходит
горизонтально (т. е. параллельна
прямой, соединяющей зрачки глаз
наблюдателя).
Для упрощенного расчета координат
изображений атомов С-альфа
предположим, что изображение на сетчатке
глаза получается подобно тому, как оно
образуется в камере-обскуре, а роль
отверстия камеры-обскуры играет зрачок
глаза. Тогда атом с координатами х, yf z
будет виден левым глазом так, как если
бы он находился в плоскости х в
точке с координатами
xl = {x—d)L/(L—z)y (3)
yl=yL/(L-z), (4)
где L — расстояние до центра молекулы,
d — расстояние между зрачками.
Соответственно для правого глаза
x2=(x+d)L/(L—z)y (5)
У2=у1. (6)
Поэтому одним из вариантов построения
стереопары на мониторе компьютера
будет изображение левой и правой точек
ult v и иг, v: ul = XO + R + mm*xl,
ur - XO-R + mm*x2,
v = Y0-mm*y 1,
где xO, yO — координаты центра
монитора, R — расстояние между правой и
левой половинами стереопары, mm —
масштабный фактор, определяющий
размер изображения.
Рис. 6. Молекула миоглобина
ю
Остальные части программы
включают расчет координат центра тяжести,
расчет координат при повороте молекулы
вокруг различных осей и вывод
изображения на экран.
Меняя в программе расстояние между
двумя половинами стереопары (строка
программы с меткой 999, параметр /?),
можно подобрать наиболее удобные для
себя условия рассматривания. Поскольку
число атомов для молекулы миоглобина
довольно велико (более 200), для
облегчения рассматривания можно либо
соединить между собой каждый десятый
(или, например, двадцатый) атом,
придавая соответствующее значение
параметру пп в программе, либо
рассматривать ограниченный участок молекулы
(рис. 6).
Фракталы
«Природа сыграла злую шутку с
математиками. Ученым XIX в., возможно, не
хватало воображения, зато у природы его
было достаточно. Те патологические
структуры, которые были изобретены
математиками, желавшими оторваться от
свойственного XIX веку натурализма,
оказались основой множества хорошо
знакомых, повсюду окружающих нас
объектов» [10].
Это высказывание, сделанное десять
лет назад известным
физиком-теоретиком Ф. Дайсоном, относится к
фракталам.
Фрактал — это математический
объект, имеющий дробную размерность, в
отличие от одномерных линий или
двумерных поверхностей. Термин «фрактал»
был введен Б. Мандельбротом,
рассмотревшим много примеров объектов
дробной размерности [11].
В основании мандельбротовской
теории фракталов лежат труды Ф. Хаусдор-
фа (1868—1942) и А. С. Безиковича
(1891 — 1970).
В своей широко известной книге
«Фрактальная геометрия природы»
Б. Мандельброт обсуждает такие
фрактальные объекты, как береговая линия
(Великобритании, Австралии, Южной
Африки и др.), государственная
граница, рельеф местности, текстура
поверхности, космические структуры, годовой
расход воды в реке, броуновское
движение частицы, а также множество
созданных математиками и художниками
изображений.
После появления книги Мандельбро-
та возникла лавина научных статей,
авторы которых (чаще всего с полным
основанием) стали находить новые
примеры фракталов в природе — точнее
говоря, в этих статьях утверждается, что
многие природные явления и объекты
удобно приближенно описывать как
фрактальные [12—14].
Сейчас имеется много примеров
возникновения фрактальных структур в
различных реальных средах и объектах:
это дендритный и коллоидный рост
твердой фазы из пересыщенного
раствора или расплава, так называемые
«вязкие пальцы», возникающие на фронте
вытеснения нефти из пористых пород
водой или воздухом, двумерные «клетки»
(цитотипы — эллипсы и гантели),
обнаруженные М. Фишером, землетрясения,
статические и динамические явления в
сыпучих средах, структуры игры
«жизнь», обнаруженные П. Баком и
К. Ченом, структуры сетчатки глаза,
галактические структуры, фрактальная
форма растений.
Еще одно направление науки о
фракталах — это волны в средах, свойства
которых случайным или закономерным
образом изменяются от точки к точке:
например, это электромагнитные волны
на поверхности кристалла ниобата лития
с нанесенными на ней параллельными
штрихами, расстояние между которыми
определяется последовательностью
Фибоначчи; так называемые фрактоны в
стеклах, полимерах, магнитах и
аэрогелях.
Появилось много работ,
посвященных фрактальному движению:
перемещение фибробластов человека
представляет собой фрактальное броуновское
движение: фотонный корреляционный
анализ при рассеянии света частицами,
внесенными в турбулентный поток
жидкости, выявляет фрактальный характер
турбулентности; в анизотропной задаче
Кеплера (движение электрона донорной*
примеси в полупроводнике) проявляются
различные фрактальные сценарии
динамики гамильтоновой системы.
Фрактальные закономерности выяв-
2*
И
ляют и суперкомпьютерные расчеты так
называемых моделей Кауфмана (широко
используемых в последнее время при
моделировании иммунной системы) с
ближним взаимодействием в применении к
задаче о развитии «генетического
возмущения» на больших (линейный размер
до 3000 ячеек) двумерных решетках.
Продолжают появляться статьи по
ставшим уже традиционными во
фрактальной науке темам: это фрактальная
природа разрушения,
диффузионно-ограниченный рост, диффузия на
фрактальных структурах и
электропроводность этих структур.
Исследуются концепции фракталов в
астрономии и космологии (например,
изучается фрактальное распределение
галактик), и в искусстве — ученые
продолжают создавать эффектные
фрактальные пейзажи и проводят
фрактальный анализ музыки различных народов
и эпох.
Недавно была выдвинута и
глобальная фрактальная идея — «фрактальная
структура эволюции»: все, что мы знаем,
включая физические законы и
пространство с его симметрией, эволюционирует.
Эволюция жизни, разума, материи
подчиняется одним и тем же механизмам.
В каждой из эволюции возникают
самоподобные структуры, схожие со
структурами фрактальной геометрии Мандель-
брота.
Некоторый класс фракталов тесно
связан с аффинными преобразованиями.
Одно или несколько аффинных
преобразований координат х-+х\у у-+у\
точки на плоскости, многократно
примененных к исходному относительно простому
объекту, дает удивительные
изображения, часто близкие к тем, что мы
наблюдаем в природе.
xl =a*x + b*y + e,
yl=c*x + d*y + f,
Фрактал «отражение / вращение».
Простейший пример стереоизображения
случайного фрактала приведен на рис. 7.
Этот фрактал [15] строится следующим
образом: выбрав начальную точку на
плоскости, будем случайно чередовать
две операции — отражение точки в
плоском зеркале и поворот ее на
некоторый постоянный угол вокруг некоторой
оси, перпендикулярной выбранной
плоскости. Получив новую точку и
выведя ее изображение (например,
зеленым цветом, если произведено
отражение, и красным — если поворот) на экран
компьютера, выполняем следующую
операцию и т. д. Стереопару строим,
помещая зеленые точки в одну плоскость,
а красные — в параллельную ей, но
находящуюся ближе к наблюдателю.
«Папоротник Барнсли». Этот фрактал
(см. [10, 16]) представляет собой
результат итерации того же типа, что и для
фрактала отражение / вращение, только
в данном случае случайно чередуются
следующие 4 аффинных преобразования
х = 0, у = у*.2;
х - х*.8 + у*.02,
у - -х*.02 + у*.8 + 3*d;
х = -х*.15 + у*.2,
y = x*.2 + y*.2+1.2*d;
х = х*.15-у*.2,
у - х*.2 + у*.2 + 3*d,
где d — масштабный фактор. Изменяя
численные коэффициенты в этих
преобразованиях, можно варьировать форму
листа. Если ввести третье измерение
(см. программу 3D_LEAF.BAS в
Приложении), то лист папоротника станет
объемным. Изъяв из этой программы
строку с меткой 777, можно увидеть
папоротник с разноцветными
листочками. Стереопара папоротника Барнсли
приведена на рис. 8.
Идея использования аффинных
преобразований для имитации изображений
объектов природы была осуществлена
М. Барнсли и А. Слоаном для
практического представления самых различных
изображений (пейзажей, портретов и
др.) как набора фракталов. При этом
(ценой лишь незначительной потери в
точности передачи исходного
изображения) достигается сжатие объема
цифровой информации в сотни раз — это
можно увидеть, если записать
изображение папоротника Барнсли на диск и
затем сравнить объем получившегося
файла LEAF3.PCX (для черно-белого
файла около 25 кбайт) с объемом
программы 3D_LEAF.BAS (меньше
12
Рис. 7. Фрактал «отражение/вращение»
1 кбайта). Такое сжатие файла может
оказаться весьма ценным для
уменьшения объема магнитной памяти при
хранении информации и для увеличения
скорости при ее передаче [16].
«Фрактальные» деревья. Пример
программы, рисующей стереоизображение
«ветлы», приведен в Приложении.
Программа ST_TREE.BAS состоит из
нескольких вложенных друг в друга
циклов, в которых рисуются ствол и
ветви различных порядков (т. е. большие,
средние, малые ветви и веточки):
for i = 1 to n
for m= 1 to nl
for 1 = 1 to nl
stereo
next 11
next 1
next m
next i
где операция stereo повторяется
несколько раз.
Дерево строится подобно тому, как
строится фрактал — координаты концов
ветвей различных порядков в операции
stereo являются регулярными функциями
номера в циклах по /, т, I, /1 —
однако для построения нашего
схематического дерева достаточно лишь
нескольких шагов в каждом из циклов.
Правда, при этом деревья кажутся
неестественными, и чтобы дерево приняло
естественный вид, необходима модуляция
этих регулярных функций с помощью
случайных чисел. И сам вид регулярной
функции, и глубина модуляции
подбираются эмпирически так, чтобы
изображение было естественным. Пример
стереопары приведен на рис. 9. Программа
FIR в Приложении рисует стереопару
ели.
Персональный компьютер дает еще
одну возможность: если построена
последовательность компьютерных стереопар,
на мониторе компьютера можно
наблюдать стереокино.
Например, если в обсуждавшейся
выше программе ST_IMAGE
закомментировать строку с меткой 777', мы
сможем наблюдать стереокино,
изображающее вращающуюся часть молекулы мио-
глобина.
Такая же по сути программа
ST_CUBE (также приведенная в Прило-
for li = 1 to n2 Компьютерное стереокино
13
Рис. 8. «Папоротник Барнсли»
Рис. 9 «Фрактальные» деревья
жении) позволяет наблюдать вращение
куба вокруг любой из пространственных
осей: предполагается что ось х лежит
горизонтально, а ось у — вертикально в
плоскости, параллельной плоскости
экрана, ось z перпендикулярна плоскости
экрана; все эти оси проходят через центр
тяжести куба. Если вместо
подпрограммы STEREO 1 использовать
подпрограмму STEREO, то вместо ребер
вращающегося куба (рис. 10) мы увидим на
экране его светящиеся вершины.
Программа STCUBE в Приложении
создает стереокино —
последовательность стереоизображений
уменьшающегося, а затем увеличивающегося куба.
Помещенная там же программа BROWN
создает стереокино трехмерного
случайного (броуновского) движения точки, а
программа LORENZ — стереокино из-
14
вестного странного аттрактора Лоренца
(стереоизображение динамической
фазовой траектории).
Рассматривать эти фильмы можно
либо невооруженным глазом, либо с
помощью стереоскопа-лорнета.
ГЛ. 3. СТЕРЕОРИСУНОК
Сканированное изображение
и его трехмерная модель
Если точное числовое описание
трехмерного объекта (или сцены)
отсутствует, но имеется его фотография или
рисунок, то это изображение может
служить одной половиной стереопары
(например, левой), а вторую (правую)
половину можно построить, если мы знаем
пространственное расположение частей
объекта. Можно, конечно, поступить и
иначе: считая, например, что исходное
изображение представляет собой «вид
спереди», рассчитать изображения для
правого и левого глаза.
Для расчета стереопары нужно
прежде всего ввести исходное изображение в
компьютер — как говорят, «оцифровать»
его с помощью сканера (или
видеокамеры с оцифровщиком — граббером).
При обработке иллюстрации сканер
освещает лист бумаги с иллюстрацией,
последовательно измеряет интенсивность
лучей, отраженных маленькими
Рис. 10. Куб
(0,1 ммХ0,1 мм) квадратами листа
(таких квадратов в каждой половине нашей
стереопары оказывается около 100 000),
приписывает интенсивности отраженного
света одно из значений в интервале от
0 до 15 и записывает результат в память
компьютера.
Чтобы отобразить сканированную
фотографию на экране монитора, будем
ставить в соответствующем каждому
квадратику фотографии месте экрана
черную или белую точку согласно
следующему правилу. Установим некоторое
значение порога, равное произвольному
числу между 0 и 15, и условимся
приписывать точке белый цвет, если значение
интенсивности больше порога, и
черный — в противоположном случае.
Проверяя последовательно все значения ин-
тенсивностей, записанные в память,
получим изображение фотографии на
экране.
На рис. 11 приведено
стереоизображение барана (из книги [3]) после
такой компьютерной обработки
сканированной иллюстрации. Для рис. И
значение порога было выбрано равным 4.
Если изменить это оптимальное
значение порога (уменьшить или увеличить
его), становится очевидным, что
уменьшение числа деталей в стереопаре
приводит к потере глубины изображения в
различных местах нашего сложного
объекта. Видно также, что различные
значения интенсивности ответственны за
15
Рис 11 Фотостереоизображение барана
Рис. 12. Компьютерное стереоизображение барана
появление эффекта глубины
изображения в различных местах. Далее, можно
заметить, что потеря «понимания»
(узнавания целостных частей изображения)
не всегда сопровождается потерей
ощущения глубины.
Наконец, отметим роль «шума в
изображении» — исчезновения некоторых
точек на одной из половин стереопары
или появления лишних точек. Причины
появления шума на обработанной
компьютером стереопаре многообразны.
Прежде всего, при фотосъемке,
проявлении, печатании фотографии, создании
эскиза фотографии для рисунка в книге,
изготовлении оригинала и типографской
печати условия создания правой и
левой половин пары могли быть несколько
различными. Далее, при сканировании
двум соответствующим точкам правого и
левого изображения могли быть
приписаны несколько отличающиеся значения
интенсивностей, так что одна из них
могла оказаться выше порога, а другая —
ниже. Рассматривая стереопары, можно
заметить, что влияние «шума» играет
16
большую разрушающую роль для
эффекта глубины в стереопарах с меньшим
числом элементов изображения.
Для сравнения на рис. 12 приведена
рассчитанная на компьютере стереопара
для этого же объекта: исходным
массивом здесь служила левая половина
фотостереопары, а пространственное
расположение животного, наблюдаемое на
фотостереопаре, послужило основой для
построения правой половины
компьютерной стереопары. При сравнении
исходной фотостереопары и построенной
компьютерной стереопары видно
преимущество последней. Яркости
соответствующих точек на ней одинаковы, чего
нельзя сказать об исходной стереопаре
(различный фотоматериал, бумага, условия
воспроизведения) и что резко
проявляется при ее введении в компьютер с
помощью сканера — различия в яркостях
изображений двух половин
фотостереопары на экране компьютера (результат
«квантования» по координатам и по
яркости при сканировании) не только легко
различимы глазом, но и трудно
исправимы. Таким образом, мы видим
возможность редактирования и исправления
фотостереопар с помощью сканера и
компьютера.
Простейшие объекты
При конструировании компьютерной
стереопары, если мы имеем дело с
простым объектом, построенным, к примеру,
из отрезков прямых линий, можно,
используя компьютер, поступить примерно
так же, как при изготовлении простейших
стереопар с помощью карандаша,
бумаги, циркуля и линейки. Напишем
программу, которая будет строить правую
половину стереопары, сдвигая отдельные
точки на левой ее половине вправо и
влево в зависимости от предполагаемой
глубины расположения данной точки в
пространстве, согласно формулам (3) —
(6), и соединяя затем эти точки
отрезками прямых.
Таким образом можно
конструировать на компьютере стереопары конуса,
наклоненного к зрителю отрезка,
«завязанной в узел» пространственной
ломаной и любых других простых объектов,
введенных в компьютер с помощью
сканера.
Попытка построить стереопару по
картине или рисунку художника может
оказаться значительно менее
успешной — это в сильной степени зависит от
того, использовались ли художником
законы перспективы. Современное учение
о перспективе зародилось в эпоху
Возрождения, и использованию перспективы
в искусстве уделялось в то время
большое внимание.
Интарсия — ушедшее искусство
Возрождения [17]
Интарсия, или инкрустация по дереву,
была одним из основных искусств Италии
во второй половине XV и первой
четверти XVI столетия. Искусство, или ремесло,
интарсии превратилось в середине XV
века из декоративного украшения
архитектурных сооружений, по существу, в
искусство геометрии. Панели с
интарсией часто воспроизводили уличные сцены
или реальные или воображаемые
архитектурные ансамбли в перспективе, как
если бы они были видны в открытое
окно. Многие панели размещались на
дверцах шкафов. Каждая панель создает
иллюзию трехмерной сцены, и это
достигается соблюдением законов геометрии
при построении сцены. Внезапный
расцвет интарсии совпадает по времени с
попытками Возрождения дать искусству
математическую основу, и история ее
возникновения отражает присущее
Возрождению слияние искусства, математики и
философии.
Практическое изготовление панели
требовало отобрать и вырезать большое
число (около 1000) кусочков эбенового
(черного) дерева, кипариса, самшита,
грецкого ореха и фруктовых деревьев
различного цвета и текстуры, в
соответствии с предварительно выполненным
рисунком. Помещенные на доску из
грецкого ореха, склеенные и лакированные,
иногда протравленные или обожженные
для усиления контраста или иллюзии
глубины, эти кусочки составляли
контуры фигур.
Рисунок требовал соблюдения
законов перспективы. Один из создателей
теории, Альберти, писал: «Я рисую
прямоугольник, который я рассматриваю как
17
Удолвнноя
точка
Рис. 13. Перспектива по Альберти
Рис. 14. Панель Фра Джиованни
открытое окно, через которое виден
объект, подлежащий изображению».
Альберти рисует фигуру человека, принимает
третью часть высоты фигуры за единицу
длины, выбирает «исчезающую точку»
на высоте головы человека и соединяет
ее с масштабными метками на
подоконнике. Далее проводится линия горизонта
и на ней выбирается «удаленная точка»,
которая также соединяется с
масштабными метками «диагоналями».
Пересечение диагоналей с рамкой окна
определяет горизонтальные линии, и в
результате возникает сетка для изображения
различных трехмерных сцен (рис. 13).
Известным мастером интарсии был
Фра Джиованни да Верона, фото одной
из панелей которого приведено на
рис. 14. Вверху изображен 72-гранник —
символ архитектуры. В центре —
инструменты, которые использовались
геометрами и практиками интарсии: циркуль,
линейка, угольник и правильный
треугольник. Инкрустированная надпись на
ленте (по гречески): «Таковы
инструменты инкрустации».
Внизу — mazzocchio, головной убор
состоятельных флорентийцев и символ
объемной геометрии. Конструкция этого
кольца из правильных многогранников,
ввиду его сложности, привлекала
внимание многих теоретиков (наиболее
известны работы Уччелло и Барбаро). При
построении перспективы mazzocchio
Барбаро использовал, по существу, метод
Альберти (рис. 15, а — е).
9 а
'f^^Y
V А
9 а
h 16
—*г~\<
\ /i
h f6
9 Юа б л с 12a ei3 / f* g
Рис. 15. Построение перспективы
18
Удаленная
точка
Исчезающая точка
Вначале два равносторонних
восьмиугольника помещаются на равных
расстояниях от вертикальной прямой и
соединяются четырьмя горизонтальными
линиями, представляющими четыре
плоскости mazzocchio, а вершины
восьмиугольников помечаются. Далее линии
1—8, 9—16, а — Ли/ — р становятся
диаметрами четырех концентрических
полуокружностей, каждая из которых
19
Рис 16. Стереопара геометрически правильного mazzocchio
l*4v .
Рис 17. Стереопара mazzocchio Фра Джиованни
делится на равные дуги, как указано на
рис. 15, б; концы дуг помечаются и
соединяются прямыми отрезками. В
результате мы получаем вид mazzocchio
сверху.
Затем нужно перенести точки,
полученные на втором этапе, на конструкцию
первого этапа: опускаем вертикальную
прямую из этих точек до пересечения
с соответствующей горизонтальной
линией начальной конструкции. Все точки
9—16 и а — h, например, проецируются
на линию, представляющую крышку, и
линию, представляющую дно mazzocchio.
На следующем этапе, согласно Альберти,
каждая из восьми точек 9—16 крышки
mazzocchio соединяется с удаленной
точкой, и через точки пересечения
диагоналей с вертикалью проводятся
горизонтальные прямые. Такая же процедура
20
проводится с каждым из двух
концентрических многоугольников в каждой из
четырех плоскостей. На следующем этапе
(см. рис. 15, д) от точек начальной
конструкции проводятся вертикальные
линии до пересечения с линией,
изображающей плоскость крышки mazzocchio, a
затем — до исчезающей точки.
Пересечения этих последних линий с
горизонтальными прямыми предыдущего этапа
дают крышку mazzocchio в перспективе;
аналогично строится перспектива семи
оставшихся плоскостей.
Программа 3D_MAZ.BAS,
рисующая mazzocchio и его стереопару,
приведена в Приложении; эта стереопара
изображена на рис. 16, а компьютерная
стереопара mazzocchio с панели Фра
Джиованни — на рис. 17.
Сложные объекты
Прежде всего возникает вопрос: где
проходит граница между простым и
сложным?
Известно, что многие художники
создают легко узнаваемые персонажи,
рисунки различных объектов или явлений
природы, обходясь минимальным числом
штрихов или точек, хотя эти персонажи,
объекты или явления, безусловно, по
сути своей являются подчас весьма
непростыми. По-видимому, дело в том, что эти
персонажи и ситуации привычны,
типичны, хорошо известны — и поэтому легко
узнаваемы.
Говоря о степени сложности
изображения, можно говорить о двух ее
сторонах: о сложности элементов
изображения и о сложности самой сцены
(конечно, такое разделение достаточно
условно).
Рассмотрим сначала отдельный
объект и различную сложность элементов.
При рассматривании обычного (не
стереоскопического) рисунка объемного
объекта, состоящего из небольшого
числа точек, наше воображение при
узнавании «достраивает» рисунок, и мы
воспринимаем его как изображение именно
объемного объекта, хотя это всего лишь
несколько точек на плоском листе (или
экране): мы можем объяснить, как
расположены, по нашему впечатлению, эти
точки в пространстве.
Подобный же процесс происходит,
когда обычный рисунок объемного
объекта состоит из нескольких линий —
плоские линии на листе воспринимаются
как пространственные кривые.
Если на рисунке объемного объекта
имеются ограниченные явными линиями
двумерные области (либо «пустые», либо
в той или иной степени заполненные
точками), эти плоские области листа
воспринимаются как поверхности,
расположенные в трехмерном пространстве. То
же происходит, когда эти двумерные
области на листе различаются текстурой,
освещенностью или цветом, а явных
линий, разделяющих их, нет — двумерные
области и здесь будут восприниматься
как поверхности трехмерных тел.
Таким образом, узнавание объемного
объекта позволяет воспринимать плоский
узор простых или сложных элементов
(точек, линий, двумерных областей)
обычного (не стереоскопического)
рисунка или фотографии как трехмерное тело.
Что же касается не отдельного
объекта, а сложной сцены, то при ее
восприятии возникает иерархия образов: в
различных местах трехмерного пространства
расположены трехмерные тела, которые
сами могут иметь сложные трехмерные
составные части или детали, и т. д.—
и все это многообразие трехмерных
объектов составлено из элементов
различной сложности — точек, линий,
двумерных областей на плоском листе.
Когда мы конструируем
компьютерные стереопары, исходя из обычного
рисунка или фотографии, мы должны
составить представление о пространственной
глубине каждой точки изображения,
чтобы затем провести построение по
формулам (3) — (6). При этом нужно иметь в
виду, что между фотографией и
рисунком имеется существенное различие: в
фотографии всегда сохраняется
перспектива, а в рисунке или картине ее может
не быть.
Анализом изображения художниками
внешнего мира на плоском холсте или
бумаге занимаются многие
искусствоведы. В разные эпохи мастерами
использовались разнообразные способы
передачи пространственной глубины (см.,
например, [18]) — от геометрически
правильного проецирования видимой или
воображаемой трехмерной сцены на пло-
21
скость и до почти полного отказа от
такого проецирования.
Поэтому попытка построить
стереопару по картине или рисунку
художника может оказаться значительно менее
успешной, чем построение стереопары
по обычной (или электронной и т. п.)
фотографии — это в сильной степени
зависит от того, придерживается ли
мастер в своей передаче сцены (или в
портрете, натюрморте) законов какой-
либо (параллельной, прямой, обратной
и т. д.) перспективы.
Подходы к анализу (или к
построению) стереоизображений различны для
различных сцен. Ниже мы рассмотрим
примеры построения стереопар, имея в
виду наиболее распространенные жанры
живописи (а также и фотографии):
пейзаж, натюрморт и портрет.
Таким образом, конструируя
стереопары сложных объектов из исходного
изображения, мы должны учитывать три
обстоятельства:
1) каковы элементы изображения —
точки, линии, двумерные области;
2) какова внутренняя степень
сложности сцены;
3) фотография это или рисунок.
Пейзаж, натюрморт и портрет:
стереоизображения. По-видимому, синтез
стереоизображений для случая пейзажа
наиболее прост. Здесь, как правило,
сцену составляют отдельные объекты,
которые в реальности были
существенно разнесены по глубине сцены. В
различных системах перспективы художники по-
разному передавали глубину, и эти
особенности нужно учитывать при
построении стереопары.
На рис. 18 приведена
компьютерная стереопара, исходным изображением
для которой была часть фотографии
картины китайского художника Чен-Тао
(XVI—XVII век) «Горный пейзаж». В
работах китайских и японских
художников, используется «параллельная
перспектива» (аксонометрия) —
своеобразный компромисс между «истиной
отдельного» — предмета — и «истиной
целого» — пространства. В первичной
клетке, с помощью которой прежде
всего выражаются пространственные
отношения на плоскости —
прямоугольнике,— углы скашиваются, но стороны
сохраняют параллельность. В последнем
можно усмотреть традицию костантного
восприятия. Скошенность углов при
параллельности сторон позволяет
примирить принцип константности в передаче
предмета с принципом связности в
передаче пространства. Действительно, в
китайских свитках есть общее
пространство изображаемого. В отличие от
древнеегипетских росписей, где масштабы
фигур и предметов зависели от их
символических значений, здесь появляется
единый масштаб в изображении мира,
основанный на представлении о
равенстве предметов соответствующих
классов» [18].
При построении стереопары в этом
случае учтена разная степень
удаленности от зрителя различных объектов
пейзажа и непрерывность поверхности,
на которой растут деревья.
На рис. 19 приведена
компьютерная стереопара, исходным изображением
для которой был рисунок М. В. Добу-
жинского «Санкт-Петербург» (фото из
монографии [19]). При построении
стереопары принималось во внимание то
Рис. 18. «Горный
пейзаж»
22
Рис. 19.
«Санкт-Петербург»
Рис. 20. «Дорога»
обстоятельство, что на этом рисунке
(выполненном с использованием прямой
перспективы [18]), ясно видна точка
перспективы. Это позволяет сделать
предположение о величинах пространственных
координат различных объектов,
изображенных на рисунке; при этом к
построению изображений зданий и, например,
облаков, в силу их различной
удаленности, необходим различный подход.
Подобно этим двум стереопарам,
построены и стереоизображения,
приведенные на следующих рисунках (рис. 20—
23). Здесь представлены рисунок
«Дорога», выполненный А. С. Пушкиным,
«Замок» М. Эшера, «Вавилонская
башня» П. Брейгеля и фрагмент
внутренности разрушенного чернобыльского
реактора [20].
На рис. 24 приведена стереопара
иллюстрации В. А. Серова к басне
И. А. Крылова «Квартет», построенная
аналогично стереопейзажу; как в
большинстве приведенных в настоящей
брошюре компьютерных стереопар, для
простоты левой половиной стереопары
служит исходная фотография.
Своеобразный пример «космического
пейзажа» приведен на рис. 25, где
изображена стереопара участка Вселенной.
Исходным материалом послужила часть
обычного (не стереоскопического)
изображения, на которой условно
изображена Вселенная. Коллекция 2 млн.
галактик, собранная астрономами
Оксфордского университета, выявила
неоднородности распределения галактик во
Вселенной, намного превышающие те,
что получаются при теоретических
оценках [24]. Исходное изображение состоит
23
Рис. 21. «3aiv
Рис. 22. «Вавилонская
башня»
из тысяч пикселов (точек на экране
монитора компьютера) различной яркости,
причем координаты каждого пиксела
однозначно соответствуют координатам
некоторого участка неба, а величина
яркости пиксела определяет количество
видимых в данном направлении
галактик: цвет черный, если галактики
отсутствуют, серый — от одной до двад-
Рис. 23.
Чернобыльский реактор
цати галактик, белый — больше
двадцати галактик.
Здесь при построении стереопары
использовалось следующее
предположение: чем меньше яркость участка
неба (полученная при оцифровке
фотографии сканером), тем дальше
находятся галактики, дающие основной вклад
в светимость этого участка неба.
24
Рис. 24. «Квартет»
Рис. 25. Вселенная
Рис. 26. «Роза»
25
На рис. 26 приведена стереопара,
исходным изображением для которой
послужила сканированная (черно-белым
сканером) цветная фотография
натюрморта М. А. Врубеля «Роза». При
построении этой стереопары были учтены
шарообразность цветка розы, цилиндрич-
ность стакана, расположение стебля розы
как изогнутой кривой в пространстве.
Подобным же образом учитывалось
расположение предметов на
горизонтальной плоскости стола в другом
натюрморте (Р. Фальк, «Натюрморт с
фикусом»), стереопара которого
приведена на рис. 27.
Портрет, с точки зрения построения
компьютерной стереопары,— это в
некотором смысле противоположный пейзажу
случай — здесь очень важно
целостное, как говорят, гештальтное (gestalt
по-немецки — образ) восприятие
картины, с непрерывным переходом
частных (также целостных) деталей друг в
друга. Малейшие ошибки здесь сразу
видны, поэтому при конструировании
стереопары портрета необходимо при
проведении преобразований координат
точек по формулам (3) — (6) следить
за тем, чтобы эти преобразования не
создавали разрывов в изображении.
На рис. 28 приведена стереопара,
исходным изображением для которой
послужила сканированная (черно-белым
сканером) цветная фотография портрета
Ф. М. Достоевского кисти В. Г.
Перова.
Как обстоит дело со стереопарой в
случае, когда исходное изображение
состоит из небольшого числа точек и
линий? На рис. 29 приведена простей-
Рис. 27.
«Натюрморт
с фикусом»
Рис. 28. «Ф. М.
Достоевский»
26
шая компьютерная стереопара медведя,
исходным материалом для построения
стереопары послужила обычная
фотография. Видно, что и стереоизображение
в этом случае может быть тоже
простым и легко узнаваемым.
На следующих рис. 30—31
представлены стереопары по картине В. А. Серова
«Ида Рубинштейн» и рисунку А.
Модильяни «Кариатида».
Рис. 29.
Медведь
Рис. 30
«Ида Рубинштейн»
Рис. 31.
«Кариатида»
27
Шарж и карикатура. Стереокарика-
тура. Говоря о портрете и стереопорт-
рете, уместно сказать несколько слов о
шарже и стереошарже.
В [21] описан упрощенный способ
получения на компьютере шаржа на
какое-либо лицо, использующий
преобразование схематического портрета этого
лица, построенного из характерных точек
лица и линий, соединяющих некоторые
из этих точек. Характерные точки — это
зрачки глаз (1 точка), радужные
оболочки глаз (5 точек), по нескольку
точек носа, губ и т. д.— всего около
двухсот точек. Исходя из двух таких
схематических портретов — объекта и
среднестатистического портрета, строим
шарж следующим образом. Каждую из
характерных точек смещаем (в
плоскости) на вектор, пропорциональный
(коэффициент пропорциональности. 1 —
5) вектору, соединяющему эту
характерную точку на портрете-объекте и на
среднестатистическом портрете при их
наложении, после чего соединяем нужные
точки прямыми.
В Приложении приведена Программа
CARRY, использующая приведенный там
же файл STATFACE и рисующая такое
схематическое среднестатистическое лицо.
Мы воспользуемся, однако, иным
способом, позволяющим строить шарж
непосредственно по сканированной
фотографии, а именно будем применять
локальные преобразования координат точек на
сканированном портрете на плоскости,
используя ряд таких преобразований.
Полученный таким способом шарж
«Премьер-министр Уинстон Черчилль»
приведен на рис. 32; исходным
изображением служило фото из [22].
Стереопара, полученная из этого шаржа,
приведена на рис. 33.
На рис. 34 приведена стереопара,
исходным изображением для которой
послужил шарж американского карикату-
Рис. 32. Шарж
«Премьер-министр Уинстон
Черчилль»
Рис. 33. «Стереопара
«Премьер-министр
Уинстон Черчилль»
28
Рис. 34. Писатель Салман Рушди
Рис. 35. «Мартышка
и очки»
Рис. 36. Переплетенные молекулы ДНК
29
риста Д. Ливайна «Писатель Салман
Рушди».
На рис. 35 приведена стереопара
иллюстрации В. А. Серова к басне
И. А. Крылова «Мартышка и очки».
Здесь при построении стереопары также
были использованы представления о
положении в пространстве частей тела
изображенного художником животного.
Проблема неоднозначности
На рис. 36 приведена стереопара
переплетенных кольцевых молекул ДНК,
построенная по электронной
микрофотографии (левая половина стереопары).
Здесь отчетливо проявляется проблема
неоднозначности построения стереопары:
при четырех кажущихся пересечениях на
фотографии имеется 16 топологически
различных вариантов расположения в
пространстве этих двух колец ДНК и для
выбора правильного, соответствующего
действительности варианта необходимы
дополнительные сведения.
ГЛ. 4. УСЛОВНЫЕ
СТЕРЕОИЗОБРАЖЕНИЯ
Стереоизображения невидимого
Имеется целый ряд величин,
которые, являясь невидимыми, меняются в
окружающем нас трехмерном
пространстве (а также и во времени), и их
распределение в пространстве часто
интересно для практики. Это, например,
интенсивность гамма-излучения
естественных или техногенных радиоактивных
веществ, абсолютные значения вредных
атомарных или молекулярных примесей в
загрязненном воздухе, воде, земле или в
растениях, распределение температуры и
влажности воздуха и т. п.
Часто эти величины измеряются тем
или иным образом в различных точках
пространства, и тогда возможна
визуализация этих величин, в частности,
построение для них условных
стереоизображений.
На рис. 37 приведена стереопара,
изображающая распределение
нейтронного потока в активной зоне
идеализированного ядерного реактора:
поток= sin (л-х/а) • sin (л-у Ь) X
X sin (л-z/c), где х, t/,— декартовы
координаты текущей точки, а, Ь, с —
размеры активной зоны.
Стереоизображения
непрозрачных объектов
Большое значение придается в
настоящее время трехмерной визуализации
в различных медицинских диагностиках,
в частности в ЯМР,— рентгеновской и
ультразвуковой томографии.
При этом объекты, трехмерное
строение которых определяется, могут иметь
характер либо множества
пространственных кривых, либо множества
искривленных поверхностей. Если в первом
случае для визуализации удобно строить
обычную компьютерную стереопару, то
во втором случае поверхности должны
быть полупрозрачными.
Пример стереоизображения двух
вложенных друг в друга полупрозрачных
эллипсоидов вращения («яйцо»)
приведен на рис. 38.
Программа NEUTRON, создающая
такое стереоизображение, приведена в
Приложении.
ГЛ. 5. ВОССТАНОВЛЕНИЕ СЦЕНЫ
ПО ФОТОСТЕРЕОПАРЕ
Восстановление трехмерной сцены
по стереопаре
До сих пор мы говорили о
построении стереопар (а также о их
свойствах, о возможности улучшения их
качества). Есть, однако, задача, в
некотором смысле обратная задаче
построения стереопары,— это анализ
оцифрованной фотостереопары и получение
информации об изображенной на ней
трехмерной сцене.
Решение этой задачи нужно для
дистанционного определения рельефа
поверхности Земли или другой планеты,
рельефа морского дна, для автономной
навигации передвигающегося робота.
Основная идея всех подходов к этой
задаче — найти соответствующие
(иногда говорят — гомологичные) точки на
левой и правой половинах стереопары
30
Рис. 37. Распределение нейтронного потока в реакторе
Рис. 38. Стереопара
полупрозрачного «яйца»
и по расстоянию между этими точками
определить локальную глубину данной
точки в изображении сцены. Для
решения этой задачи за последнее
десятилетие было предложено много
алгоритмов: иерархические алгоритмы Марра—
Поджио—Гримсона, алгоритм взаимного
усиления точек одинаковой диспаратно-
сти Праздны, ряд нейросетевых
алгоритмов, алгоритмы восстановления
формы по тени и по изменениям
текстуры, фрактальные алгоритмы.
31
Однако задача эта очень сложна и,
по-видимому, в настоящее время далека
от решения — понимание сцены,
изображенной на стереопаре,
предполагает наличие в памяти весьма
обширных знаний о мире, и возможность
формального анализа стереопары без
этого знания представляется в общем
случае маловероятным. Это, конечно,
не исключает возможность создания
системы эффективного анализа стереопар
для ограниченной предметной области,
например, анализа рельефа, зданий,
сооружений, принадлежащих к
определенным (известным заранее) категориям.
Реконструкция сцены с выделением
прямых вертикальных линий.
При построении системы анализа
стереопар чрезвычайно существенно
уменьшить число элементов изображения —
для облегчения нахождения
соответствующих точек. В качестве примера
такого уменьшения числа исследуемых
элементов стереоизображения
рассмотрим систему, использующую для
анализа сцены только прямые линии,
присутствующие на стереопаре [23].
Авторы указывают, что для многих
сцен контур изображений содержит
достаточную для применений
информацию, и часто оказывается, что можно
анализировать не всю эту информацию,
а лишь сведения о прямых линиях,
причем особый интерес представляют
вертикальные прямые. Это относится, в
частности, к сооружениям: зданиям,
заводам, улицам, дорогам и т. п.
Работа созданной авторами [23]
системы иллюстрируется анализом
расположения деталей интерьера, исходная
стереопара которого (кадр, снятый
бинокулярной видеокамерой с расстоянием
между объективами 30 см) приведена
на рис. 39.
Анализ изображения на каждой из
половин стереопары дает следующие
параметры для каждой вертикальной
линии: горизонтальную и вертикальную
координату верхнего и нижнего концов
линии и тип каждого из концов (рис. 40).
При этом тип верхнего или нижнего
конца вертикальной линии определяется
изучением окрестности этого конца,
конкретно — выяснением, с какими линиями
граничит исследуемый конец.
Наиболее важными параметрами
являются координаты верхнего и нижнего
концов: например, чтобы две
вертикальные линии (на двух половинах
стереопары) были гомологичными,
необходимо, чтобы вертикальные координаты
их верхних концов совпадали (то же
относится и к нижним концам). Конечно,
это может быть совпадение с
точностью до нескольких пикселов,
поскольку нужно учитывать, что при съемке
двумя объективами видеокамеры и
дальнейшей оцифровке изображения
возможно появление некоторой ошибки.
Существенна также информация о
типе конца: если, например, нижний
конец некоторой вертикальной линии
принадлежит к определенному типу, то
гомолог этой линии должен
принадлежать к ограниченному набору типов,
рис. 41 (точного совпадения типов у
гомологов может не быть из-за того, что
некоторые части сцены видны только
через один объектив). Эта информация
используется, если при нахождении
гомологов по данным о координатах концов
точности не хватает, т. е. возникает
неоднозначность; в этом случае
используется дополнительная информация о
типах концов, облегчающая правильный
выбор гомолога.
После того как гомологи для всех
вертикальных линий найдены, по разнице
их горизонтальных координат (по диспа-
ратности) определяется расстояние
каждой вертикальной линии от камеры и
реконструируется вся трехмерная сцена
(рис. 42).
fc-iiiwilii'rTifai
i^L^ii
ы шт i 'in ч
1йШ*3*»1
"■...■!-
... I • 4. |
^Шя*мшшШШшЫ1Ш
Щштй
•'Т*т*цгг
Рис. 39. Стереопара
интерьера, снятая
видеокамерой
32
\J- ^
Ц -*
L V
J si
Ф
Л
к
)
ч]
>
_ц
_\_\
Рис. 40 Типы концов вертикальных прямых
Рис 41. Соответствие типов концов
линий-гомологов
К
\ 1
\7fiM
\
\
\
\
\
\
\\
5,2м\\
\ \
>
i 6,6м
Рис. 42. Реконструкция трехмерной сцены
интерьера
Реконструкция сцены
в интерактивном режиме
В ряде случаев для восстановления
трехмерной структуры объекта или сцены
по стереопаре нужно найти не
слишком большое число гомологических точек.
В этом случае возможен компромисс —
компьютер только помогает человеку,
который и отмечает (оцифровывает, ра-
Рис. 43. Опубликованная стереопара молекулы
лизоцима
ботая, например, с мышью) ряд
важных пар точек — гомологов на
фотостереопаре, выведенной на экран
компьютера. Примером может служить
восстановление структуры лизоцима по его
опубликованной стереопаре (рис. 43);
результат реконструкции (стереопара,
построенная по найденным координатам
для той же точки зрения, что и
исходная стереопара) изображен на рис. 44.
ЗАКЛЮЧЕНИЕ
Обсуждая новое, не вполне
осознанное, непонятное, мы часто используем
(в переносном смысле) выражения,
относящиеся к области зрительного
восприятия. «Рассмотреть с разных
сторон или с разных точек зрения»,
«глубинное понимание», «плоское
мышление», «одностороннее освещение
события» — вот лишь немногие примеры
таких выражений.
Можно предположить, что и другие
понятия, эффекты и явления, о которых
мы (в связи с восприятием
стереоизображений) упоминали в этой брошюре,
имеют более широкое (или глубокое?)
значение для нашего мышления. Это
соотношение локального и глобального в
описании объектов, дефекты описания и их
роль в искажении восприятия и
понимания сути объектов и явлений,
узнавание знакомых объектов (явлений),
возможности и механизмы мысленной
интерполяции и экстраполяции.
Быть может, аналогия со
зрительным глубинным восприятием поможет
нам глубже проникать в суть вещей.
33
Рис. 44. Реконструированная стереопара молекулы лизоцима
Что же касается прикладной
стороны вопроса — вероятно,
стереоизображения сложных (в частности,
невидимых) объектов, стереорисунки и стерео-
картины, полученные с помощью
компьютера (равно как и стереоиллюстрация
и объемное телевидение [25]), найдут
широкое применение в науке, технике
и искусстве.
ПРИЛОЖЕНИЕ
Координаты
начального участка
С-альфа молекулы
миоглобина
a$=nmbn2.bas"
open а$ for input as #2
gosub 2000 'from file
gosub ctr
center of gravity:>cl
gosub 7000 'a(D=x(i)~xl
VAL
LEU
SER
GLU
GLY
GLU
TRP
GLN
LEU
VAL
LEU
HIS
VAL
TRP
ALA
LYS
VAL
GLU
ALA
ASP
VAL
ALA
GLY
HIS
GLY
GLN
ASP
ILE
-4.097
-.754
-1.354
.670
2.215
3.552
4.679
6.661
8.479
9.257
10.663
12.600
14.693
15.064
16.393
19.258
19.561
20.066
23.191
25.007
22.600
25.346
26.361
22.807
22.313
25.303
24.464
20.854
ПРОГРАММА
screen 9
key(l) on
on k
ey(l) qos
15.809
13.964
12.311
13.514
10.066
Ю.623
14.093
12.538
10.442
13.417
15.727
13.010
12.608
16.310
16.979
14.838
16.840
20.099
18.657
19.140
21.269
22.506
18.908
17.660
20.833
20.400
16.721
17.439
15.817
17.241
20.591
23.597
23.262
19.745
20.790
23.610
21.023
18.795
21.484
23.325
20.175
19.511
23.012
21.690
18.473
20.368
21.996
18.691
16.655
i4.328
13.469
12.920
10.880
8.565
8.068
7.140
ST__IMAGE
ub 1000<
'J
sss:
for pp=l to 36
o0=3.14/6
if pp<6 then o=o0 else o=-o0
gosub xrot rotation
gosub yrot
gosub zrot
gosub 8000 'x(i)=a(i)+xi
delay .5
els
Iane(0,0)-(640,350),15,bf
gosub stereo
'C-alfa stereoimage
gosub 5000 'a(i)=an(i)
next pp
Ю000
print "END"
end
xrot:
со = cos(o)
si = sin(o)
for i=l to i3
bn(i) = b(i)*co + c(i)*si
cn(i) = c(i)*co - b(i)*si
an(i) = a(i)
next i
return
yrot:
со = cos(o)
si = sin(o)
for i=l to i3
num=300
dim x(num), y(num), z(num)
dim xl(num)?x2(num),yl(num)
dim ul(num)r.ur(num).v(num)
dim a(num), b(num), c(num)
dim an(num),bn(num)?cn(num)
an(i) = a(i)*co + c(i)*si
cn(i) = c(i)*co - a(i)*si
bn(i) = b(i)
next i
return
d=2
a=320
b=150
zrot:
со = cos(o)
si = sin(o)
for i=l to i3
35
an<i)=a(i)*co+b(i)*si
bn(i)=b(i)*co-a(:tf*si
cn(i)=c(:tf
next i
return
5000
for i=l to i3
a(i) = an(i)
c(i) = cn(i)
b(i) = bn(i)
next i
return
SOOO
for i=l to i3
>:(i)=an(i)+xi
y(i)=bn(i)+yl
z(i)=cn(i)+zl
next i
return
stereo:
999 R=100
1=400
dd=6
mm=6
for i=l to i3
xl(i)=<x(i)-dd)*l/(l-z(i))
x2(i)=(x(i)+dd)*l/(l-z(i))
yl(i)=y<i>*l/(l-z(i))
next i
for i=l to i3
ul(i)=(320-R)+mfn*xl(i)
ur(i)=(320+R)+mm*x2(i)
v(i)=150-mm*yl(i)
next i
nn=l
col=0
for i=l to i3—nn
P=ul(i)
q=v(i)
r=ul(i+nn)
5=v(i+nn)
line(p,q)-(r,5)?col
pi=ur(i)
ql=v(i)
rl=ur(i+nn)
sl=v(i+nn)
lirie(pl,qi)-(ri.sl)-col
next i
return
2000
for i=i to num-i
on error goto 2200
xi=x
yl=y
zl=z
ul=d*(xl-.0*zl)
vl=d*(yl-.0*zl)
input #2,x
input #2,у
input #2?z
хШ=х
V(i)=y
z(i)=z
u=d*(x-.0*z)
v=d*:(y-.0*z)
if i=l then 2100
line(a-Hil,b-vlMa+u.Ib--v)j1i4
2100
next i
2200
close #2
locate 1,21
i3=i
return
ctr:
x0=0
yO=0
z0=0
for i=l to i3
x0=x0+x(i)
z0=z0+z(i)
yO=yO+y(i)
next i
xl=x0/i3
yl=y0/i3
zl=z0/i3
ul=d*(xi-.0*zl)
vl=d*(yl-.0*zi)
return
7000
for i=l to i3
a(i) = x(i) - xl
b(i) = y(i) - yl
c(i) = z(i} - zl
next i
return
ПРОГРАММА 3D_LEAF.BAS
key(l) on
on key(i) gosub Ю000
screen 9
line(0,OW650,350),15,bf
d=15
ttt:
r=rnd
if r<-05 then
gosub 1
end if
if r>.5 and r<-9 then
gosub 2
end if
if r>.9 and r<-95 then
gosub 3
end if
if r>.95 then
gosub 4
end if
goto ttt
10000
print "END"
end
1
x=0
y=y*.17
col = 11
z=x
gosub stereo
return
r>
x=x*.84962+y*.0255
y=-x*.0255+y*.84962+3*d
col = 12
z=x
gosub stereo
return
х=-х*Л554+у*.235
y=x*.19583+y*-18648+1.2*d
col = 13
z=-x*1.5
gosub stereo
return
36
х=х*Л554-у*.235
y=x*.19583+y*.18648+3*d
col = 9
z=x*4
gosub stereo
return
stereo:
999
1 = ЮОО
dd = 30
777 col=0
xl= (x-dd) * l/( 1-z )
yl=y * l/< 1-2 )
x2=(x+dd) * l/( 1-z )
y2=y * l/( 1-z )
pset( 100+xl, 350-yl );,col
pset( 300+x2 , 350-y2 ),col
return
ПРОГРАММА 3D TREE
key(l) on
on key(l) gosub ЮООО
screen 9
randomize
els
line(0,0)-(650?350),15?bf
gosub tree
ЮООО
end
tree:
sf=.4
x=0
y=0
r5=(l*rnd+0)
r6=(l*rnd+0)
dx=20*(l+r5)/sf
dy=-10*(l+.5*r6}/sf
dz=5/sf
for i=l to 5
r3=(l*rnd+0)
r4=(l*rnd-K»
dx=(-l)Ai*dx*<l+.3*r3)/1.3
dy=abs(dy*(l+.3*r4))/l.l
dz=dz*(-l}4i
u=x+dx*(i/5)-41.0
v=y+dy
w=z+dz
tt=.4
for s=l to 20/i
>IX=M+tt*5
yy=y-tt*s
UU=U+tt*S
vv=v-tt*s
ww=w
gosub stereo
dwll=0
u!2=u2+dull
vl2=v2+dvll
wi2=w2+dwll
xx=u2
yy=v2
zz=w2
uu=ul2
vv=vl2
ww=wl2
Qosub stereo
next s
for ml=l to 4
rl=(l*rnd+0)
r2=(l*rnd+0)
du=rl*1.5*dx
dv=r2*2*dy
dw=dz*(-l)* m
ul=u+du
vl=v+dv
wl=w+dw
xx=u
yy=V
zz=w
ULI=U1
vv=vl
ww=wl
next 11
next 1
next ml
X=Ll
y=v
z=w
next i
return
stereo:
999 R=1D0
1=100
dd=12
mm=-9
col=15
pil=mm*(xx-dd)*l/(l--zz)
plr=mm*(xx+dd)*l/(l-zz)
qi=mm*yy*l/(l-zz)
gosub stereo
for 1=1 to 4
r7=(l*rnd+0)
r8=(i*rnd+0)
dul=(-l)-^l*r7*l*dx*3/4
dvl=(iri*r8*l*dy*3/4
dwi=„5*dz*(-in
u2=ul+dul
v2=vl+dvl
w2=wl+dwl
xx=ul
yy=vl
zz=wl
uu=u2
vv=v2
ww=w2
oosub stereo
p21=mm*(uu-dd)*l/(l-ww)
p2r=mm*(uu+dd)*l/(l-ww)
q2=mm*vv*l/(l-ww)
col=0
xl=200+pll
yl=350-ql
x2=200+p21
y2=350-q2
iine(xl,yl)-(x2,y2),col
x3=400+plr
у3=350—ql
x4=400+p2r
y4=350-q2
1зле(хЗ-уЗ)-(х4?у4)-со1
return
for 11=1 to 6
rl7=(i*rnd+0>
rl8=(l*rnd+0)
dull=-(-l)^ll*rl7*l*dx*3/4
dvll=-<i)All*rlS*l*dy*3/4
37
3-D FIR
for m=l to 1
key(l) on
on key(l) gosub ЮООО
screen 9
randomize 2—5 8 10
line(0,0)-(640,350),15,bf
gosub fir
ЮООО
end
firs*
cO=to
cl=ll
c2=12
c3=13
a=300
b=3C0
x=0
y=0
2=0
r5=rnd
r6=rnd
dx=30*(l+r5)
dy=-l„5*(l+.5*r6)*2
dz=(l+.5*r5)*dy
for i=l to ЗО
r3=rnd
r4=rnd
dx=(-irki*dx*(l+.3*r3)/1.3
dy=abs(dy*(l+.3*r4))/l.l
dz=dy
u=x+dx/100
v=y+dy
w=z+dz
tt=.4
for s=l to 20/i
xx=x+tt*s
yy=y—tt<s
zz=z
uu=4i+tt*s
vv=v-tt*s
WW—W
col=to
gosub stereo
next s
rl«rnd
r2«rnd
du«rl*2*dx
dv«-r2*3*dy
dw=dv
ul«u+du
vl«v+dv
wl=w+dw
xx«u
yy«V
zz-w
uu=ul
vv—vl
ww»wl
col=ll
gosub stereo
for 1«1 to 1
r7=rnd
rB=rnd
dul=(l)'4l*r7*dx*3
dvl=-(l)'4L*r8*dy*2
dwl=dvi
u2=ul+dul
v2=vl+dvl
w2=wl+dwl
xx=ul
yy=vl
zz=wl
uu=u2
w=v2
ww=w2
col=12
gosub stereo
for 11=1 to 10'14
r!7=rnd
rl8=rnd
dull=-<~l)-ni*rl7*l*dx*3/4
dvll=-(l)"ll$rl8*l»dy
dwll=dvll$(-l)>4ll
ul2=u2+dull
vl2=v2+dvll
wl2=w2+dwll
xx=u2
yy»v2
zz=w2
uu=ul2
vv=vl2
ww=wl2
col«=13
gosub stereo
next 11
next 1
38
next m
x=u
y«v
next i
return
stereo:
999 R=100
1=100
dd=12
nun**.*?
pll«mm*(xx-dd)*l/(l-zz)
plr=mm*(xx+dd)*l/(l-zz)
ql=mm * у у * l/(l-2z)
p21«mm*(uu-dd)*l/U-ww)
p2r=mm*(uu+dd)*l/(l-ww)
q2=mm*vv*l/(l-ww)
col=0
line(100+pll,300-ql)-
-(100+p21,300-q2),col
line(400+plr,300-ql>-
-(400+p2r,300-q2),col
return
ПРОГРАММА ST_CUBE
screen 9
key(l) on
on key(l) gosub IOOOO
n=8
dim x(n), y(n), z(n)
dim xl(n),x2(n)
dim yl(n),ul(n)
dim ur(n),v(n)
dim a(n), b(n), c(n)
dim an(n),bn(n),cn(n)
i3=8
d=2
gosub cube
gosub ctr
center of gravitysxl
gosub 7000 a(i)=x(i)-xl
line(0,0)-(650,350),15-bf
555:
o0= 3.14 / 90
for pp=l to 180
if pp<90 then o=o0 else o=—oO
gosub xrot 'rotation
gosub yrot
gosub zrot
gosub 8000 'x(i)=a(i) + xl
fl=0
f2=0
gosub stereol
fl=15
f2=15
gosub stereol
gosub 5000 'a(i) = an(i)
next pp
goto sss
10000
print "END"
end
xrot:
со = cos(o)
si = sin(o)
for i=l to i3
Ьпф = b(i^*co+c(D*si
cn(i) = c(i)*co-b(i)*si
an(i) = a(i)
next i
return
yrot:
со = cos(o)
si = sin(o)
for i=l to i3
an(i) = a(i)*co+c(i)*si
cn(i) = c(i)*co-a(i)*si
bn(i) = b(i)
next i
return
zrot:
со = cos(o)
si = sin(o)
for i=l to i3
an(i) = a(i)*co+b(i)*si
bn(i) = b(i)*co-a(i)*si
cn(i) = сШ
next i
return
5000
for i=l to i3
a(i) = an(i)
c(i) = cn(i)
b(i) = bn(i)
next i
return
8000
for i=l to i3
x(i)=an(i)+xl
y(i)=bn(i)+yi
z(i)=cn(i)+zi
next i
return
ctr:
x0=0
y0=0
z0=0
for i=l to i3
x0=x0+x(i)
z0=z0+z(i)
yO=yO+y(i)
next i
xi=x0/i3
yl=y0/i3
zl=z0/i3
ul=d*(xl-.0*zl>
vl=d*(yl-.0*zl)
return
7000
for i=l to i3
a(i) = x(i) - xl
b(i) = y(i) - yi
c(i) = z(i) - zi
next i
return
stereo!:
x00=350
R=150
1=100
dd=6
mm=2
for i=l to i3
xl(i)=(x(i)-dd)*l/(l-z(i))
x2(i)=(x(i)+dd)*l/(l-z(i»
yi(i)=y(i)*l/(l-z<i»
next i
for i=l to 13
ul(i)=(x00+R)+mm*xl(i)
ur(i)=(x00-R)+mm*x2(i)
v(i)=250-mm*yl(i)
next i
for i=l to i3-l
line(ul(i),v(i»
-(uKi+l^vd+D^fl
line(ur(i),v(i))
-(ur(i+l),v(i+i)),fl
line(ul<l>,v<l»
-(ul(4):iv(4)):,f2
line(ul(l>.,v(l»
~(и1(6)^(6))^2
lihe(ul(5)5v(5))
~(и1(8)^(8))^2
line(ul(3),v(3))
-(и1(8)^(8))^2
line(ul(2),v(2)>
-(ul(7):iy(7)),f2
line(ur(l),v(l)}
-(ur(4),v(4)),f2
line(ur(l),v(l»
-(ur(6),v<6)).,f2
line(ur(5),v(5))
-<ur(8),v(8))?f2
line(ur(3),v(3))
-<ur(8)?v<8)).f2
line(ur(2),v(2))
-(ur(7)5v(7»,f2
next i
return
cube:
for i=l to i3
if i=l then
x(i)=0
y(i)=0
z(i)=l
end if
if i=2 then
x(i)=0
y(i)=l
z(i^=l
end if
if i=3 then
x(i)=l
y(i)=l
z(i)=l
end if
if i=4 then
хШ=1
y(i)=0
z(i)=l
end if
if i=5 then
x(i)=l
y(i)=0
z(i)=0
end if
if i=6 then
x(i)=0
y(i)=0
z(i)=0
end if
if i=7 then
x(i)=0
y(i)=l-
z(i)=0
end if
if i=8 then
x(tt=l
y(i)=l
z(i)=0
end if
next i
ff=20
for i=l to i3
x(i)=ff*x(i)
y(i)=ff*y(i)
zW=ff*z(i)
next i
return
stereo:
999 R=100
1=100
dd=6
mm=3
for i=l to i3
xl(i)=(x(i)-dd)*l/(l-z(i))
x2(i)=(x(D+dd)*l/(l-z(i))
yl(i)=y(i)*l/(l-z(i))
next i
for i=l to i3
ul(i)=(320+R)+mm*xl(i)
ur(i)=(320-R)+mm#x2(i)
v(i)=150-mm*yl(i)
next i
for i=l to i3
psetUiKi^vd))
pset(ur(D,v(i))
next i
return
40
STCUBE
screen 9
key(l) on
on key(l) gosub ЮООО
num=8
dim x(num),y(num),z(num)
dim xl(num),x2(num),yl(num)
dim ul(num),ur(num),v(num)
dim a(num),b(num),c(num)
dim an(num),bn(num),cn(num)
mm=5
i3=8
d=2
gosub cube
gosub ctr
gosub 7000
line(0,0)-(650,350),15,bf
for pp=l to 180
if pp<90 then al= 3.14 / 90
else al= - 3.14 / 90
if pp<10 then
gosub xrot
end if
if pp>=10 then
gosub yrot
end if
gosub 8000
coll=0
col2=0
gosub stereol
if pp=25 then
delay 2
els
line(0,0)-(650,350),15,bf
gosub small
goto ЮООО
end if
xrot:
со = cos(al)
si в sin(al)
for i=l to i3
bn(i)= b(i) * со
+ c(i) t si
cn(i) = c(i) t со
- b(i) * si
an(i) = a(i)
next i
return
yrot:
со = cos(al)
si =s sin(al)
for i=l to i3
an(i) = a(i) * со
+ c(i) * si
cn(i) = c(i) t со
- a(i) * si
bn(i) = Ьф
next i
return
zrot:
со = cos(al)
si = sin(al)
for i=l to i3
an(i) = a(i) * со
+ b(i) * si
bn(i) = b(i) * со
- a(i) * si
cn(i) = c(i)
next i
return
coll=15
col2=15
gosub stereol
gosub 5000
next pp
ЮООО
'print "END"
end
5000
for i=l to i3
a(i) = an(i)
c(i) « cn(i)
b(i) = bn(i}
next i.
return
41
8000
for i=i to i3
x(i)=an(i)+xl
y(i)=bn(i)+yl
z(i)=cn(i)+zl
next i
return
stereo:
999 R=100
x0=150
1=100
dd=6
mro=3
for i=l to i3
xl(i)=(x(i)-dd)*l/(l-z<i))
x2(i)=(x(iHdd)*l/(l-z(i))
yl<i)=y<i)*l/(l-z(i))
next i
for i=l to i3
ul(i)=(xO+R)+mm*xl(i)
ur(i)=(xO-R)+mm*x2<i)
v(i)=150-mm*yl(i)
next i
for i=l to i3
pset(ul(i),v(i))
pset(ur(i),v(i))
next i
return
ctrs
x0=0
y0=0
z0=0
for i=l to i3
xO=xO+x(i)
zO=zO+z(i)
yO=yO+y(i)
next i
xl=x0/i3
yl=y0/i3
zl=z0/i3
ul=d*(xl-.0*zl)
vl=d*(yl-.0*zl)
return
7000
for i=l to i3
a(i) = x(i) - xl
b(i) = y(i) - yl
c(i) = z(i) - zl
next i
return
stereol:
xOO=200
R=150
1=480
dd=6
'mm=5
for i=l to i3
xl(i)=(x(i)-dd)*l/<l-z(i))
x2(i)=(x(i)+dd)*l/(l-z(i))
yl(i)=y(i)*l/(l-z(i))
next i
for i=l to £3
ul(i)=(x00+R)+mm*xl(i)
ur(i)=(xOO-R)+mm*x2(i)
v(i)=300-mm*yl(i)
next i
for i=l to i3-l
line(ul(i),v(i»
-(ul(i+l),v(i+l)),coll
line(ur(i),v(i))
-(ur(i+l),v(i+l)),coll
line(ul(l),v(l))
-(ul(4),v<4)),col2
line(ul(l),v(l»
-(ul(6),v(6)),col2
line(ul(5),v(5))
-(ul<8),v(8)),col2
line(ul(3),v(3»
-(ul(8),v(8)),col2
line(ul(2),v(2))
-(ul(7),v(7)),col2
line(ur(l),v(l))
-(ur(4),v(4)),col2
line(ur(l),v(l))
-(ur(6),v(6)),col2
line(ur(5),v(5»
-<ur(8),v(8)),col2
line(ur(3),v(3»
-<ur(8),v<8)),col2
line(ur(2),v(2))
. -(ur(7),v(7)),col2
next i
return
cube:
for i=l to i3
if i=l then
x(i)=0
y(i)=0
z(i)=l
then
if i=2
x(i)=0
y<i)«l
z(i)=l
end if
if i=3
x(i)=l
y(i)*l
z(i)»l
end if
if i-4
x(i)«l
y(«~o
z(i)«l
end if
if i=5
x(i)=l
y(i)=0
z(i)=0
end if
if i=6
x(i)=0
y(i)=0
z(i)=0
end if
if i=7
x(i)=0
y(i)=l
z(i)=0
end if
if i=8
x(i*=l
y(i>=l
z<i*=0
end if
next i
for i=l to
x(i)=x(i>+.5
y<i)=y<i)+.5
z<i)=z(i)+.5
next i
ff=10'20
for i=l to
x(i)=ff*x(i)
y(i>=ff*y(i)
z(i)=ff*z(i)
next i
return
then
then
then
then
then
then
small:
mm=5
42
for k=l to 225
if k<100 then mm=mm/1.02
else mnv=mm*1.02
coll=0
col2=0
gosub stereol
if k=100 then delay 2
coll=15
col2=15
gosub stereol
next к
coll=0
col2=0
gosub stereol
return
3D BROWN
key(l) on
on key(l) gosub 10000
screen 9
randomize
line(0f0M640,350),lS,bf
gosub brown
10000
end
browns
dx=5
dy=5
for m*l to lOOO
1
rl=rnd
r2«rnd
r3«rnd
r4=rnd
r5=rnd
if r3>„5 then kl«l else kl«-l
if r4>.5 then k2»l else k2«-l
if r5>-5 then k3=l else k3=-l
du=kl*rl*dx
dv=-k2*r2*dy
dw»—k3*dv
if sqr(du>42-t-dvy42+dw^2»3 then
1 else 2
2
ul«u+du
vl^v-t-dv
wl=w+dw
xxeu
yy*v
zz»w
uu=ul
vv=vl
ww—wl
gosub stereo
ueul
v«=vl
w=wl
next m
x-u
yr=V
return
stereos
999 R=100
b=200
1«100
dd=12
mm=l-9
col«0
pll=mm*(xx-dd)*l/(l-zz)
plr«mm*(xx+dd)*l/(l-zz)
ql=mm*yytl/(l—zz)
p21=mmt(uu-dd)tl/(l-ww)
p2r=mm*(uu+dd)*l/(l-ww)
q2ssmm*vvtl/(l—ww)
on error goto 3
Iine(100+pll,b-ql)-(100+p21,b-q2),
col
on error goto 3
line(400+plr,b-qlM400+p2r,
b-q2),col
3
return
3D LORENZ
key(l) on
on key(l) gosub ЮООО
screen 9
line(0,0)-(640,350),15,bf
43
col=0
gosub lorenz
ЮООО
end
lorenzs
al=3-14/7
11=100
m=100
p=4
d=.01
r=27
s=10
b=8/3
x=.l
У=-1
z=.l
for k=l to 500
delay .1
xl=x+d*(-s*x+s*y)
yl=y+d*(-y+r*x-x*z)
zl=z+d*(-b*z+x*y)
gosub pin
x=xl
y=yl
z=zl
next к
return
pic:
со = cos(al)
si = sin(al)
u=x*co+y*si
v = у * со - x * si
pset(300+ll+p*(u+z/m),
150+p*v),col
pset(300-ll+p*(u-z/m),
150+p*v),col
return
ПРОГРАММА 3D_MAZ.BA£
key(l) on
on key(l) gosub 10000
screen 9
n=8
dim pl(2*n.S)
dim pr(2*n.8)
dim q(2*n.8)
line(0,0)-(650,350),15,bf
gosub maz
gosub pp
gosub qq
Ю000
print "END"
end
maz:
a=300
rl=70
al = 3.14 / 4
be = 3-14 / n
for i=l to 2*n
fi = i * be
for j=l to 8
ro = a + rl * cos(al*j)
zet = rl * sin(al*:j)
x=r o* cos(f i)+50
y=ro*sin(fi)'+200
z=zet-300
gosub stereo
next j
next i
return
stereo:
999 R = 150
1 = 800
dd = 6
mm = -25
'h = -ISO
xl = (x-dd)*l/(l-y)
x2 = (x+dd)*l/(l-y)
yl = z*l/(l-y>
ul = (320+R) + mmftxl
ur = (320-R) + mm*x2
v = 150 - mmfcyi
pset(ul,v+h)?col
pset(ur,v+h),col
pl(i,j)=ul
pr(i,j)=ur
q(i,j)=v+h
return
pp:
col=0
for i=l to 2*n
for j=l to 7
44
linetpKiyj^qdyj))
-<pl(i,j+l),q(i,j+l)),col
line(pr(i,j),q(i,j))
-(рг(д,3+1)^(:цз+1)),со1
Нпе(р1(:ц1),ЯСьД))'
-(pl(i,8),q(i,8)),col
line(pr(i,l),q(i,l))
~(pr(i,8),q(i,8)),col
next j
next i
return
qq:
coll=0
for i=l to 2*n-l
for j=l to 8
line(pl(i,j),q(i,j))
-(pl(i+l,j),q(i+l,j)),coll
lineCprdjj^qdjj»
-fpr(i+l,j),q(i+l,j)),coll
line(pl(l,j),q(l,j))
-(pl(2*n,j),q(2*n,j»,coll
line(pr(l,j),q(l,j))
-(pr(2*n., j),q(2*n, j)),coll
next j
next i
return
CARRY
key(l) on
on key(l) gosub ЮООО
screen 9
line(0,0)-(640,350),15,bf
col=0
gosub filein
gosub pic
ЮООО
end
filein:
n=0
dim num(50)
dim x(50,20),y(50520)
open "statface.bas"
for input as #1
for 1=1 to ЗОО
if eof(l) then
10=1-1
goto 1
end if
input #l,u
if u<20 then
i=l
n=n+l
num(n)=u
for k=l to
input #l,u
input #l,v
l=k
x(n,i)=u
y(n,i)=v
next к
end if
next 1
1
close #1
return
pic:
for n=l to
for i=l to
line(x(n,i),y<
num(n)
SO
num(n)—1
:n,iW-
-(x(n, i+l),y (n, i+1)), col
p=num(n)
line(x(n,p),y(n,p))
-(x(n,l),y(n,l)),col
next i
next n
return
STATFACE3AS
1
135
145
1
190
145
5
134
141
128
144
133
149
140
144
135
141
5
190
141
184
144
189
149
196
144
190
141
3
119
147
133
140
147
146
3
177
147
190
141
203
147
3
121
147
133
ISO
147
146
3
177
147
191
150
201
148
3
118
143
132
137
148
142
3
176
143
191
137
204
143
3
127
154
135
153
144
ISO
3
178
151
187
154
196
154
6
156
140
156
153
156
165
154
172
156
179
161
182
6
166
140
166
153
166
166
168
172
167
179
161
182
6
150
169
147
173
146
178
148
182
153
179
161
182
6
173
169
176
172
177
178
174
182
170
179
163
182
6
112
137
113
132
125
127
139
128
ISO
131
152
136
6
171
136
173
132
186
129
199
128
208
132
211
137
4
112
138
124
132
138
134
152
136
4
171
136
187
134
200
132
210
137
7
137
203
149
199
156
196
162
199
168
197
177
199
187
202
7
138
203
148
203
156
202
163
203
170
202
178
203
186
202
7
138
203
149
203
156
202
163
203
170
202
177
202
186
203
7
141
204
148
207
155
210
163
211
171
210
179
207
185
203
3
103
141
101
160
104
161
3
219
140
222
159
218
179
7
-99
ISO
92
144
88
149
90
160
94
174
99
187
104
184
7
224
149
231
144
234
151
232
160
230
173
224
185
219
184
11
104
181
Ю8
199
115
214
129
228
147
240
162
243
180
239
196
228
207
215
13
lOl
144
107
129
114
114
120
104
131
95
146
92
160
93
174
95
188
96
201
103
210
114
217
126
222
143
13
93
204
78
173
76
142
82
101
99
70
129
46
158
44
188
45
217
64
236
94
245
134
250
168
233
200
3
145
175
139
182
135
190
3
178
176
185
183
190
191
3
105
178
109
184
112
190
3
218
178
214
183
211
189
2
159
186
159
193
2
165
186
165
193
2
162
232
162
238
3
153
218
162
216
173
219
46
3D NEUTRON
key(l) on
on key(l) gosub ЮООО
screen 9
line(0,0)-(640,350),15,bf
gosub sphere
gosub spherel
next i
next z
return
spherel:
a=4SO
b=150
1=40
n=128
for z=-l to 1
for i=0 to n
ЮООО
print ••END"
end
globe:
line(0,0)-(640,350),15,bf
a=450
b=150
1=100
col=15
for x=-l to 1
for y=-l to 1
r=sqr«x/l)y42+(y/ir2
+(2/1)л2 )
rl=rnd
if rl>1.3*r then
gosub stereo
end if
fi=2*3.14*i/n
ro=sqr(l~2 -zA2 )
x=ro*sin(fi)
y=ro*cos(fi)
ri=rnd
if rK-07 then
gosub stereol
end if
next i
next z
return
stereo:
col=0
pset(x+a-z/5,y+b),col
pset(x+a+z/5-300,y+b),col
return
next у
next x
return
stereol:
col=0
pset(x+a-z/5,y+b-20),col
pset(x+a+z/5-300,y+b-20),col
return
spheres
a=450
b=150
1=100
n=128
for z=-l to 1
for i=0 to n
fi=2*3.14*i/n
ro=sqr(l>42 -zA2 )
x=ro*sin(fi)
y=ro*cos(fi)
rl=rnd
if rK-07 then
'pset(x+a,y+b),col
gosub stereo
end if
ЛИТЕРАТУРА
1. Unterseher F. et al.— Holography handbook,
1982.
2. Б р о к г а у з Ф. А., Э ф р о н И. А. Энц. слов.—
Спб., 1901; статья «Спектроскоп».
3. Гуревич С. С. Объемная печатная
иллюстрация.— М., 1959.
В ал юс Н. А. Стереоскопия.— М.: 1962.
4. Поджио Т. В мире науки..— 1984.— № 6.—
С. 58.
5. Стереоскопический микроскоп по Грену.— Л.,
1938.
6. Уотерсон Д., Вернет Э.
Стереоскопический анатомический атлас.— М., 1909.
7. Иванов Б. Т., Левингтон А. Л.
Стереоскопическая фотография.— М., 1959; К а с с К.,
Касс А. Практическая стереофотография.—
Минск, 1987.
8. Поль Р. В. Введение в оптику.— М.— Л.,
1947.— С. 85.
9. УолкерД. В мире науки.— 1987.— № 1.~
С. 90.
10. Дайсон Ф., цит. по: Юргенс X. и др. //
В мире науки.— 1990.— № 10.
11. Mandelbrot B. The fractal geometry of
Nature.— H. Freeman & Co. San Francisco,
1982.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Physica.— D. V. 38, Nos. 1—3, 1989.
Computer Graphics / Ed. by D. С Evans and
R. J. Athay, 1986; Peitgen H.— O. & Richter P. H.
1986. The Beauty of Fractals; The Art of Fractals.
A Computer Graphical Introduction, 1988 / Ed.
by H. O. Peitgen.
Федер Й. Фракталы.— M., 1990;
Шредер М. Фракталы, хаос, степенные законы.—
W. H. Freeman & Company, N.— Y., 1991.
В мире науки.— 1987.— № 1.— С. 57.
В мире науки.— 1990. № 7.— С. 82.
А. & J. F. Thorney. Sci. Am.— Juiy 1982, p. 116.
Мочалов Л. В. Пространство мира и
пространство картины.— М., 1983.
Dmitrenko A. et al. Fifty russian artists.—
Moscow, 1985.
Природа.— 1990. № П.— С. 88.
В мире науки.— 1986.— Т. 12.— С. 152.
БСЭ.— Т 29.— С. 116.
SPIE. V. 1153. Application of digital image
processing XII (1989), p. 645.
В мире науки.— 1990.— № 12.— С. 62.
Окоси Т. ТИИЭР, 1980, т. 68, № 5, с. 5—24.
Кравков С. «Стереоскопия».— Техническая
энциклопедия. М.: 1933.
Агафонов С. «Дальномеры».— Техническая
энциклопедия. М.: 1933.
Научно-популярное издание
Веденов Александр Алексеевич
МАТЕМАТИКА СТЕРЕОИЗОБРАЖЕНИЙ
Зам< главного редактора
Редактор И. Г. В и р к о
Мл. редактор С. С. Патрикеева
Художник Л. П. Ромасенко
Худож. редактор М. А. Бабичева
Техн. редактор И. Е. Белкина
Корректор Е. К. Шарикова
ИБ № 11865
Г. Г. Карвовский
Сдано в набор 17.09.91. Подписано к печати 17.10.91. Формат
бумаги 70ХЮ0'/|б- Бумага тип. № 2. Гарнитура литературная.
Печать офсетная. Усл. печ. л. 3,90. Усл. кр.-отт. 8,12.
Уч.-изд. л. 3,96. Тираж 9480 экз. Заказ 1499. Цена 55 коп.
Издательство «Знание». 101835, ГСП, Москва, Центр, проезд
Серова, д. 4. Индекс заказа 914311.
Ордена Трудового Красного Знамени
Чеховский полиграфический комбинат
Государственной ассоциации предприятий, объединений и
организаций полиграфической промышленности «АСПОЛ»
142300, г. Чехов Московской области
48
Индекс 70096
Адрес подписчика:
Издательство «Знание» — крупнейшее
в стране издательство по выпуску
научно-популярной литературы.
Издательство выпускает
40 серий подписных
научно-популярных брошюр
УЯЗШЯ-
'нйншг
\ ^
\ Подписная
научно-
популярная
серия
и
/ J
Щ^ МАТЕМАТИКА
""* КИБЕРНЕТИКА
Наш адрес:
101835,
Москва, Центр,