Bài giảng đồ họa : Các thuật toán xén điểm, đoạn thẳng part 1
lượt xem 8
download
Thao tác loại bỏ các phần hình ảnh nằm ngoài một vùng cho trước được gọi là xén hình. • Vùng được dùng để xén hình gọi là cửa sổ xén (clip window). • Cho cửa sổ hình chữ nhật có tọa độ của các điểm dưới bên trái và điểm trên bên phải lần lượt là (x min , y min ) và (x max , y max ) . • Một điểm P ( x, y ) được coi là nằm bên trong cửa sổ x min ≤ x ≤ x max . nếu thỏa hệ bất phương...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng đồ họa : Các thuật toán xén điểm, đoạn thẳng part 1
- ÑOÀ HOÏA MAÙY TÍNH Caùc thuaät toaùn xeùn ñieåm, ñoaïn thaúng Daãn nhaäp • Thao taùc loaïi boû caùc phaàn hình aûnh naèm ngoaøi moät vuøng cho tröôùc ñöôïc goïi laø xeùn hình. • Vuøng ñöôïc duøng ñeå xeùn hình goïi laø cöûa soå xeùn (clip window). • Cho cöûa soå hình chöõ nhaät coù toïa ñoä cuûa caùc ñieåm döôùi beân traùi vaø ñieåm treân beân phaûi laàn löôït laø (x min , y min ) vaø (x max , y max ) . • Moät ñieåm P ( x, y ) ñöôïc coi laø naèm beân trong cöûa soå x min ≤ x ≤ x max neáu thoûa heä baát phöông trình : y . min ≤ y ≤ y max • Baây giôø, ta seõ xeùt baøi toaùn xeùn ñoaïn thaúng ñöôïc cho bôûi hai ñieåm P1 (x1 , y1 ) vaø P2 ( x 2 , y2 ) vaøo cöûa soå hình chöõ nhaät treân. P7 P4 P2 P2 P6 P8 P1 P1 P'6 Window Window P3 P'5 (a) P5 (b) Döông Anh Ñöùc, Leâ Ñình Duy Caùc thuaät toaùn xeùn hình 1/11
- ÑOÀ HOÏA MAÙY TÍNH Vaán ñeà toái öu hoùa toác ñoä • YÙ töôûng chung : ♦ Ñoái vôùi caùc ñoaïn thaúng ñaëc bieät nhö naèm hoaøn toaøn trong hoaëc hoaøn toaøn beân ngoaøi cöûa soå (ví duï nhö ñoaïn P1P2 vaø P3P4 trong hình treân) : khoâng caàn phaûi tìm giao ñieåm. ♦ Ñoái vôùi caùc ñoaïn thaúng coù khaû naêng caét cöûa soå : caàn phaûi ñöa ra caùch tìm giao ñieåm nhanh. • Nhaän xeùt ♦ Caùc ñoaïn thaúng maø coù caû hai ñieåm naèm hoaøn toaøn trong cöûa soå thì caû ñoaïn thaúng naèm trong cöûa soå, ñaây cuõng chính laø keát quaû sau khi xeùn (ví duï nhö ñoaïn thaúng P1P2), maët khaùc ñoái vôùi caùc ñoaïn thaúng maø coù hai ñieåm naèm veà cuøng moät phía cuûa cöûa soå thì luoân naèm ngoaøi cöûa soå vaø seõ bò maát sau khi xeùn (ví duï nhö ñoaïn thaúng P3P4). ♦ Vôùi caùc ñoaïn thaúng coù khaû naêng caét cöûa soå (ví duï nhö ñoaïn thaúng P5P6 vaø P7P8) ñeå vieäc tìm giao ñieåm nhanh caàn ruùt goïn vieäc tìm giao ñieåm vôùi nhöõng bieân cöûa soå khoâng caàn thieát ñeå xaùc ñònh phaàn giao neáu coù cuûa ñoaïn thaúng vaø cöûa soå. • Ngöôøi ta thöôøng söû duïng phöông trình tham soá cuûa ñoaïn thaúng trong vieäc tìm giao ñieåm giöõa ñoaïn thaúng vôùi cöûa soå. x = x1 + t(x 2 − x1 ) = x1 + tDx, Dx = x 2 − x1 y = y1 + t( y2 − y1 ) = y1 + tDy, Dy = y2 − y1 , 0≤t≤1 • Neáu giao ñieåm öùng vôùi giaù trò t naèm ngoaøi ñoaïn [0,1] thì giao ñieåm ñoù seõ khoâng thuoäc veà cöûa soå. Döông Anh Ñöùc, Leâ Ñình Duy Caùc thuaät toaùn xeùn hình 2/11
- ÑOÀ HOÏA MAÙY TÍNH Thuaät toaùn Cohen - Sutherland • Keùo daøi caùc bieân cuûa cöûa soå, ta chia maët phaúng thaønh chín vuøng goàm cöûa soå vaø taùm vuøng xung quanh noù. 0101 0100 0110 4 3 2 1 TOP LEFT LEFT RIGHT 0001 0000 0010 RIGHT Window TOP BOTTOM BOTTOM 1001 1000 1010 • Khaùi nieäm maõ vuøng (area code) ♦ Moät con soá 4 bit nhò phaân goïi laø maõ vuøng seõ ñöôïc gaùn cho moãi vuøng ñeå moâ taû vò trí töông ñoái cuûa vuøng ñoù so vôùi cöûa soå. ♦ Baèng caùch ñaùnh soá töø 1 ñeán 4 theo thöù töï töø phaûi qua traùi, caùc bit cuûa maõ vuøng ñöôïc duøng theo quy öôùc sau ñeå chæ moät trong boán vò trí töông ñoái cuûa vuøng so vôùi cöûa soå bao goàm : traùi, phaûi, treân, döôùi. Ví duï : Bit 1 : traùi (LEFT) Bit 2 : phaûi (RIGHT) Bit 3 : treân (TOP) Bit 4 : döôùi (BOTTOM) ♦ Giaù trò 1 töông öùng vôùi vò trí bit naøo trong maõ vuøng seõ chæ ra raèng ñieåm ñoù ôû vò trí öông öùng, ngöôïc laïi bit ñoù seõ ñöôïc ñaët baèng 0. ♦ Caùc giaù trò bit trong maõ vuøng ñöôïc tính baèng caùch xaùc ñònh toïa ñoä cuûa ñieåm (x, y) thuoäc vuøng ñoù vôùi caùc bieân cuûa cöûa soå. Bit 1 ñöôïc ñaët laø 1 neáu x < x min , caùc bit khaùc ñöôïc tính töông töï. Döông Anh Ñöùc, Leâ Ñình Duy Caùc thuaät toaùn xeùn hình 3/11
- ÑOÀ HOÏA MAÙY TÍNH Thuaät toaùn • Gaùn maõ vuøng töông öùng cho caùc ñieåm ñaàu cuoái P1 , P2 cuûa ñoaïn thaúng caàn xeùn laàn löôït laø c1 , c2 . Ta coù nhaän xeùt : ♦ Caùc ñoaïn thaúng naèm hoaøn toaøn beân trong cöûa soå seõ coù c1 = c2 = 0000 , öùng vôùi caùc ñoaïn naøy, keát quaû sau khi xeùn laø chính noù. ♦ Neáu toàn taïi k ∈ 1,..4 , sao cho vôùi bit thöù k cuûa c1 , c2 ñeàu coù giaù trò 1, luùc naøy ñoaïn thaúng seõ naèm veà cuøng phía öùng vôùi bit k so vôùi cöûa soå, do ñoù naèm hoaøn toaøn ngoaøi cöûa soå. Ñoaïn naøy seõ bò loaïi boû sau khi xeùn. Ñeå xaùc ñònh tính chaát naøy, ñôn giaûn chæ caàn thöïc hieän pheùp toaùn logic AND treân c1 , c2 . Neáu keát quaû khaùc 0000, ñoaïn thaúng seõ naèm hoaøn toaøn ngoaøi cöûa soå. ♦ Neáu c1 , c2 khoâng thuoäc veà hai tröôøng hôïp treân, ñoaïn thaúng coù theå hoaëc khoâng caét ngang cöûa soå, chaéc chaén seõ toàn taïi moät ñieåm naèm ngoaøi cöûa soå, khoâng maát tính toång quaùt giaû söû ñieåm ñoù laø P1 . Baèng caùch xeùt maõ vuøng cuûa P1 laø c1 ta coù theå xaùc ñònh ñöôïc caùc bieân maø ñoaïn thaúng coù theå caét ñeå töø ñoù choïn moät bieân vaø tieán haønh tìm giao ñieåm P1 ' cuûa ñoaïn thaúng vôùi bieân ñoù. Luùc naøy, ñoaïn thaúng ban ñaàu ñöôïc xeùn thaønh P1 P1 ' . Sau ñoù chuùng ta laïi laëp laïi thao taùc ñaõ xeùt cho ñoaïn thaúng môùi P1 P1 ' cho tôùi khi xaùc ñònh ñöôïc phaàn naèm trong hoaëc loaïi boû toaøn boä ñoaïn thaúng. ♦ Caùc ñieåm giao vôùi caùc bieân cöûa soå cuûa ñoaïn thaúng coù theå ñöôïc tính töø phöông trình tham soá. Ví duï : tung ñoä y cuûa ñieåm giao ñoaïn thaúng vôùi bieân ñöùng cuûa cöûa soå coù theå tính töø coâng thöùc y = y1 + m(x − x1 ) , trong ñoù x coù theå laø x min hay x max . Döông Anh Ñöùc, Leâ Ñình Duy Caùc thuaät toaùn xeùn hình 4/11
- ÑOÀ HOÏA MAÙY TÍNH Löu ñoà thuaät toaùn Cohen - Sutherland Begin EnCode(P1,c1); EnCode(P2,c2) (c1!=0000) || (c2!=0000) No Yes (c1&c2 == 0000) No Yes Xaùc ñònh giao ñieåm cuûa ñoaïn thaúng vôùi bieân cuûa cöûa soå baèng caùch xeùt maõ vuøng cuûa ñieåm naèm ngoaøi cöûa soå End // Ñoaïn CT tính maõ vuøng void EnCode(POINT p, CODE &c, RECT rWin) { c = 0; if(p.x < rWin.Left) c |= LEFT; if(p.x > rWin.Right) c |= RIGHT; if(p.y > rWin.Top) c |= TOP; if(p.y < rWin.Bottom) c |= BOTTOM; } Döông Anh Ñöùc, Leâ Ñình Duy Caùc thuaät toaùn xeùn hình 5/11
- ÑOÀ HOÏA MAÙY TÍNH Thuaät toaùn Liang - Barsky • Thuaät toaùn Liang-Barsky ñöôïc phaùt trieån döïa vaøo vieäc phaân tích daïng tham soá cuûa phöông trình ñoaïn thaúng. x = x1 + t(x 2 − x1 ) = x1 + tDx, Dx = x 2 − x1 y = y1 + t( y2 − y1 ) = y1 + tDy, Dy = y2 − y1 , 0≤ t≤1 • ÖÙng vôùi moãi giaù trò t, ta seõ coù moät ñieåm P töông öùng thuoäc ñöôøng thaúng. ♦ Caùc ñieåm öùng vôùi t ≥ 1 seõ thuoäc veà tia P2x. ♦ Caùc ñieåm öùng vôùi t ≤ 0 seõ thuoäc veà tia P2x’. ♦ Caùc ñieåm öùng vôùi 0 ≤ t ≤ 1 seõ thuoäc veà ñoaïn thaúng P1 P2 . x P2(x2, y2) t>1 t=1 P1(x1, y1) t=0 t
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Đồ họa máy tính - Ma Thị Châu
22 p | 279 | 28
-
Bài giảng Đồ họa máy tính: Các thuật toán mành hóa - Ma Thị Châu
18 p | 223 | 17
-
Bài giảng Đồ họa máy tính: Phần 1
47 p | 112 | 14
-
Bài giảng Đồ họa máy tính: Giới thiệu đồ họa 3 chiều - TS. Đào Nam Anh
54 p | 110 | 12
-
Bài giảng Đồ họa máy tính: Các phép biến đổi trong đồ họa ba chiều - TS. Đào Nam Anh
28 p | 99 | 11
-
Bài giảng Đồ họa máy tính: Các đối tượng đồ họa cơ sở - TS. Đào Nam Anh
50 p | 100 | 10
-
Bài giảng đồ họa : CÁC PHÉP BIẾN ĐỔI 3 CHIỀU part 2
0 p | 197 | 9
-
Bài giảng Đồ họa máy tính: Phần 2
40 p | 102 | 8
-
Bài giảng Đồ họa máy tính: Giới thiệu về đồ họa máy tính - TS. Đào Nam Anh
50 p | 88 | 7
-
Bài giảng Đồ họa máy tính: Giới thiệu đồ họa 3 chiều - TS. Đào Nam Anh (tt)
54 p | 91 | 6
-
Bài giảng Đồ họa máy tính - ĐH Hàng Hải VN
54 p | 41 | 6
-
Bài giảng Đồ họa máy tính: Bài 3 - Lê Tấn Hùng
39 p | 73 | 5
-
Bài giảng Đồ hoạ trên VC6.0(MFC) - Trần Anh Tuấn
11 p | 75 | 3
-
Bài giảng Đồ họa hiện thực ảo: Bài 1 - Lê Tấn Hùng
11 p | 56 | 3
-
Bài giảng Đồ họa hiện thực ảo: Bài 4A - Lê Tấn Hùng
41 p | 58 | 3
-
Bài giảng Đồ họa hiện thực ảo: Bài 4B - Lê Tấn Hùng
27 p | 40 | 3
-
Bài giảng Đồ họa hiện thực ảo: Bài 5 - Lê Tấn Hùng
8 p | 36 | 3
-
Bài giảng Đồ họa hiện thực ảo: Bài 6 - Lê Tấn Hùng
8 p | 38 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn