Алгоритмы компьютерной графики Пешков Анатолий Тимофеевич, БГУИР. 1 отображение просранства пользователя и машинного носителя 4
Скачать 1.86 Mb.
|
6 ДВУМЕРНЫЕ ПРОЕКЦИИ6.1 Виды проекцийПроецирование, в общем случае называется процедура представления n-мерных объектов в (n-1)-мерном пространстве. Проецирование 3-х мерных объектов, в этой связи, представляет собой процедуру их отображения на двумерной поверхности. В этом случае процесс проецирования отдельных точек исходного объекта заключается в нахождении точки пересечения линии проецирования, проходящей через эти точки, с поверхностью проецирования. Существуют различные двумерные проекции, классификация которых может быть представлена, как это показано на Рис. Виды проекций-54. Приведенные на Рис. Виды проекций-54 различные виды проекций характеризуются следующим. Перспективные проекции - это такие проекции, у которых все линии проецирования сходятся в одной точке - центре проецирования (или точки наблюдения). Эти проекции наиболее полно отражают специфику человеческого зрения. Рис. Виды проекций‑54 Параллельные проекции - это такие проекции, у которой все линии проецирования параллельны друг другу. Параллельные проекции можно рассматривать как частный случай перспективной проекции, у которой центр проецирования (точка наблюдения) удален в бесконечность. Перспективные проекции обычно используются художниками, дизайнерами и архитекторами для отображения общих планов. Параллельные проекции, как правило, используются в техническом черчении. Перспективные проекции по форме поверхности проецирования подразделяются на плоские, цилиндрические и сферические. Параллельные проекции подразделяются на аксонометрические и косоугольные. Аксонометрические проекции характеризуются тем, что у них линии проецирования перпендикулярны плоскости проецирования. По отображению на проекции координатных осей исходной трех мерной системы, из которой выполняется проецирование, аксонометрические проекции делятся на: изометрию (на проекции углы между тремя парами осей координат трехмерной системы одинаковые, как это показано на Рис. Виды проекций-55а); диметрия (на проекции углы только между двумя парами осей координат трехмерной системы одинаковые, как это показано на Рис. Виды проекций-55 b); триметрию (на проекции углы между всеми тремя парами осей координат трехмерной системы разные, как это показано на Рис. Виды проекций-55 с). Рис. Виды проекций‑55 Косоугольные проекции характеризуются тем, что у них линии проецирования пересекаются с плоскостью проецирования не под прямым углом. Они подразделяются на свободные и кабинетные. Свободные проекции характеризуются тем, что линии проецирования пересекаются с плоскостью проецирования под углом 450. Кабинетные проекции отличаются от свободных тем, что у них масштаб по третьей оси (как равило, оси Z) уменьшен в два раза. 6.2 Перспективные проекцииПлоская перспективная проекция однозначно определяется положением точки наблюдения и расстояние от нее до плоскости проецирования (d). Положение точки наблюдения может задаваться в виде вектора V, связывающего точку наблюдения и начало трех мерной системы координат, из которой выполняется проецирование. Трехмерная система координат, из которой выполняется проецирование, называется мировой системой координат. Вектор V может задаваться в одной из двух форм (Рис. Перспективные проекции-56): в полярной системе координат через параметрами: модуль вектораV; -угол между координатной осью X и проекцией вектора V на координатную плоскость XY мировой системы координат; -угол между вектором V и осью Z мировой системы координат; в декартовой системе координат через проекции вектора V на координатные оси мировой системы координат: Vx – проекция вектора V на ось X; Vy – проекция вектора V на ось X; Vz – проекция вектора Vна ось X. Рис. Перспективные проекции‑56 Задача проецирования графического объекта, в конечном счете, сводится к определению координат X,Y отдельных точек объекта на плоскости проецирования, которые изначально заданны тремя координатами в мировой системе координат. 6.2.1 Определение координат точки на плоскости проекцииРазобьем общую задачу перспективного проецирования на две задачи преобразования координат: преобразование для перехода из мировой системы координат в видовую систему координат преобразования для перехода из видовой системы координат в координаты на плоскости проекции. Переход в видовую систему координат Переход в видовую систему координат иллюстрируется ниже приведенным рисунком (Рис. Перспективные проекции-57). Видовая система координат представляет собой такую трехмерную систему координат с координатными осями Xв, Yв, Zв, которая «удобна» для заданной проекции, т.е. из которой наиболее просто осуществляется переход в двумерную систему на плоскости проекции (например, экран). Для данного вида перспективной проекции начало видовой системы координат должно находиться в точке E, ее ось Zв должна совпадать с вектором проекции V, ее ось Xв должна проецироваться на ось X э, а ее ось Y в должна проецироваться на ось Y э. ч Рис. Перспективные проекции‑57 Исходя из этого, переход из мировой системы координат в видовую можно выполнить за счет следующей последовательности базовых преобразований: перенос мировой системы координат на вектор V, в результате чего будет получена система координат c началом в точке E и координатными осями X1, Y1, Z1 (реализуется матрицей Т-1(-Vx, -Vy, -Vz)); поворот полученной системы на угол (-(900-)относительно ее координатной оси Z1, в результате чего будет получена система с координатными осями X2, Y2, Z2 (реализуется матрицей Rz-1(-(900-, в которой вектор V находится в координатной полскости Y2, Z2 поворот полученной системы E, X1, Y1, Z1 на угол ((1800- относительно ее координатной оси X2, в результате чего будет получена система с координатными осями X3, Y3, Z3, начало которой находится в точке E, (реализуется матрицей Rx-1(1800-, в которой вектор V располагается на оси Z3 смена направления координатной оси X3, в результате чего будет получена нужная видовая система координат с координатными осями Xв, Yв, Zв (реализуется матрицей R(-x)). Таким образом, учитывая четыре базовых преобразования координат, для перехода в видовую систему координат необходимо использовать следующее произведение матриц: Для задания используемых матриц представим все их элементы через тригонометрические функции sin , cos, sin , cos и введем обозначения: cosa; sin b; cosс; sin d; ux = -bc; uy = -bd; uz =-a. С этой целью представим перечисленные в выше приведенном выражении матрицы в следующем виде. Матрица переноса: T-1(ux, uy, uz)= T(-ux, -uy, -uz). Такой представление правомерно, так как обратная матрица переноса на вектор эквивалентна прямой матрицы переноса на этот же вектор в обратной направленности. C учетом введенных обозначений будем иметь: Матрицы поворота относительно оси Z1: Rz-1(-(900- Rz(900- и, учитывая, что sin (900-cos можно записать: Матрицы поворота относительно координатной оси X2: Rx-1((1800- Rx (-(1800-, и, учитывая, что sin (-(1800-=- sin cos (-(1800-=- cos имеем: Матрица смены направления координатной оси X2 имет вид: Найдем матрицу видового преобразования Rв: Определим порядок умножения матриц согласно скобок в записи: Найдем R1: Найдем произведение: При нахождении матрицы видового преобразования Rв, учтем необходимость расширения матрицы R2 из размерности 3*3 до размерности 4*4: где: Таким образом, матрица видового преобразования имеет вид: (6.2-1) Переход из видовой системы к координатам на плоскости проекции. Для выполнения этого этапа используем ниже приведенный рисунок (). Рис. Перспективные проекции‑58 На рисунке приняты следующие обозначения: Е – начало видовой системы координат с координатными осями Xв, Yв, Zв; Т1 – точка в видовой системе координат, расположенная на координатной плоскости XвZв; Т2– точка в видовой системе координат, расположенная на координатной плоскости YвZв; d - расстояние от начала видовой системы координат до плоскости проекции; Xэ, Yэ - оси системы координат на плоскости проекции (на экране). Из приведенного рисунка видно, что: откуда: Отсюда вытекает следующая зависимость координат точки на экране от координат этой точки в видовой системе координат: (6.2-2) Таким образом, используя матрицу видового преобразования Rв, определяемую выражением (6.2-1), и соотношения согласно выражениям (6.2-2), можно рассчитать координаты заданных точек на плоскости перспективной проекции. 6.2.2 Точки и линии сходаПри перспективной проекции точка схода прямой АА’ назыавется та точка на плоскости проекции, к которой стремится проекция точки, «убегающей» в бесконечность по прямой АА’. Для того, чтобы представить геометрический смысл точек схода, рассмотрим ниже приведенный рисунок (Рис. Перспективные проекции-59). На рисунке используются следующие обозначения: Е - начало видовой системы координат; «пп» - плоскость проекции (экран) с координатными осями X и Y. Y X d dп с сб aп a E cп bбп bп b б b’ пп Рис. Перспективные проекции‑59 Проведем через точку Е прямую Еа’, перпендикулярную плоскости проекции. Эта линия пересекается с плоскостью проекции в точке ап, которая будет являться точкой проекции всех точек прямой Еа’, в том числе и точки, убегающей по этой прямой в бесконечность. Следовательно, точка ап является точкой схода для линии Еа’. Возьмем на плоскости проекции некоторую точку bп и проведем через нее линию bпb’, параллельную линии Еа’. Проведем через линии Еa’ и bпb’ плоскость, которая пересечется с плоскостью проекции по линии bпaп. Возьмем на линии bпb‘ точку bб и устремим ее по прямой в бесконечность. По мере перемещения бегущей точки по прямой в бесконечность, ее проекция bбп будет перемещаться по прямой bпaп, стремясь к точке aп по мере стремления точки bп в бесконечность. Таким образом, точка aп будет являться точкой схода для прямой bпb‘. Единственным условием для выбора прямой bb’ являлось то, что она параллельна прямой Еa’. Следовательно, для всех прямых, параллельных Еa’, точкой схода будет являться одна и та же точка aп. Проведем в плоскости проекции через точку aп прямую, параллельную оси X плоскости проекции и возьмем на ней произвольную точку dп. Проведем прямую через точки E и dп . Затем возьмем на плоскости проекции еще одну произвольную точку cп и проведем через нее в видовой системе координат прямую cпc, параллельную прямой Edп. Через полученные параллельные прямые проведем плоскость, которая пересечет плоскость проекции по прямой dпсп. Возьмем на прямой спс точку cб и устремим ее в бесконечность. Как видно из рисунка, по мере перемещения точки cб. в бесконечность, ее проекция будет перемещаться по прямой cпdп., стремясь к точке dп. Отсюда следует, что точка dп является точкой схода для прямой спс. Рассуждая аналогично легко показать, что для всех линий, параллельных плоскости, проходящей через точку E и прямую dпап, точки схода будут находиться на линии, проходящей через точки dпап. Из изложенного следует, что прямая dпап является линией схода для всех горизонтальных плоскостей. Эта прямая называется линией горизонта. Из изложенного также можно заключить, что все параллельные линии, независимо от их положения, имеют одну точку схода. Сказанное относится и к вертикальным линиям, которые имеют единую точку схода, называемую точкой зенита. Рассуждая аналогично, можно показать, что все параллельные плоскости, имеют единую линию схода. Понятие точек и линий схода, используется при построении проекций трехмерных объектов. Рассмотрим это на конкретном примере. Пусть необходимо построить проекцию параллелепипеда, с вертикальными боковыми гранями, имеющий верхнюю грань, заданную опорными точками 1, 2,3, 4, и нижнюю, заданную узловыми точками 5, 6, 7, 8 (Рис. Перспективные проекции-60). Отметим, что из свойства заданного объекта ребра, заданные узловымии точками 1,2; 3,4; 5,6; 7,8, параллельные, а, следовательно, несущие их прямые сходятся в одной точке (точка Тс1). Прямые, несущие боковые ребра 3,7; 4,8; 2,6 и 1,5, так же имеют одну и ту же точку схода ( точка Т3). То же самое можно сказать о ребрах 1,3; 2,4; 5,7; 6,8 – несущие их прямые параллельны друг другу, а следовательно, имеют единую точку схода (точка Тс2). Для однозначного построения проекции заданного объекта достаточно на проекции определить три выше упомянутые точки схода (Т3, Тс1, Тс2), и проекции точек 2,5,6,8 ( ). Рис. Перспективные проекции‑60 Построение проекции можно вести в следующей последовательности. Через точки 5 и Тс2 проведем прямую линию, несущую ребра 5,7. Ее пересечение с линией, проходящей через точки Тс1 и 8 (прямой линии, Рис. Перспективные проекции‑61 несущей ребро 7,8), является точкой 7. Несущие для боковых ребер 3,7; 4,8; 2,6 и 1,5 будут получены, если провести прямые через точку зенита Т3 и уже имеющиеся четыре узловые точки нижней грани параллепипеда (линии Т3,6; Т3,7; Т3,8; Т3,5). Далее через точку 2 и Тс2 проведем прямую, пересечение которой с прямой Т3,8 определяет положение точки 4. Затем проведем прямые Тс1,2. Точка ее пересечения с прямой Т3,5 будет являться точка 1. Проведем линии Тс1,4. Точка ее пересечения с прямой T3,7 будет являться точка 3. Таким образом будет найдены проекции всех узловых точек заданного для проецирования объекта, по которым можно однозначно построить на плоскости проекции весь проецируемый параллелепипед. Для того, чтобы при проецировании был получен образ объекта, близкий к тому, каким он субъективно воспринимается человеком, необходимо ограничивать угол проецирования (угол обзора наблюдателем трех мерного объекта из точки наблюдения, т.е. из точки начала видовой системы координат). Как правило, приемлемый результат проецирования получается, когда угол проецирования не превышает 30-40 градусов. Рассмотренный метод проецирования приемлем лишь для сравнительно простых объектов. |