на главную ] 

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

Е.С.Борисов

1997 г.

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

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


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

\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
Яндекс.Метрика
TOP.zp.ua PR-CY.ru
При использовании материалов этого сайта, пожалуйста вставляйте в свой текст ссылку на мою статью.