Трехмерная машинная графика

Страницы работы

Фрагмент текста работы

данном учебном пособии объединяются видовое и проекционное преобразования, а проекционное преобразование производится без нормирования. Полученные таким образом координаты точки, мы будем называть координатами в пространстве изображения.

По трехмерной машинной графике рекомендуется следующая литература: /1-6, 8, 10, 14-20/.

3.1. ПАРАЛЛЕЛЬНАЯ И ЦЕНТРАЛЬНАЯ ПРОЕКЦИИ

Для изображения лежащих в трехмерном пространстве объектов координаты точек (мировые координаты) преобразуются сначала в координаты в пространстве изображения, а затем – в экранные.

Для произвольных трехмерных векторов a, b и c через (a,b,c) обозначим смешанное произведение. Скалярное произведение векторов будем обозначать через a× b, векторное – через a´b. Пусть наблюдатель находится в точке (xV,yV,zV). Центральной проекцией произвольной точки (x,y,z) называется точка пересечения плоскости проекции и луча, соединяющего точку (xV,yV,zV) наблюдения с точкой (x,y,z). Параллельная проекция получается из центральной, если точку наблюдения бесконечно удалить в некотором направлении.

Рассмотрим, например, шар в трехмерном пространстве. Соединяя точку наблюдения (xV,yV,zV) с каждой точкой шара, мы получим круговой конус. Так как пересечение произвольной плоскости с конусом является эллипсом, то центральной проекцией шара будет эллипс, превращающийся в круг только в тех случаях, когда плоскость проекции перпендикулярна прямой, проходящей через точку наблюдения и центр шара.

Опишем формулы преобразования координат при параллельной и центральной проекции.

Параллельная проекция. Пусть задана декартова система координат (x,y,z). Рассмотрим произвольную плоскость P, проходящую через некоторую точку (x0,y0,z0), радиус-вектор которой равен r0, параллельно векторам u1 и u2 (рис. 16) /15/.

Пусть u – произвольный вектор. Тогда для каждой точки r трехмерного пространства существует единственная тройка (x',y',z') вещественных чисел такая, что r=r0+x'u1+y'u2+z'u.

Пару чисел (x',y') мы будем называть координатами параллельной проекции точки (x,y,z) на плоскость P вдоль направления u, или параллельной проекцией на плоскость P параллельно вектору u (рис. 17) /15/.

Чтобы найти x', y' и z', умножим обе части равенства

r-r0=x'u1+y'u2+z'u скалярно на векторы, выбранные таким образом, что в правой части остается лишь один ненулевой член. Умножая на u1´ u, приходим к равенству (r-r0,u1,u) = y'(u2,u1,u). Умножая на u2´ u, получим

(r-r0,u2,u) = x'(u1,u2,u).

Наконец, скалярное произведение на u1´ u2 приводит к равенству

(r–r0,u1,u2) = z'(u,u1,u2).

Отсюда вытекает, что координаты (x',y') проекции вдоль направления u на плоскость P можно вычислить с помощью формул

x'=(r-r0,u2,u)/(u1,u2,u),

y'=-(r-r0,u1,u)/(u1,u2,u).

При применении алгоритмов удаления невидимых линий необходимо знать координату, характеризующую степень удаленности точки от плоскости P. Согласно выкладкам, эта координата равна  z'=(r-r0,u1,u2)/(u1,u2,u).

Пример 3.1. Рассмотрим параллельную проекцию трехмерного пространства на плоскость Oyz в направлении вектора u=(1,0.7,0.7). Плоскость Oyz можно задать векторами u1=(0,1,0), u2=(0,0,1).

Смешанное произведение (u1,u2,u) равно 1. Поэтому

,             , отсюда находим x'=-0.7x+y, y'=-0.7x+z.

Пример 3.2. Рассмотрим ортогональную проекцию на плоскость, проходящую через начало координат, заданную единичным вектором нормали n. В этом случае u=n. Вектор u1, обычно, (например, в архитектуре или в военном деле) берут лежащим в горизонтальной плоскости Oxy. Этот вектор должен быть ортогонален вектору u, поэтому при u1={x,h,0} выполнено соотношение x ux+h uy=0. Решая это уравнение получаем u1, а затем u2:

u1={-uy/sqrt(ux2+ uy2), ux/sqrt(ux2+uy2), 0},

u2={-uxuz, -uyuz, ux2+uy2}/sqrt(ux2+uy2).

Центральная проекция. Пусть задана плоскость с началом координат r0 и базисными векторами u1 и u2 (рис. 18) /15/. Требуется изобразить на плоскости проекцию точки r=(x,y,z) из точки наблюдения rV. Пусть (x',y') – искомые координаты. Тогда для некоторого lÎR выполнено равенство

Похожие материалы

Информация о работе