Основы компьютерной графики: Часть 1. Математический аппарат компьютерной графики. Казанцев А.В. - 43 стр.

UptoLike

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

ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ, часть 1 43
(
)
121 xxtxx
+
=
(
)
121 yytyy
+
=
.
Для
[]
1,0t эти уравнения определяют точки, находящиеся между
()
1,1 yx и
()
2,2 yx . Специальной проверки требует случай, когда отрезок
параллелен стороне окна. Пусть координата x точки пересечения найдена,
тогда
12
1
xx
xx
t
=
()
12
12
1
1
yy
xx
xx
yy
+=
Рассмотрим алгоритм Коэна-Сазерленда для отсечения отрезков
прямых. Этот алгоритм позволяет легко определять нахождение отрезка
полностью внутри или полностью снаружи окна, и если так, то его можно
рисовать или не рисовать, не заботясь об отсечении по границе окна.
Для работы алгоритма вся плоскость в которой лежит окно разбивается
на девять
подобластей или квадрантов, как показано на рис. 30.
Рис. 30. Разбиение на подобласти в методе Коэна-Сазерленда.
Окну соответствует область обозначенная кодом 0000. Конечным
точкам отрезка приписывается 4-битный кодвне/внутри в зависимости от
нахождения отрезка в соответствующей подобласти. Каждому биту
присваивается значение 1 в соответствии со следующим правилом.
Бит 1 - точка находится выше окна;
Бит 2 – точка находится ниже окна;
Бит 3 - точка
находится справа от окна;
Бит 4 - точка находится слева от окна;
ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ, часть 1                                    43



                                   x = x1 + t ( x 2 − x1)
                                  y = y1 + t ( y 2 − y1) .
       Для t ∈ [0,1] эти уравнения определяют точки, находящиеся между
(x1, y1) и (x 2, y 2 ) . Специальной проверки требует случай, когда отрезок
параллелен стороне окна. Пусть координата x точки пересечения найдена,
тогда
                           x − x1              x − x1
                     t=            ⇒ y = y1 +          ( y 2 − y1 )
                          x 2 − x1            x 2 − x1
      Рассмотрим алгоритм Коэна-Сазерленда для отсечения отрезков
прямых. Этот алгоритм позволяет легко определять нахождение отрезка
полностью внутри или полностью снаружи окна, и если так, то его можно
рисовать или не рисовать, не заботясь об отсечении по границе окна.
      Для работы алгоритма вся плоскость в которой лежит окно разбивается
на девять подобластей или квадрантов, как показано на рис. 30.




          Рис. 30. Разбиение на подобласти в методе Коэна-Сазерленда.

     Окну соответствует область обозначенная кодом 0000. Конечным
точкам отрезка приписывается 4-битный код “вне/внутри” в зависимости от
нахождения отрезка в соответствующей подобласти. Каждому биту
присваивается значение 1 в соответствии со следующим правилом.
     Бит 1 - точка находится выше окна;
     Бит 2 – точка находится ниже окна;
     Бит 3 - точка находится справа от окна;
     Бит 4 - точка находится слева от окна;