Phép giao (Intersect)

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu phương pháp tích hợp kỹ thuật phân tích không gian và phân tích thứ bậc mờ trong GIS (Trang 55)

6. Ý nghĩ kho họ ề ti

2.4.2. Phép giao (Intersect)

Phép gi o hoạt ộng nhƣ to n tử An . Tạo r một vùng ao ph m i ằng h xếp hồng h i t p ữ liệu ầu v o. Kết quả ầu r o gồm phần ữ liệu thuộ v o ả h i t p ữ liệu ầu vào

Hình 2.14 - Phép giao trong Overlay 2.4.3. Phép đ ng nhất (Indentity)

Tạo r một vùng o ph m i ằng h xếp hồng h i t p ữ liệu ầu v o. Kết quả ầu r o gồm to n ộ phần ữ liệu l p ầu ti n v hỉ những phần n o l p th h i ƣợ hồng khít.

44

2.5. Một số thuật toán cơ bản xếp chồng bản đồ

2.5.1. Thuật toán giao hai đoạn thẳng (Bentley – Ottmann)

Thu t to n Bentley – Ottm nn (BO) l một thu t to n quét òng ể liệt k tất ả oạn thẳng gi o nh u trong mặt phẳng ƣợ ph t triển n ầu ởi Jon Bentley n Thom s Ottm nn (1979) ể kiểm tr ó h y kh ng oạn thẳng gi o nh u, v i ầu v o l n oạn thẳng v k iểm ắt nh u. Mặ ù kh ng phải l thu t to n tốt nhất nhƣng nó ƣợ l họn ể th h nh ởi s ơn giản v hiếm ít ộ nh . BO ó ộ ph tạp là O(n+k)logn.

Giả thiết ầu v o thu t to n BO:

- Kh ng ó oạn thẳng n o thẳng ng.

- C iểm mút oạn thẳng n y kh ng nằm tr n oạn khác.

- Điểm gi o nh u hỉ l iểm gi o 2 oạn thẳng.

- Kh ng ó qu h i iểm mút v iểm ắt nh u ó ùng ộ ộ x.

2.5.1.1. Ý tưởng của thuật toán

Ý tƣởng hính thu t to n BO l sử ụng tiếp n quét òng, trong ó một òng thẳng ng L huyển ộng từ tr i s ng phải trong mặt phẳng, những oạn gi o nh u sẽ ƣợ lƣu lại tr n ƣờng m nó i huyển.

Hình 2.16 - Minh hoạ thuật toán quét dòng

Khi L quét qu một iểm uối một oạn thẳng s, gi o iểm L v s sẽ ƣợ th m v o hoặ gỡ r từ một t p ó th t iểm gi o nh u. S kiện n y ễ ng ƣợ o n nhƣ iểm ầu mút oạn thẳng ( ã iết từ ầu v o thu t to n). S kiện òn lại xảy r khi L quét qu hỗ ắt

45

nh u 2 oạn thẳng s v t, s kiện n y ũng ƣợ o n trƣ từ th tế, ng y từ khi xảy r s kiện n y, iểm gi o nh u L v i s v t ƣợ ặt liền kề trong t p iểm gi o nh u ó th t .

Thu t to n BO sử ụng ấu trú ữ liệu iểu iễn t p iểm gi o nh u thẳng ng òng quét v i oạn thẳng ầu v o, v t p hợp s kiện ó tiềm n ng trong tƣơng l i h nh th nh ởi ặp liền kề iểm gi o nh u. Nó xử lý s kiện lần lƣợt p nh t ấu trú ữ liệu ể iểu iễn t p iểm gi o nh u m i.

2.5.1.2. Cấu trúc dữ liệu

Để lƣu trữ hiệu quả gi o iểm ƣờng quét L v i oạn ƣờng vào và một huỗi các s kiện trong tƣơng lai thu t toán BO lƣu trữ ấu trúc ữ liệu là:

