ĐỒ HỌA 2DCÁC THUẬT TOÁN XÉN HÌNHGiảng viên : Bùi Tiến Lên... Xén hình là gì Clipping ?Là thao tác loại bỏ phần hình ảnh của thế giới thực nằm bên ngoài một cửa sổ quan sát... Các loại xé
Trang 1ĐỒ HỌA 2DCÁC THUẬT TOÁN XÉN HÌNH
Giảng viên : Bùi Tiến Lên
Trang 2Xén hình là gì (Clipping) ?
Là thao tác loại bỏ phần hình ảnh của thế giới thực nằm bên ngoài một cửa sổ quan sát
Trang 3Các loại xén hình
- Xén điểm
- Xén đoạn thẳng
- Xén đa giác
- Xén đối tượng
Trang 4Xeùn ñieåm
Trang 5WP
W
Trang 6Xén đoạn thẳng Thuật toán Cohen-Sutherland
Trang 8Phân vùng
Mặt phẳng được chia thành làm 5 vùng
bên trong
Trang 9Phaân vuøng
Trang 10Phân vùng
bên trên
bên dưới
Trang 11Mã vùng – Cách tính
l r b t
C
WP
C
WP
C
WP
C
WP
C
: Pđiểmcủa
C vùng
Mã
t y
t
b y
b
r x
r
l x
Trang 12Mã vùng – Nhận xét
?
?C
Trang 13Thuật toán
Lặp
bước 1 : Tính mã vùng
C1 là mã vùng của P1
C2 là mã vùng của P2
bước 2 : Xét mã vùng
th1 : Đoạn thẳng nằm vùng bên trong
th2 : Đoạn thẳng thuộc các vùng bên ngoài
th3 : Còn lại
Trang 14Thì
00
00
C
00
00
C
vùngmã
Nếu
2 2
1 1
2 1
Trang 15Trường hợp 2
tráibên
vùngnằm
PPThì
?
?
?1C
?
?
?1C
vùngmã
Nếu
2 1
2 1
P2
Trang 16Trường hợp 2 : tiếp tục
trênbên
vùngthuộc
P
P1
?
?
?C
1
?
?
?C
dướibên
vùngthuộc
P
P
?1
?
?C
?1
?
?C
phảibên
vùngthuộc
P
P
?
?1
?C
?
?1
?C
tráibên
vùngthuộc
?
?
?1C
vùngmã
Nếu
2 1 1
2
1 2
1
2
1 2
1
2
1 2
1
Trang 17Trường hợp 3
P1
1 moi
2
2 moi
1 1 1
PP
PP
trongbên
nằmP
Thì
00
00
C
vùngmã
Nếu
Trang 18Trường hợp 3 : tiếp tục
P1
P2
P1moi
2 moi
2
l 2
1 1moi
1 1
PP
WP
PP
tráibên
vùngnằm
PThì
?
?
?1C
vùngmã
Nếu
Trang 19Tóm tắt
Tính mã vùng
Xét Begin
P1, P2
Trang 20Xén đoạn thẳng Thuật toán Liang-Barsky
Trang 21Phương trình tham số
vớit)
PP
(P
y
t)PP
(P
x
: thẳngđoạn
sốthamtrình
Phương
,- t
vớit)
PP
(P
y
t)PP
(P
x
:thẳngđường
sốthamtrình
Phương
P ,Pđiểmhai
Cho
x 1 x
2 x
1
y 1 y
2 y
1
x 1 x
2 x
1
2 1
Trang 22x
: thẳngđường
sốthamtrình
Phương
6,4B
,4,3A
điểm2
Cho
3 4 5 6
(4,3)
(6,4)
(8,5)t=-1
t=0
t=1
t=2
Trang 23Thuật toán Liang-Barsky
Thuật toán
bước 1 Lập hệ bất phương trình
bước 2 Giải hệ bất phương trình
bước 3 Nhận xét nghiệm
Trang 24P
W
Wt
PP
P
W
t y
1 y
2 y
1 b
r x
1 x
2 x
1 l
1
Trang 25Bước 2
qt
p
qt
p
trìnhphương
Hệ
PW
qP
Pp
WP
qP
Pp
PW
qP
Pp
WP
qP
Pp
Đặt
2 2
1 1
y 1 t
4 y
1 y
2 4
b y
1 3
y 1 y
2 3
x 1 r
2 x
1 x
2 2
l x
1 1
x 1 x
2 1
Trang 26p
q,-t
thì0p
th
,- t
thì0q
Neáu
nghieämvoâ
thì0q
Neáu
0p
th
qp.t
trìnhphöông
Baát
2 1
Trang 272 moi
2
1 moi
1 1
2 1
tt
thì0p
th
tt
tt
thì0q
Neáu
nghieämvoâ
thì0q
Neáu
0p
th
t,tt
qp.t
trìnhphöông
baát
Heä
Trang 282 y
1 y
2
2 x 1 x
2 x
1 x
2
1 y 1 y
2 y
1 y
1
1 x 1 x
2 x
1 x
1
2 1
2 1
tPP
PQ
tPP
PQ
tPP
PQ
tPP
PQ
t,tt
nghiệmcó
hệ
Nếu
ngoàiở
PPthẳngĐoạn
nghiệm vô
Trang 29Tóm tắt
Trang 30Xén đa giác Thuật toán Sutherland-Hodegman
Trang 32Nửa mặt phẳng trong/ngoài
trongngoài
Trang 33Nhận xét
Cửa sổ quan sát là giao của các nửa mặt phẳng trong
của các cạnh
cửa sổ quan sát
Trang 34Thuật toán
Dùng từng cạnh của cửa sổ lần lượt xén đa giác
bước 1 : Xén trái
bước 2 : Xén phải
bước 3 : Xén dưới
bước 4 : Xén trên
Trang 35Thuật toán
Trang 36Xén đa giác bằng cạnh trái
Trang 37Thuật toán xén đa giác bằng cạnh trái
s là đỉnh kề trước của p
th1 : p bên trong, s bên trong
th2 : p bên ngoài, s bên trong
th3 : p bên ngoài, s bên ngoài
Trang 38Trường hợp 1
ps
Trang 39Trường hợp 2
Trang 40Trường hợp 3
p
s
Trang 41Trường hợp 4
ps
i
Trang 42Vấn đề với đa giác lõm
Trang 43Vấn đề với đa giác lõm
cạnh thừa
Trang 44Đặt bài toán
Trang 45Phân loại giao điểm
Giao điểm được chia làm 2 loại
- Loại (ngoài – trong)
- Loại (trong – ngoài)
s
p
Trang 46Thuật toán xén bằng cạnh cải tiến
- Bắt đầu từ bên ngoài
- Gặp giao điểm thì khởi động đa giác OUT = {}
- Gặp giao điểm thì kết thúc đa giác OUT
Trang 47Minh họa
Trang 48Minh họa