Методическое пособие по курсу "Интерактивные графические системы". Найханов В.В - 27 стр.

UptoLike

r (u, j) = r (0, j)
α
0
(u) + r (1, j)
α
1
(u) + [r
s
(0, j)
β
0
(u) + r
s
(1, j)
β
1
(u)] s
j
.
(2.10)
Построить поверхность Кунса можно только для прямоугольной (или
квадратной сетки). Поэтому необходимо определить преобразование
ssuv
ttuv
=
=
(,)
(,),
(2.11)
которое переводит четырехугольник со сторонами s
i
и t
j
в единичный
квадрат. Будем искать это преобразование в классе бикубических функций,
используя уравнение тензорного произведения Кунса.
Если преобразование уже определено, то
r
u
(u, v) = r
s
(u, v) s
u
(u, v) + r
t
(u, v) t
u
(u, v);
r
v
(u, v) = r
s
(u, v) s
v
(u, v) + r
t
(u, v) t
v
(u, v). (2.12)
Отсюда для узлов порции получим
r
u
(i, j) = r
s
(i, j) s
u
(i, j) + r
t
(i, j) t
u
(i, j);
r
v
(i, j) = r
s
(i, j) s
v
(i, j) + r
t
(i, j) t
v
(i, j). (2.13)
Но из (2.10) следует, что
r
u
(i, j) = r
s
(i, j) s
j
;
r
v
(i, j) = r
t
(i, j) t
j
. (2.14)
Сопоставляя (2.13) и (2.14), имеем
s
u
(i, j) = s
j
, s
v
(i, j) = 0, (2.15)
t
u
(i, j) = 0, t
v
(i, j) = t
i
. (2.16)
Найдем для примера, преобразование s = s (u, v). В узлах порции эта
функция определена: s
00
, s
10
, s
01
, s
11
. Первые производные задаются
соотношениями (2.15). Так как s
u
(i, j)
0 , а s
v
(i, j) = 0, то необходимо
потребовать, чтобы s
uv
(i, j) = 0. В таком случае преобразование s = s (u, v)
согласно (2.7) запишется как
y
x
z
s
0
t
1
t
0
r
(
0,0
)
s
1
(s
00
,t
00
)
(
s
10
,t
10
(s
11
,t
11
)
(s
01
,t
01
)
r(1,1)
r
(
0,1
)
r(1,0)
Рис.2.2
r (u, j) = r (0, j) α 0 (u) + r (1, j) α 1 (u) + [rs (0, j) β 0 (u) + rs (1, j) β 1 (u)] sj .
                                                                                         (2.10)

     Построить поверхность Кунса можно только для прямоугольной (или
квадратной сетки). Поэтому необходимо определить преобразование
                       ⎧s = s( u , v )
                       ⎨                                                                    (2.11)
                       ⎩t = t ( u , v ),
которое переводит четырехугольник со сторонами si и tj в единичный
квадрат. Будем искать это преобразование в классе бикубических функций,
используя уравнение тензорного произведения Кунса.
      Если преобразование уже определено, то
      ru (u, v) = rs (u, v) su (u, v) + rt (u, v) tu (u, v);
      rv (u, v) = rs (u, v) sv (u, v) + rt (u, v) tv (u, v).    (2.12)
Отсюда для узлов порции получим
      ru (i, j) = rs (i, j) su (i, j) + rt (i, j) tu (i, j);
      rv (i, j) = rs (i, j) sv (i, j) + rt (i, j) tv (i, j).    (2.13)
Но из (2.10) следует, что
               ru (i, j) = rs (i, j) sj ;
               rv (i, j) = rt (i, j) tj .                      (2.14)
Сопоставляя (2.13) и (2.14), имеем
      su (i, j) = sj ,           sv (i, j) = 0,                (2.15)
      tu (i, j) = 0,              tv (i, j) = ti .             (2.16)


                                                                  r(0,1)
                z                          t0                              s1
                                                          (s01,t01)
                     r(0,0)                                           r(1,1)    (s11,t11)

                      (s00,t00)                 s0                                  y
                                                             t1



                                                     r(1,0)
                                                          (s10,t10)

                                                              x

                                                       Рис.2.2

      Найдем для примера, преобразование s = s (u, v). В узлах порции эта
функция определена: s00, s10, s01, s11. Первые производные задаются
соотношениями (2.15). Так как su (i, j) ≠ 0 , а sv (i, j) = 0, то необходимо
потребовать, чтобы suv (i, j) = 0. В таком случае преобразование s = s (u, v)
согласно (2.7) запишется как