Một y t m kiếm nhị ph n h t p oạn thẳng qu L, theo th t trụ Y iểm m oạn thẳng qu L. Những iểm ắt kh ng ƣợ ại iện một h rõ r ng trong y nhị ph n t m kiếm. Thu t to n BO sẽ hèn th m một oạn m i s v o ấu trú ữ liệu khi òng quét L i qu iểm uối P oạn n y, vị trí hính x s trong y t m kiếm ó thể x ịnh ởi t m kiếm nhị ph n, mỗi ƣ kiểm tr p l tr n h y ƣ i oạn kh m L i qu . Do ó việ hèn sẽ ƣợ th hiện trong thời gi n log rits. Thu t to n BO sẽ xo oạn từ y nhị ph n v sử ụng t m kiếm nhị ph n ể x ịnh oạn ng y ở ƣ i hoặ tr n oạn kh , th o t n y ó thể ƣợ th hiện ởi y t ấu trú m kh ng qu n t m ến h nh họ ơ ản oạn thẳng.

Hình 2.17 - Cấu trúc cây nhị phân dòng

Th t sắp xếp: r v s l 2 oạn thẳng th r < s nếu v hỉ nếu

- rx1 < sx1 hoặ

46

Một h ng ợi ƣu ti n ể uy tr một huỗi s kiện ó tiềm n ng trong tƣơng l i thu t to n BO. Mỗi s kiện ƣợ li n kết v i một iểm p trong mặt phẳng,, iểm ầu uối, iểm ắt. S kiện n y xảy r khi òng L ắt qu p. Do ó s kiện ó thể ƣợ nh số ƣu ti n theo trụ x iểm li n kết s kiện. Trong thu t to n BO s kiện tƣơng l i tiềm n ng o gồm ầu mút oạn thẳng m hƣ ƣợ quét qu v iểm gi o nh u ph n oạn ƣờng m ở ng y n ƣ i hoặ n tr n oạn khác.

Thu t to n kh ng ần phải lƣu trữ một h rõ r ng ại iện òng quét L hoặ vị trí nó trong mặt phẳng. Th y v o ó, vị trí L ƣợ thể hiện gi n tiếp: ó là ƣờng thẳng ng qua iểm gắn v i s kiện gần y nhất là xử lý.

2.5.1.3. Chi tiết thuật toán

Thu t to n BO th hiện qu những ƣ s u y:

1. Khởi tạo một h ng ợi ƣu ti n Q s kiện ó tiềm n ng trong tƣơng l i, mỗi li n kiết v i một iểm trong mặt ph ng ƣu ti n theo trụ x. B n ầu, Q h nh s h iểm ầu mút oạn thẳng.

2. Khởi tạo một t m kiếm nhị ph n T ph n oạn thẳng qu L quét ƣờng, theo th t tr n trụ y iểm gi o nh u. B n ầu, T rỗng.

3. Trong khi Q l kh ng rỗng, t m v loại ỏ s kiện từ Q li n kết v i một iểm p ó toạ ộ x thấp nhất. X ịnh loại s kiện n y l s kiện g v qu tr nh ó theo trƣờng hợp s u y:

* Nếu p l iểm uối n tr i oạn s, hèn s v o T. T m oạn r v t ở n ƣ i h y tr n s trong T (nếu ó) nếu húng gi o nh u ởi một iểm tiềm n ng trong h ng ợi s kiện th loại ỏ nó. Nếu s gi o r hoặ t th th m iểm ắt n y v o h ng ợi.

* Nếu p l iểm uối n phải một oạn s, loại ỏ s từ T. T m oạn r v t ng y v ƣ i s trong T (trƣ khi loại ỏ s) . Nếu r v t gi o nh u th th m iểm n y v o trong nh s h h ng ợi.

* Nếu p l iểm gi o nh u s v t (v i s ở ƣ i t theo hƣ ng từ tr i qu ) , ho n ổi vị trí s v t trong T. T m oạn r v u (nếu ó) n ƣ i

47

v tr n s t tƣơng ng. Huỷ ỏ iểm ắt rs v tu từ h ng ợi s kiện, v , nếu r ắt t h y s ắt u, th m iểm n y v o h ng ợi s kiện.

2.5.1.4. Phân tích thuật toán

