Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмы компьютерной графики Пешков Анатолий Тимофеевич, БГУИР 2006 (Мет пособие).doc
Скачиваний:
279
Добавлен:
15.06.2014
Размер:
1.95 Mб
Скачать
    1. Косоугольные проекции

Косоугольная проекция определяется углом наклона линии проецирования к плоскости проекции.

Отличие координат X,Y точки в исходной трехмерной системе и одноименных ее координат на плоскости проекции можно проанализировать на примере проекции единичного вектора по оси Z, которая приведена на Рис. 6.3 -62. На рисунке рассматривается случай, когда плоскость проекции совпадает с координатной плоскостью X,Y исходной трех мерной системы, из которой выполняется проецирование.

Рис. 6.3‑62

Проекцией конца единичного вектора, расположенного на оси Z (точки «т»), является точка на плоскости проекции, обозначенная как «тп», с координатами Px и Py. Эти координаты зависят от наклона линий проецирования, в частности от наклона линии проецирования, проходящей через конец рассматриваемого единичного вектора. С учетом этого, можно записать:

xтп = xт + Рx = 0 + Рx;

yтп = yт + Рy = 0 + Рx.

Величины Рx и Рy рассматриваются как отклонения, соответственно, по координатам X и Y при формировании косоугольной проекции точки.

Линии проецирования в рассматриваемой проекции параллельные, поэтому можно утверждать, что для всех точек исходной трех мерной системы с координатой по оси Z, равной «1», будет иметь место такие же отклонения по осям X и Y. Кроме того, очевидно при изменении координаты Z будут пропорционально изменяться отклонения по осям X и Y. Это позволяет записать для любой точки A(xA, yA, zA) исходной трех мерной системы ее координаты на плоскости проекции как:

xAп = xA + Рx z A;

xAп = yA + Рy z A.

Матрица, отражающая эту связь координат, имеет вид:

Для свободной косоугольной проекции имеет место:

Рx = сos 450;

Рy = sin 450.

Для кабинетной косоугольной проекии используется уменьшенный масштаб влияния координаты Z на смещение:

Рx = 0.5 сos 450;

Рy = 0.5 sin 450.

    1. Аксонометрическая проекция

Простейшим случаем аксонометрической проекции является ортогональная проекция. Это такая аксонометрическая проекция, у которой плоскость проекции перпендикулярна одной из координатных осей исходной трех мерной системы координат. При этом возможны три случая.

Первый случай.

Плоскость проекции перпендикулярна оси Z и совпадает с координатной плоскостью XY. Проекция точки в этом случае определяется как:

Второй случай.

Плоскость проекции перпендикулярна оси X и совпадает с координатной плоскостью ZY. Проекция точки в этом случае определяется как:

Третий случай.

Плоскость проекции перпендикулярна оси Y и совпадает с координатной плоскостью XZ. Проекция точки в этом случае определяется как:

Общий случай аксонометрической проекции, когда плоскость проекции занимает произвольное положение в исходной трех мерной системе координат, иллюстрируется ниже приведенным рисунком (Рис. 6.4 -63).

Рис. 6.4‑63

На рисунке приведены следующие обозначения:

  • ПП – плоскость проецирования;

  • V – вектор направленности линий проецирования;

  • b – угол между осью Z и проекции вектора V на координатную плоскость XZ;

  • a – угол наклона вектора V к координатной плоскости XZ.

Найдем матрицу аксонометрической проекции Rпп, которая связывает координаты x, y, z точки в трех мерной системе и ее координаты xп, yп, zп на плоскости проекции ПП (координата zп на плоскости проекции равна 0):

Матицу Rпп можно найти, выполнив два этапа преобразований.

Первый этап.

От исходной системы координат перейдем в видовую систему координат, направление оси Zв которой совпадает с вектором проецирования V. Для этого исходную систему координат повернем на угол «в» относительно оси Y, а полученную систему координат повернем на угол «a» относительно оси X. Тогда матрица видового преобразования Rв рассчитывается следующим образом:

Полученная матрица обеспечивает переход к видовой системе координат, ось Z которой перпендикулярна плоскости проекции. Для такой видовой системы координат заданная проекция превращается в ортогональную проекцию с плоскостью проекции, перпендикулярной оси Z. Поэтому для получения матрицы аксонометрической проекции Rпп необходимо матрицу Rв умножить на матрицу Rопz ортогональной проекции на плоскость X,Y,0, т.е. имеем:

Полученная матрица обеспечивает преобразование для общего случая аксонометрической проекции, называемой триометрией, при которой углы «a» и «в» выбираются независимо друг от друга.

Для вывода зависимостей параметров аксонометрии для случаев диметрии и изометрии, рассмотрим аксонометрические проекции единичных векторов по координатным осям:

Используя матрицу аксонометрической проекции, запишем проекции этих векторов:

Возьмем диметрию, у которой координатные оси X и Y имеют одинаковые углы с осью Z. В этом случае можно утверждать, что проекции единичных векторов Ux и Uy , будут иметь одинаковую длину, а следовательно можно записать:

Uxп2 = Uуп2, т. е.

cos2b + sin2a sin2b = cos2a.

Разрешим это уравнение относительно «b», используя только функцию sin:

1-sin2b + sin2a sin2b =1- sin2a;

(6.4-1)

Таким образом, при построении диметрии, задавая произвольный угол «а», необходимо по полченной формуле рассчитать угол «b».

Для изометрии проекции всех рассматриваемых единичных векторов будут одинаковыми. Поэтому можно записать:

Uzп2 = Uуп2, т. е.

sin2b + sin2a cos2b = cos2a.

Разрешим это уравнение относительно «b», используя только функцию sin:

sin2b + sin2a (1-sin2b) = 1-sin2a,

(6.4-2)

На основании выражений (6.4-1) и (6.4-2), можем записать:

sin2a = 1- 2sin2a, откуда:

sin2a = 1/3, а .

Подставляя полученное значение для sin a в выражение (6.4-1), будем иметь:

Из этого следует, что для задания изометрии, необходимо взять в качестве значений для ее параметров «а» и «в» выше рассчитанные значения.