Th ut toán chia nh phân

Một phần của tài liệu giáo trình đồ họa máy tính (Trang 72 - 75)

Giáotrình H aMáyTính 69

Sutherland. M i i m hai u mút o n th ng trong hình nh s ư c gán m t mã nh phân4bit, ư cg ilàmãvùng, giúpnh nravùngt a c am t i m.Cácvùng này ư cxâyd ngd atrêns xemxétv i biênc as ,như hình6-8. M iv tríbit trong mãvùng ư cdùng ch ram ttrongb nv trít a tương ngc a i mso v i c a s : bên trái(left), ph i(right), trên nh (top),dư i áy (bottom). Vi c ánh s theov tríbittrongmãvùngt 1 n4chot ph isangtrái, cácvùngt a cóth liênquanv iv tríbitnhưsau:

Hình 5.5: Mã hóa các u mút c a o n th ng

Giátr 1 b tkỳv trínàoch rar ng i m v trítương ng,ngư cl ibit v trí ólà 0. N u m t i m n m trongc a s ,mã v trí là0000. M t i m bêndư i và bêntráic as cómãvùnglà0101.

Cài t minh h a thu t toán mã hóa

byte EncodePoint(Point LeftTop, Point RightBottom, Point P) { byte code = 0; if (P.X < LeftTop.X) { code |= 8; } if (P.X > RightBottom.X) { code |= 4; } if (P.Y < RightBottom.Y) Giáotrình H aMáyTính 70 {

code |= 2; } if (P.Y > LeftTop.Y) { code |= 1; } return code; }

Thu t toán chia nh phân

1. N u E(A)=0và E(B)=0k tlu n AB∩(R)= AB;thu ttoánd ng. 2. N u[E(A)AND E(B)]!=0k tlu n AB∩(R)=∅;k tthúcthu ttoán. 3. N u E(A)=0và E(B) ≠ 0(t c A∈(R)và B∉ (R))th chi n:

a. t C= A, D= B.

b. Trongkhi dài||CD||l nhơn ε t Mlàtrung i mc a o n CD.

N u E(M)=0thìc pnh t C= Mngư cl i D= M. c. K tlu n AB∩(R)= AM;k tthúcthu ttoán.

4. N u E(A)=0và E(B)=0,hoán ivaitròc a Avà B;l pl ibư c3. 5. Ngư cl i,th chi n:

a. t C= A, D= B.

b. Trongkhi dài||CD||l nhơn ε t Mlàtrung i mc a o n CD.

N u E(M) = 0 áp d ng Bư c 3 cho hai o n MC và MD. K t lu n

AB∩(R)= CD;k tthúcthu ttoán.

N u[E(M)AND E(R)]!=0 t C= M.

Giáotrình H aMáyTính 71

N u[E(R)AND E(D)]!=0k tlu n AB∩(R)=∅;k tthúcthu ttoán.

Hình 5.6: Minh h a c a thu t toán chia nh phân.

Một phần của tài liệu giáo trình đồ họa máy tính (Trang 72 - 75)

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

(126 trang)
w