Thu t to n xử lý s kiện mỗi iểm mút oạn hoặ iểm gi o nhau ƣợ sắp xếp theo th t toạ ộ theo trụ x. Khi một s kiện th i ƣợ xử lý, s kiện tiếp theo ( nếu nó l iểm ắt) phải l một iểm gi o nh u 2 oạn thẳng liền kề iểu iễn trong T, ởi v thu t to n lƣu trữ tất ả iểm gi o nh u oạn thẳng nhƣ l s kiện tiềm n ng trong tƣơng l i, v o v y s kiện tiếp theo lu n lu n ó mặt trong h ng ợi s kiện. Kết quả l t m ƣợ hính x iểm ắt oạn thẳng.

Thu t to n BO xử lý huỗi 2n+k s kiện, trong ó n l số oạn thẳng v k l số iểm ắt, mỗi s kiện ƣợ xử lý ởi một số ố ịnh phép toán trong y t m kiếm nhị ph n v h ng ợi s kiện, v ởi v nó hỉ h iểm mút v iểm ắt giữ 2 oạn liền kề n n h ng ơi s kiện h kh ng qu 3n s kiện. Do ó tất ả th o t mất thời gi n l O (logn) v tổng thời gi n thu t to n là O((n+k)logn).

Nếu iểm ắt t m thấy ởi thu t to n kh ng ần phải lƣu trữ một khi t m thấy th kh ng gi n lƣu trữ thu t to n l O(n).

2.5.1.5. Kết luận

Kỹ thu t xếp hồng ản ồ l kỹ thu t rất khó trong qu tr nh ph n tí h th ng tin, òi hỏi phải ó những giải ph p tối ƣu về thời gian và không gian lƣu trữ. Trong phần tr n họ vi n ã tr nh y thu t to n quét òng ể x ịnh s gi o nh u h i oạn thẳng. Tuy thu t to n ơn giản nhƣng nó ƣợ sử ụng nhiều trong qu tr nh th h nh v ơn giản v hiếm ít ộ nh .

2.5.2. Thuật toán giao của hai đa giác

Đã ó nhiều thu t to n t m gi o h i gi ƣợ ng ố. Phần l n thu t to n n y xuất ph t từ t m gi o h i gi lồi. Do v y, nếu vùng nghi n u l gi ất kỳ th húng phải ƣợ t h r th nh gi lồi trƣ khi th hiện thu t to n. Trong lu n v n họ vi n trí h n thu t to n t m tr tiếp gi o h i gi , ó thể p ụng trong hệ GIS vé tơ.

48

Phát biểu bài toán: Hãy t m phần gi o h i gi phẳng kh ng t

ắt A v B. Cho iết A=a1a2... an và B=b1b2 ... bm. 2.5.2.1. Chi tiết thuật toán

Dễ thấy rằng: phần gi o A v B ó thể l t p rỗng h y l t p gi kh ng gi o nh u. Để ơn giản t gọi phần gi o A v B l t p gi gi o, v gọi một ạnh l ạnh t p gi gi o v i ý nghĩ nó l ạnh một gi trong t p gi giao.

V i P l một gi th t gọi I(P) v O(P) lần lƣợt l miền trong v miền ngo i P.

Tƣ tƣởng thu t to n l t m tất ả ạnh t p gi gi o, nếu t p ạnh n y kh rỗng th ằng h ghép húng lại sẽ ƣợ t p gi là giao A v B.

Thu t to n o gồm h i ƣ hính nhƣ s u:

Bước 1: Trường hợp hai đa giác không có cặp cạnh nào song song và giao nhau

V i mỗi ạnh v= iai+1 ∈ (i=1,2,..,n), t t m mọi gi o iểm v v i tất ả ạnh u= kbk+1 ∈ B (k=1,2,..,m), trong ó n+1 và bm+1 tƣơng ng ƣợ gán là a1 và b1.

Đặt Xv= {x| x l gi o iểm ạnh v v i ạnh u ∈ B}∈{ai,ai+1} (nếu trong Xv ó nhiều iểm trùng nh u th hỉ giữ lại một iểm trong số iểm trùng nh u ó).

