1. Trang chủ
  2. » Công Nghệ Thông Tin

Đồ họa máy tính - Chương 5 Tô màu, Font chữ - Bài 15 ppsx

6 427 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 263,24 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các thuật toán về đa giác Trong kỹ thuật đồ hoạ có nhiều bài toán phức tạp được chuyển về các bài toán về đa giác chính vì vậy trong phần này chúng ta sẽ khảo sát một số thuật toán liên

Trang 1

84

Chương 5

tô mμu, Font chữ

$15 Các thuật toán về đa giác

Trong kỹ thuật đồ hoạ có nhiều bài toán phức tạp được chuyển về các bài toán về đa giác chính vì vậy trong phần này chúng ta sẽ khảo sát một số thuật toán liên quan

đến đa giác

Định nghĩa 1:

Một đa giác n đỉnh gọi là đa giác lồi nếu đoạn thẳng chứa hai điểm bất kỳ của đa giác nằm trong đa giác

Định nghĩa 2:

Đa giác thông thường là đa giác có n đỉnh, n cạnh, mỗi đỉnh là điểm đầu của một cạnh và điểm cuối của một cạnh khác Mỗi đỉnh không phải là điểm xuất phát của 2 cạnh, các cạnh đa giác không cắt nhau ở các điểm nào khác trên đỉnh của nó

1 Xác định điểm trong hay ngoài đa giác

Bài toán :

Cho một đa giác thường và một điểm P hãy xác định P là điểm trong hay điểm ngoài của đa giác

Thuật toán thứ nhất:

Giả sử đa giác W có các đỉnh P1,P2 Pn được đánh số theo chiều kim đồng hồ Nối P với tất cả các đỉnh P1,P2 Pn của đa giác W Ta gọi αi là góc tạo bởi PPi và PPi+1

i=1,2 n+1 (Pn+1 =P1)

E

Y X

D

Y

Trang 2

Góc αi có dấu + nếu PPi dịch chuyển theo chiều kim đồng hồ tuỳ với PPi+1, ngược lại αi có dấu - khi đó nếu

i

n

=

=

∑ 360

1

thì P là điểm trong của đa giác nếu αi

i

n

=

=

∑ 0 1

thì P nằm ngoài đa giác

Thuật toán 2:

Để xác định P là điểm trong hoặc ngoài của đa giác ta có thể thực hiện theo thuật toán khác

Giả sử cho đa giác W và P là điểm bất kỳ để xác định P là điểm trong hay ngoài đa giác ta thực hiện các bước sau: theo hướng

Bước 1: Từ P kẻ nửa đường thẳng s tuỳ ý không giảm tổng quát có thể chọn hướng // với trục OX và phía phải

Bước 2: Tính số giao điểm của N của nửa đường thẳng l với các cạnh của đa giác Bước 3: Kiểm tra nếu N chẵn ⇒ P nằm ngoài, nếu N lẻ ⇒ P nằm trong

Ví dụ:

P4

α2

P2

P3

P3

P3

P5 P4

P4 P2

P2

P1

P1

+

+

P

P6

l l

P P

Trang 3

86

1 Để tính điểm giao của nửa đường thẳng l với các cạnh của đa giác ta không cần phải tìm điểm giao của l với tất cả các cạnh của đa giác, có thể cải tiến để thuật toán làm việc nhanh hơn dựa vào nhận xét sau:

Giả sử P có toạ độ (xo,yo) và Pi có toạ độ (xi,yi), i = 1, n

Cạnh (Pi,Pi+1) không cần phải tính điểm giao với l nếu max(xi,xi+1)<xo

Cạnh Pi Pi+1 có giao với l nếu:

min(xi,xi+1)>xo

và (yi-yo)(yi+1-yo)<0

2 Thuật toán dùng nửa đường thẳng l không giải quyết đúng khi l đi qua một đỉnh nào đó của đa giác Để khắc phục tình trạng này ta có thể đánh số các cạnh của đa giác theo chiều kim đồng hồ và coi các cạnh của đa giác là các đoạn thẳng đứng một

đầu và mở đầu kia

P4 P5

P3 P

P2 P1

3 Thuật toán sử dụng nửa đường thẳng l không giải quyết đúng khi rơi vào các trường hợp sau:

P6 P1

l P5

P

l P3

P2

N chẵn song P thuộc W

Tóm lại thuật toán 2 không phải là thuật toán tổng quát để giải quyết bài toán xác

định P là điểm trong hay ngoài đa giác

Chương trình tự lập xem như bài tập

Trang 4

