Поверхностные модели в системах трехмерной компьютерной графики. Косников Ю.Н. - 31 стр.

UptoLike

Составители: 

31
где i,j,k единичные векторы, направленные вдоль координатных осей x,y z,
соответственно (орты).
Из векторной алгебры известно, что
нормальный вектор плоскости находится
через векторное произведение двух
векторов, лежащих в этой плоскости. В
рассматриваемом случае в качестве таких
векторов выступают векторы
2,1 RR
,
совпадающие с ребрами полигона, как
это показано на рисунке 3.2. Вектор
N определяется выражением
,sin2121
ϕ
=×= RRRRN
но более рационально находить его с помощью определителя 3-го порядка [1]
,
222
111
zyx
zyx
rrr
rrr
kji
N =
где
r
1x
,…,r
2z
координаты векторов 2,1 RR .
Координаты
n
x
, n
y
, n
z
вектора нормали находятся из миноров элементов i, j, k,
соответственно, то есть из определителей 2-го порядка, полученных из исходного
определителя вычеркиванием первой строки и
i-го, j-го, k-го столбца. Выражения
имеют следующий вид
()()()()
()()()()
()()()()
,
,
,
12131312
22
11
12131312
22
11
12131312
22
11
yyxxyyxx
rr
rr
n
zzxxzzxx
rr
rr
n
zzyyzzyy
rr
rr
n
yx
yx
z
zx
zx
y
zy
zy
x
==
==
==
где
x
n
, y
n
, z
n
координаты n-ой вершины полигона (n=1,2,3).
Полигональное представление сложных поверхностей требует большого
числа полигонов. Для снижения временных затрат на их обработку в
φ
N
1
R
2
R
V1
V
2
V
3
Рисунок 3.2 – Определение
нормали к полигону
                                                                                                         31
где i,j,k – единичные векторы, направленные вдоль координатных осей x,y z,
соответственно (орты).
        Из векторной алгебры известно, что                                              N
нормальный вектор плоскости находится
через     векторное   произведение                  двух
векторов, лежащих в этой плоскости. В                                        V1             R2
                                                                                        φ           V3
рассматриваемом случае в качестве таких                                           R1
векторов выступают векторы                        R1, R 2 ,                            V2
совпадающие с ребрами полигона, как
                                                                             Рисунок 3.2 – Определение
это показано на рисунке 3.2. Вектор                                             нормали к полигону
N определяется выражением

                                     N = R1 × R 2 = R1 ⋅ R 2 ⋅ sin ϕ ,

но более рационально находить его с помощью определителя 3-го порядка [1]
                                                      i        j      k
                                              N = r1x         r1 y   r1z ,
                                                     r2 x     r2 y   r2 z

где r1x,…,r2z – координаты векторов R1, R 2 .
Координаты nx, ny, nz вектора нормали находятся из миноров элементов i, j, k,
соответственно, то есть из определителей 2-го порядка, полученных из исходного
определителя вычеркиванием первой строки и i-го, j-го, k-го столбца. Выражения
имеют следующий вид
                             r1 y   r1z
                      nx =                 = ( y2 − y1 )( z3 − z1 ) − ( y3 − y1 )( z2 − z1 ),
                             r2 y   r2 z
                             r1x    r1z
                      ny =               = ( x2 − x1 )(z3 − z1 ) − ( x3 − x1 )( z2 − z1 ),
                             r2 x   r2 z
                             r1x    r1 y
                      nz =               = ( x2 − x1 )( y3 − y1 ) − (x3 − x1 )( y2 − y1 ),
                             r2 x   r2 y

где xn, yn, zn – координаты n-ой вершины полигона (n=1,2,3).
        Полигональное представление сложных поверхностей требует большого
числа полигонов.        Для снижения временных затрат на их обработку в