ВУЗ:
Составители:
ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ, часть 1 43
(
)
121 xxtxx
−
+
=
(
)
121 yytyy
−
+
=
.
Для
[]
1,0∈t эти уравнения определяют точки, находящиеся между
()
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 - точка находится слева от окна;
Страницы
- « первая
- ‹ предыдущая
- …
- 41
- 42
- 43
- 44
- 45
- …
- следующая ›
- последняя »