2 Thuật toán phân chia đa giác

a Hình thang cơ bản

Hình thang cơ bản là hình thang có dạng sau

Hình thang cơ bản là hình thang trong đó có 2 cặp đỉnh có cùng toạ độ y

(x1,y1)

(x4,y4) (x3,y3)

(x2,y2) (x1,y1) (x2,y2)

Nếu x3=x4 hoặc x1=x2 thì hình thang cơ bản biến dạng thành tam giác do đó tam giác là một hình thang cơ bản

Hình thang cơ bản là một đa giác đơn giản nhất, việc tô màu trên nó chẳng hạn là rất

đơn giản, vì vậy ta phải cần phân chia một đa giác thành tổng các hình thang cơ bản

b Phân chia đa giác thành các hình thang cơ bản

Bài toán : Cho W là một đa giác thường Hãy phân chia đa giác thành tổng các hình

thang S1, S2, , Sm sao cho :

m

i j

= ∪ ∪ ∪

1 2

1

, , + Thuật toán Brasel và Fagrat :

(x3,y3) (x4,y4)

(x3,y3) (x3,y3) (x2,y2)

(x2,y2)

Trang 5

88

đánh số theo chiều ngược kim đồng hồ sao cho phần thuộc đa giác luôn luôn nằm về phía của canh WiWi+1 Nếu không chúng ta đánh số lại các đỉnh để đạt được điều này

để đơn giản cho việc trình bày thuật toán ta giả sử W không có các cạnh // với Ox

Bước 1 : thực hiện phân chia các đỉnh của đa giác thành 3 loại sau :

+ Đỉnh Wk=(xk,yk) gọi là đỉnh lồi nếu có 2 đỉnh Wk-1=(xk-1,yk-1), Wk+1=(xk+1,yk+1) thoả mãn điều kiện yk-1>yk; yk+1>yk

+ Đỉnh Wk=(xk,yk) gọi là đỉnh lõm nếu có 2 đỉnh Wk-1=(xk-1,yk-1),

Wk+1=(xk+1,yk+1) thoả mãn điều kiện yk-1<yk; yk+1<yk

+ Đỉnh Wk=(xk,yk) là đỉnh bình thường nếu nó không lồi, không lõm

Ví dụ trong đa giác trên

W5 là đỉnh lồi W4,W6 là đỉnh lõm W1,W2,W3 là đỉnh thường

Bước 2: Từ đỉnh Wk k=1,n của đa giác kẻ các đường thẳng y=yk , giả sử P1,P2

Pl là giao của đường thẳng với các cạnh của đa giác W và giả sử

Pi=(x'i,yk) i=1,2, ,l

và x'1<x'2< <x'l

Nếu các giao điểm Pi trùng với các đỉnh lồi hoặc lõm ta bỏ qua không xem là giao

điểm của y=yk với đa giác

Nếu giao điểm Pi của y=yk rơi vào đỉnh thường, ta tính là 1 lần cắt với đa giác Với cách tính như vậy đường thẳng y=yk luôn luôn cắt đa giác W một số chẵn lần, gọi

số lần cắt là 2m Khi đó các đoạn thẳng (P1,P2),(P3,P4) (P2m-1 P2m) là các đoạn nằm trong đa giác Các đoạn thẳng (P2,P3),(P4,P5) (P2m-2 P2m-1) là các đoạn nằm ngoài đa giác

W1

W2

W3

W4 W5

W1

W2

W3

W4 W6

W5

Trang 6

Các hình thang cơ bản sẽ là các hình giới hạn bởi các đoạn thẳng (P1,P2), (P3,P4) .(P2n-1, P2m) và các đoạn thẳng thuộc các cạnh của đa giác

Ví dụ:

Bài tập:

Hãy diễn đạt chính xác thuật toán trên và lập chương trình phân chia đa giác thành

các hình thang cơ bản

$16 Các thuật toán tô mμu

1 Thuật toán tô màu hình thang cơ bản

Giả sử cho hình thang cơ bản có dạng:

Thuật toán như sau:

1 Đặt ymin=y1; ymax=y3; m=ymax-ymin+1

2 tính hệ số góc Cl=(x4-x1)/(y4-y1)

Cr=(x3-x2)/(y3-y2)

2 Đặt yi=ymin+(i-1) i =1, m

tính xl=x +(y ưy ).C

W8 W1

W1

W7

W6 W2

W4

W5 1

2

3 W2

3 2

4

7

9

5 5

W4 6

W3

Ngày đăng: 24/07/2014, 10:21

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w