[ на главную ]

Простая 3D графика.

Е.С.Борисов

1997 г.

Интересующий нас объект может быть представлен в виде связного, регулярного , ациклического графа, т.е. мы как-бы одеваем наш объект в сетку из вершин и дуг графа. При этом, увеличивая число вершин графа можно достичь любой степени достоверности отображения объекта.



Введем две пространственные и одну плоскую систему координат.

\includegraphics[width=10cm]{pict/image1.ps}

  1. пространственная система OXYZ "вморожена" в объект.
  2. пространственная система O н X н Y н Z н жестко связана с наблюдателем.
  3. плоская система O эк X эк Y эк это экран на который мы будем отображать наш объект.

Причем:

Рассмотрим произвольную вершину нашего графа М . Пусть в исходной системе OXYZ она имеет координаты M(x,y,z) .

Выполним видовое преобразование. В системе O н X н Y н Z н т. М будет иметь координаты M(x н ,y н ,z н ) .

Матрица перехода V запишется следующим образом :


\begin{displaymath}
V = \left(\begin{array}{cccc}
c_1 \cdot c_3 + s_1 \cdot s_2...
...2 & c_1 \cdot c_2 & 0\\
0 & 0 & \rho & 1
\end{array}\right)
\end{displaymath}

где :


\begin{displaymath}
\begin{array}{cc}
c_1=\cos(\theta) \ ; & s_1=\sin(\theta)\\ ...
... s_2=\sin(\varphi)\\
c_3=\cos(y) \ ; & s_3=\sin(y)
\end{array}\end{displaymath}


[ x н y н z н 1 ] = [ x y z 1 ] . V

Следующий этап - перспективное преобразование.

\includegraphics[width=12cm]{pict/image2.ps}

Для простоты положим M(x н ,0,z н ) . Из подобия треугольников следует равенство

\begin{displaymath}\frac{x_{эк}}{d} = \frac{x_н}{z_н}\end{displaymath}

или

\begin{displaymath}x_{эк} = \frac{x_н}{z_н} \cdot d\end{displaymath}

где d = O н O эк - расстояние от наблюдателя до экрана.
Аналогично :

\begin{displaymath}y_{эк} = \frac{y_н}{z_н} \cdot d\end{displaymath}

Таким образом мы получили координаты проекции М на плоскость экрана в системе O эк X эк Y эк .

Обработав все вершины нашего графа ,в результате мы получим вид нашего объекта из нужной нам точки .


Примеры программ:


Литература

1
Л.Аммерал ''Принципы программирования в машинной графике.'' Москва, ''Сол Систем'', 1992

Evgeny S. Borisov
2002-11-14
При использовании материалов этого сайта, пожалуйста вставляйте в свой текст ссылку на мою статью.