Sắp xếp iểm trong Xv theo hiều t ng ần về khoảng h từ mỗi iểm ến i, t ƣợ Xv ={x1=ai,x2,..,xlv-1,xlv=ai+1}, v i |Xv|=lv. Khi ó, cạnh xixi+1

(i=1,2,..,lv-1) là m t cạnh của tập đa giác giao nếu trung đi m của nó thu c I(B).

Xử lý tƣơng t ho ạnh gi B.

Bước 2: Trường hợp hai đa giác có cặp cạnh song song và giao nhau

Trƣ hết, t hèn th m những iểm m i v o gi ể nếu ó trƣờng hợp tồn tại ặp ạnh song song v gi o nh u th tạo r ặp ạnh trùng nh u.

Giả sử ạnh iai+1 v ạnh kbk+1 song song v gi o nh u (nhƣng kh ng trùng nh u). T xử lý nhƣ s u:

49

- Nếu i ∈ bkbk+1(ai nằm trong oạn kbk+1), thì chèn ai v o giữ k và bk+1, t l oi kai và aibk+1 l h i ạnh m i gi B.

- Xử lý tƣơng t ho ỉnh: i+1, bk và bk+1.

S u ó, xét mỗi ặp ạnh trùng nh u v= iai+1∈A và u=bkbk+1∈ B (giả sử i∈bk và ai+1∈bk+1), th hiện th o t t m gi o iểm v sắp xếp nhƣ ƣ 1 ở tr n v i h i ạnh ai+1ai+2 và bk+1bk+2 ta ƣợ hai t p hợp:

Xv={x1=ai+1,x2,..,xlv-1,xlv=ai+2}, Yu={y1=bk+1,y2,..,ylu-1,ylu=bk+2}.

Để kiểm tr xem ạnh iai+1 (hoặ kbk+1) ó l một ạnh t p gi gi o h y kh ng, t v o tính hất sau:

Gọi N và M lần lư t là trung đi m các cạnh x1x2 và y1y2. Khi đó, cạnh aiai+1 (hoặc bkbk+1) là m t cạnh của tập đa giác giao nếu m t trong hai điều kiện sau thoả mãn:

1. NI(B) và M O(A). 2. N O(B) và M I(A). Chứng minh:

Để h ng minh tính hất tr n t sử ụng h i kết quả s u:

1. Nếu i theo hiều thu n ( hiều ngƣợ v i hiều kim ồng hồ) theo ạnh gi P th I(P) v O(P) tƣơng ng nằm về phí n tr i v phí n phải ọ theo hƣ ng i.

2. Nếu iết trƣ một iểm MI(P) (O(P)), th I(P) (O(P)) sẽ nằm ùng phí so v i M v O(P) (I(P)) sẽ nằm kh phí so v i M, theo một hƣ ng i tr n một ạnh n o ó thuộ gi P.

Xét về vị trí tƣơng ối M v i gi A v N v i gi B t thấy hỉ ó ốn trƣờng hợp sau:

1. N ∈ I(B) và M ∈ O(A). 2. N ∈ O(B) và M ∈ I(A). 3. N∈ I(B) và M ∈ I(A) 4. N∈ O(B) và M ∈ O(A) Xét trƣờng hợp 1:

* Vì N ∈ I (B) → hiều thu n gi B l hiều i từ k ến k+1 (1) ai

bk

ai+ bk+

50

* Vì M ∈ O (A) → hiều thu n gi A l hiều i từ i ến i+1 (2) Từ (1), (2) v giả thiết iai+1 bkbk+1 → một gi l gi o A v B nh n iai+1 l ạnh v i hiều thu n l hiều từ i t i i+1.

Ch ng minh tƣơng t ho trƣờng hợp 2, t thu ƣợ kết quả: một gi l gi o A v B nh n aiai+1 l ạnh v i hiều thu n l hiều từ i+1 t i i.

Tóm lại, trong ả h i trƣờng hợp th aiai+1 l một ạnh t p gi gi o. Bằng h h ng minh tƣơng t ho h i trƣờng hợp òn lại (trƣờng hợp 3 v 4 t ều thu ƣợ kết quả: iai+1 không phải l ạnh t p gi gi o)

Các thuật toán liên quan

