ЧАСТНЫЕ СЛУЧАИ ВИЗУАЛИЗАЦИИ ЦЕНТРАЛЬНЫХ ПРОЕКЦИЙ В КОМПЬЮТЕРНОЙ ГРАФИКЕ
PRIVATE CASES VISUALIZATION CENTRAL PROJECTION IN COMPUTER GRAPHICS
B.B. Глотова, И.М. Лебедева
V.V. Glotova, I.M. Lebedeva
ГОУ ВПО МГСУ
В статье дается описание математического аппарата для получения на экране плоских проекций трехмерных объектов.
This article describes the mathematical apparatus for on-screen plane projections of three-dimensional objects.
Для получения конкретных типов центральных проекций, необходимо найти в каждом отдельном случае значения углов: ф, 9 и расстояния р, d для подстановки в обобщенную матрицу центрального проецирования:
5 =
- sm( cos 6 0 0
cos ф ■ cos ( - cos (p ■ sin t sin^ 0
sin ^ ■ cos I - sin ^ ■ sin t
- cos^
p
_ 1 _ 1
d ■ sin ^ ■ cos ( d ■ sin ^ ■ sin t
-Yd ■cos^
p/ d
(1.1)
Эта матрица позволяет получить на экране компьютера изображение любой плоской проекции. Рассмотрим, от чего же зависит тип проекции.
харшннах Р
ллоскосп, _____
Р ~----- [ -
UtfbStU
Рис. 1
Из анализа рис.1 становится очевидна взаимосвязь между размерами объекта, изображения и удалённостью центра проецирования. Причем, при достаточно большом увеличении расстояния между центром проецирования и объектом эффект перспективы пропадает, и проекция становится параллельной.
Перспектива
Особенности нашего глаза такова, что мы можем видеть только точки, расположенные внутри определённого конуса, ось которого совпадает с направлением взгляда СО. Очень важный параметр этого конуса - угол а, отмеченный на рис. 1. При больших значениях угла а перспективное искажение будет настолько велико, что изображение станет нереальным. При приближении же угла а к нулю эффект перспективы пропадет, и мы получим аксонометрическую или ортогональную проекцию. Изображение получится наглядным и привычным, если угол а лежит в пределах от 10° до 20°.
Из треугольника РОС (см. рис. 1) можно вывести расстояние р:
Р =
щ
tga
(1.2)
Величина I OP I - это приблизительно половина длины объекта. Часто бывает довольно трудно оценить максимальный размер геометрического объекта или группы объектов. Поэтому, логично ввести понятие рабочей области (или поля чертежа), т.е. прямоугольного окна, параллельного картинной плоскости и ограниченного параметрами U . , V . , U , V (см. рис. 2.). mm mm max max
vmin
U,
U„
Рис. 2
Обычно размеры горизонтальной и вертикальной составляющих рабочего окна значительно не различаются, во избежание искажения объектов при визуализации на экране дисплея. Поэтому вполне допустимо конус видимости ограничить у основания размером окна по горизонтали итах -иш;п.
Тогда:
Р
U - U .
max mm
2 • tga
(1. 3)
Изменение углов ф и 9 приводит к изменению направления проецирования. При постоянном значении угла ф изменение угла 9 приводит к перемещению центра проецирования вокруг объекта в горизонтальной плоскости. При ф =0° точка зрения рас-
полагается сверху над объектом, при ф =90°- горизонтально. Для перспективных проекций ф обычно берут в пределах 45°-90°. Хороший эффект обеспечивают углы в =20°, ^70°.
Аксонометрические проекции
При удалении точки зрения в бесконечность эффект перспективы исчезает, и проекции становятся аксонометрическими. В инженерной практике чаще всего используют изометрические и диметрические проекции. Чтобы визуализировать их на экране необходимо определить значения углов ф и в, при которых будут выполняться соответствующие условия искажения по осям.
Матрица Б в этом случае (при р=ё^ да) будет иметь вид:
5 =
- 8ш 0 - ео8 ф • ео8 в - 8т ф • ео8 в ео8 в - ео8 (р- 81п 0 - 8т ф • 81и в
0 0
0
Р
0 0 0 1
(1. 4)
I Гг
Рис. 3
С помощью матрицы преобразования (1.4) единичный вектор оси X [ х у т 1]=
[10 0 1 ] преобразуется к виду:
[и V 1]=[-8ш9 -ео8ф-ео89 ^шф -ео89 +р 1] (1.5)
следовательно,
и= -в1п9
v= -еовф -ео89
w=-s1nф -ео89 +р
При р ^ да w ^ да . При проецировании на плоскость w=d ^ да не учитывают координату w. В результате этого преобразования единичный начальный вектор оси X будет иметь длину (см. рис. 3):
1^1 = Л/ и2 + V2 = -у/sin2 в + еos2 (р- cos2 в
(1.6)
Аналогично, единичный вектор оси У, е у=[ 0 1 0 1] , преобразуется к виду: [и V w 1]=[ cos9 -еosф •s1n9 -s1nф •s1n9+p 1], (1.7)
а длина преобразованного единичного вектора оси У будет определяться следующим образом :
\в\ = V и2 + V2 ^ ^/еод^^+сод^^^дШ2^ (1.8)
ВЕСТНИК 2/2011
для оси Z длина единичного вектора будет:
1 i Г~т7 i- i
К = "Vsin Ф = sin^|
При получении изометрической проекции коэффициенты искажения по всем трём осям равны, поэтому необходимо, чтобы выполнялись соотношения:
sin29 +cos29 -cos29 =sln^ (1.10)
cos29 +cos29 -sln29 =sln^
Из первого условия получим, что
cos29 =(1-sln29) / ( 2- sin2 9) (1.11)
а из второго условия:
cos29 = sin29/ (1- sin29) . (1.12)
2 1 1
Отсюда, sin в — — , или sm#= —т= , таким образом 9=45°.
2 V2
1 /
Тогда, cos 2m = 2/ =1 , или cos m , а ф =54,736°.
/(1 +1) 3 / 2
Итак, чтобы в результате центрального проецирования проекция получилась изометрической, необходимо, чтобы соблюдались следующие условия: р ^ <х 9 = 45° (1.13)
Ф = 54,736°.
Диметрические проекции
Рассмотрим пример диметрического проецирования. Коэффициенты искажения по осям X и Z одинаковы. Приравняем значения длин векторов ex и ez :
sin29 +cos^ -cos29 =sln2ф
Получим :
cos2ф =(1- sin29) / (2- sln29) (1.14)
Величина же преобразованного единичного вектора ey уменьшится до значения
1 1
—. Таким образом: cos2 в + cos2 m • sin2 в = (—)2 (1.15)
2 2
В результате, с учетом уравнения для cos^ , получим, что
• „ Í6
sin в = л— , а угол 9=67,792°.
V 7
2 1 1
Тогда: cos ф - — ^ cos ф = —j= ^ ф = 69,295 .
8 д/8
Итак, чтобы в результате центрального проецирования проекция получилась ди-метрической, необходимо, чтобы соблюдались следующие условия: р ^
9 = 67.792° (1.16)
Ф = 9.295°.
Выводы. Обобщённая матрица центрального проецирования Б (1.1), как следует из всего вышесказанного, позволяет получить на экране всевозможные плоские проекции трёхмерных объектов. Это и ортогональные проекции, аксонометрические проекции и перспектива. В табл. 1 приведены значения параметров для основных видов плоских проекций.
Таблица 1
Проекция Ф° 9° а° Р
горизонтальная 0 90 0 œ
фронтальная 90 90 0 œ
профильная 90 0 0 œ
изометрия 55 45 0 œ
диметрия 69 68 0 œ
перспектива 70 20 20 U max- U min 2 • tga
Примечание: При реализации какой либо из параллельных проекций вместо бесконечности расстояние от объекта до центра проецирования р следует задавать достаточно большой величиной, чтобы эффект перспективы был незаметен.
Ключевые слова: матрица преобразования, центральное проецирование, перспектива, ортогональная проекция, аксонометрическая проекция, луч зрения, изометрия, диметрия.
Keywords: matrix of transformation, the central displaying, prospect, orthogonal projection, axo-nometrical projection, beam of sight, isometry.
e-mail: [email protected]
Рецензент: доцент кафедры Прикладной математики МИЭМ, кандидат технических наук Махи-
борода Александр Васильевич.