Thu t toán trình bày trên ó sử ụng hai thu t to n kh ể cài ặt, ó là kiểm tr iểm trong giác và tìm giao h i oạn thẳng. Để kiểm tr một iểm có nằm trong giác hay không ta có thể sử ụng thu t toán sau:

Đầu v o: Cho trƣ gi P v iểm p Đầu r : p nằm trong h y ngo i P.

begin if (p nằm tr n ạnh P), p trong P else ếm=0 l= ti song song trụ X vẽ từ p for (i=1 to n) begin

if (nếu ạnh (i) ắt l) and not ạnh (i) kh ng trùng v i l) then begin

if (một ầu uối ạnh (i) nằm phí tr n ti l)

ếm= ếm+1 end end for if ( ếm l lẻ), p nằm trong P end if end

Để t m gi o h i oạn thẳng t sử ụng thu t to n iểu iễn oạn thẳng ằng phƣơng tr nh th m số nhƣ sau:

Phƣơng tr nh oạn thẳng l ạnh gi ƣợ x ịnh từ h i toạ ộ ỉnh li n tiếp. Giả sử t ó th m số t th y ổi từ 0 ến 1 ho phần oạn thẳng AB giữ h i ỉnh gi v ó gi trị 0 tại một ầu, gi trị 1 tại ầu uối ki . V y v i 0 t 1, ta có:

51

x = xA + t (xB – xA) y = yA + t (yB – yA) (1)

Tƣơng t , ạnh CD gi th h i sẽ ƣợ iểu iễn ởi th m số s

v phƣơng tr nh s u: x = xC + s (xD – xC) y = yC + s (yD – yC) (2) Từ ng th s u y t tính ƣợ gi trị t s: t = s = (3) trong ó, nếu 0 t 1 và 0 s 1 th h i oạn thẳng ắt nh u tại một iểm v gi o iểm n y ƣợ tính từ (1) v (2).

2.5.2.2. Phân tích và cài đặt thuật toán

Phần n y tr nh y tóm tắt ƣ hính i ặt h n ng xếp hồng h ề ản ồ trong hệ thống GIS vé tơ. Giả sử t phải th hiện tính to n phần ph vùng ị lý ƣợ iểu iễn ởi gi P trong h ề T1 v i vùng h ề T2.

Bước 1. X ịnh xem gi P h ề T1 gi o v i gi n o

h ề T2 . Một ản ồ h ề h v số gi (thí ụ ản ồ h nh hính Việt n m hi ến ấp xã ó ến 10511 xã), gi iểu iễn xã lại ó v số ạnh. Để t ng tố ộ xử lý m y tính t sẽ kh ng so s nh gi P T1 v i mọi gi T2. Cấu trú CSDL ị lý thƣờng lƣu trữ hữ nh t o gi . Trƣ khi kiểm tr h i gi ó gi o nh u h y kh ng th ần kiểm tr hữ nh t o húng ó gi o nh u h y kh ng v h i gi gi o nh u hỉ khi h i hữ nh t o húng gi o nh u. Giải ph p n y l m giảm ng kể số lần tính to n. Việ x ịnh hính x h i gi P, Q ó gi o nh u h y kh ng ƣợ th hiện theo thu t to n s u:

Đầu v o: Đ gi P, Q

Đầu r : P v Q ó gi o nh u?

Begin

52 begin p = iểm ất kỳ n o tr n i n P if (p nằm trong Q) P Q Else Begin q = iểm ất kỳ tr n i n Q If (q nằm trong Q) Q P else

P và Q không giao nhau

End End.

Độ ph tạp thu t to n t m gi o ạnh h i gi sẽ l O (nlogn).

Bước 2. Ph n l p ỉnh gi P v Q. Mỗi ỉnh gi ƣợ g n

ởi gi trị I (trong), O (ngo i) h y B ( i n) so v i gi ki . C gi trị n y ƣợ th hiện nhờ thu t to n iểm trong gi tr nh y tr n. C gi trị

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu phương pháp tích hợp kỹ thuật phân tích không gian và phân tích thứ bậc mờ trong GIS (Trang 55)

Tải bản đầy đủ (PDF)

(92 trang)