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

Chương 2: Các thuật toán đồ họa cơ sở-Ths.Vũ Minh Yến ppt

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

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Chương 2: Các thuật toán đồ họa cơ sở
Người hướng dẫn Ths. Vũ Minh Yến
Trường học Khoa Công nghệ Thông tin, ĐH Bách Khoa Hà Nội
Chuyên ngành Các thuật toán đồ họa cơ sở
Thể loại Giáo trình
Thành phố Hà Nội
Định dạng
Số trang 56
Dung lượng 218,01 KB

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

Nội dung

Giải quyết bài toán Thuật toán làm tròn số Thuật toán Bresenham... Thuật toán làm tròn số Thuật toán xấp xỉ Thuật toán Bresenham... Các thuật toán vẽ elip Xét cung AB: Vecto gradien

Trang 1

Chương 2

Các thuật toán đồ hoạ c ơ ơ s s ở

Giảng viên: Ths.Vũ Minh Yến

Tổ HTTT- Khoa CNTT

Trang 2

Nội dung

2.1 Các thu ậ t toán v ẽ đo ạ n th ẳ ng 2.2 Các thu ậ t toán v ẽ đư ờ ng tròn 2.3 Các thu ậ t toán v ẽ elip

2.4 Các thu ậ t toán clipping

2.5 Các thu ậ t toán tô màu

Trang 3

2.1 Các thu ậ t toán v ẽ đo ạ n th ẳ ng

 Bài toán:

 Input: Cho đoạn thẳng AB: A(xA; yA), B(xB; yB).

 Output: Vẽ đoạn thẳng AB trên màn hình.

 Giải quyết bài toán

 Thuật toán làm tròn số

 Thuật toán Bresenham

Trang 4

A B

A

x x

A B

x x

y

y m

=

(x xA ) yAm

Trang 5

Thuật toán làm tròn số

 Chia thành 4 trường hợp:

 TH1: AB song song với Oy

 TH2: AB song song với Ox

(4)

Trang 9

Thu ậ t toán làm tròn s ố

 TH4: |m| > 1 tương tự TH3 TH4

khi đổi vai trò x, y.

 Bước 1: Nếu yA > yB thì: Hoán

Trang 10

Thu ậ t toán Breseham

(6)

y

Trang 11

Thu ậ t toán Breseham

 TH3: TH3 0 < m 1

y

x O(0,0)

Trang 12

Thu ậ t toán Breseham

Trang 13

Thu ậ t toán Breseham

Trang 14

Thu ậ t toán Breseham

Trang 15

Thu ậ t toán Breseham

 Xét P1= 2dy.x1-2dx.y1+ 2dy(1-xA)+2dx.yA-dx

= 2dy-dx =const

Trang 16

Thu ậ t toán Bresenham

Trang 17

Thuật toán Breseham

 TH4: -1 m <0

Sinh viên tự xây dựng

thuật toán tương tự TH3:

Trang 18

Thu ậ t toán Breseham

Trang 19

x x

x

1 1

Trang 20

x

Trang 21

2.2 Các thu ậ t toán v ẽ đ ư ờ ng tròn

 Input: Cho tâm O(0,0), bán kính r

 Output: Vẽ đường tròn tâm O, bán kính r.

 Thuật toán làm tròn số

 Thuật toán xấp xỉ

 Thuật toán Bresenham

Trang 22

Thuật toán làm tròn số

 Theo phương trình đi s:

 Cung AB:

 Xét trên cung AB: nếu ∆x=1 thì

|∆y|≤1 nên lấy cơ sở theo x

 Bước 1: x=0; y=r;

 Bước 2: Vẽ 8 điểm:

M1(x,y), M2(y;x),M3(y;-x), M4(x;-y),

M5(-x;-y), M6(-y;-x), M7(-y;x), M8(-x;y)

r x

x r

2 2

x

r −

Trang 23

Thuật toán làm tròn số

 Theo phương trình lưng giác c:

 Bước 1: alpha=0; step=1/r;

Trang 24

y r

x

α

α

cos '

sin '

Trang 25

1 0

'

+ +

+

+

→ +

i i

i i

step i

x step

y y

y

y y

α

α α

α

i i

y +1 ≈ +1 α +

i i

i

i i

i i

step i

y step

x x

x x

α

1

1

1 0

'

lim

α

step y

x

xi+1 ≈ ii.

Trang 26

Thuật toán Bresenham

y

x O

Trang 27

Thuật toán Bresenham

Trang 28

Thuật toán Bresenham

Trang 29

Thuật toán Bresenham

Trang 30

2.3 Các thuật toán vẽ elip

 Phương trình elip tâm O(0;0), bán kính a, b:

 Tính chất đối xứng

0 )

, ( x y = b2x2 + a2 y2 − a2b2 =

F

x O

Trang 31

2.3 Các thuật toán vẽ elip

 Xét cung AB:

 Vecto gradient tại M có

độ dốc bằng 1.

 Ta có:

 Cung AM: ∆x=1 ⇒ ∆y≤1 ⇒ Lấy cơ sở theo x

 Cung MB: ∆x=1 ⇒ ∆y≥1 ⇒ Lấy cơ sở theo y

)

(M

F Grad

F i

x

F y

x F

Grad

∂+

=),(

y

F x

x a

b y

y a x

2 2

2 2

2

; 2

2

Trang 32

2.3 Các thuật toán vẽ elip

O

A

B M

Trang 33

2.3 Các thuật toán vẽ elip

 Thut toán Bresenham: n Bresenham: (xét tương tự đường tròn)

 Tính trên cung AM:

2 1

2 1

1 i

i 1

i

1 y

1;

x x

d d

y

d d

y

i i

y

x O

d2≈

≈ d1

xi xi+1

yi

Trang 34

2.3 Các thuật toán vẽ elip

 Thuật toán Vanaken:

Trang 35

2.4 Các thuật toán clipping

Trang 36

Thuật toán Cohen-Surtheland

nằm hoàn toàn trong cửa sổ

 TH2: Nếu KOD(A) and TH2:

1001 0001

0101

y1

y2

Trang 37

Thuật toán Cohen-Surtheland

1001 0000

A B

A B

A

A

y x

x x x

y y

y

x x

1 1

1 1

A B

A B

A

A

y x

x x x

y y

y

x x

2 2

1 1

Trang 38

Thuật toán Cohen-Surtheland

A B

A B

A

A

x y

y y y

x x

x

y y

1

1

1 1

A B

A B

A

A

x y

y y y

x x

x

y y

2

2

1 1

Trang 39

Thuật toán Cohen-Surtheland

 Thut toán:

 Bước 1: Tính KOD(A), KOD(B)

 Bước 2: Nếu KOD(A)=

Tính A1=AB ∩ cửa sổ và A=A1

 Nếu b1=1: A=A1=AB∩(x=x1)

y x

x x

x

y y

y

A

A A

A B

A B

A

 Nếu b2=1: A=A1=AB∩ (x=x2)

 Nếu b3=1: A=A1=AB ∩ (y=y1)

 Nếu b4=1: A=A1=AB ∩ (y=y2)

x y

y y y

x x x

A

A A

A B

A B

y x

x x x

y y

y

A

A A

A B

A B

x y

y y y

x x x

A

A A

A B

A B

A

Trang 40

Thuật toán Liang-Basky

 Phương trình đoạn AB dạng tham số:

 Đ iểm M(x, y) thuộc cửa sổ

2 1

x

y y

y

x x

=

= +

=

] 1

; 0 [

y y

dy tdy

y y

x x

dx tdx

x x

A B

A

A B

≤ +

1 0

2 1

2 1

t

y tdy

y y

x tdx

x x

A A

(1)

Trang 41

Thuật toán Liang-Basky

2 1 2 1

t

y y

tdy

y y

tdy

x x

tdx

x x

tdx

A A A A

4

1 3

3

2 2

2

1 1

1

y y

q dy

p

y y

q dy

p

x x

q dx

p

x x

q dx

p

A A A A

4

;

1 )

2

(

t

i q

tpi i

}4

;1,

0

|{

}4

;1,

0

|{

i L

i p

i K

i i

/

/)

3(

t

L i

p q

t

K i

p q

t

i i

i i

(2)

(3)

(4)

 Đặt:

Trang 42

Thuật toán Liang-Basky

q t

K

i p

q t

i i i i

0 max

1 min

)

4

(

U U

1 min

q t

K i p

q t

i i i i

1

Trang 43

Thuật toán Liang-Basky

; 0

; 1

2 4

4

1 3

3

2 2

2

1 1

y y q

dy p

y y q dy

p

x x q

dx p

x x q dx

p

y y dy x

x dx

A A A A

A B A

1 1

; max

, min

t p

q t

t p

q t

i i i i

dx t x

x B

dy t y y

dx t x

x A

A B

A B

A A

A A

2

2 1

1

1 1

1 1 1 1

Trang 44

2.5 Các thuật toán tô màu

 Thuật toán vết dầu loang

 Thuật toán tô màu theo đường biên

 Thuật toán tô màu theo dòng quét.

Trang 45

Thuật toán vết dầu loang

 Input:

 Miền khép kín xác định bởi mầu biên: mb

 Một điểm M(x; y) thuộc miền cần tô

 Mầu tô: mt

 Output: Tô màu miền khép kín trên bằng mầu tô.

Trang 46

Thuật toán vết dầu loang

 Mô t:

15 14

25 16 13

18 17 12 11

19

(x,y)

8 9 10

24 20 1

7

23 21 2

6

22 3

4 5

Trang 47

Thuật toán vết dầu loang

Trang 48

Thu ậ t toán tô màu theo đư ờ ng biên

 Input:

 Output: Tô màu miền khép kín trên bằng mầu tô Output:

Trang 49

Thu ậ t toán tô màu theo đư ờ ng biên

Trang 50

Thu ậ t toán tô màu theo đư ờ ng biên

 Bước 1: Tìm biên trái nhất và biên phải nhất

x1=x; x2=x;

while (màu(x1-1,y)<>mb) x1=x1-1;

while (màu(x2+1,y)<>mb) x2=x2+1;

 Bước 2: Vẽ đoạn (x1,y) và (x2,y) bằng màu tô (mt)

 Bước 3: Tính điểm phát triển tiếp theo:

Trang 51

Thu ậ t toán tô màu theo dòng quét

Trang 52

Thu ậ t toán tô màu theo dòng quét

 Tô màu hình thang cơ bn:

 Định nghĩa hình thang cơ bản: là hình thang có đáy song

song với một trục toạ độ

y y y

xA xD

1

xB y

y y y

xB xC

2

B A

Trang 53

Thu ậ t toán tô màu theo dòng quét

 Áp dụng: Tô màu đa giác A1A2 A9

 Gọi thủ tục tô màu hình

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

Trang 54

Thu ậ t toán tô màu theo dòng quét

 Bài toán:

 Input:

 Cho các đỉnh của n giác:

A1 , A2 , , An

 Cho màu tô (mt)

 Output: Tô màu n giác

trên bằng màu mt

A1

A3 A2

A4

A5

A6

A7 A8

Trang 55

Thu ậ t toán tô màu theo dòng quét

 Bước 4: Nối các giao điểm M2i+1 và M2i+2 bằng mt

với i={0,1, ,k-1}

 Bước 5: Nếu y≤ ymax: Bước 3;

 Bước 6: Kết thúc

Trang 56

Thu ậ t toán tô màu theo dòng quét

 Cài đặt: tham khảo tài liệu

Ngày đăng: 29/06/2014, 10:20

TỪ KHÓA LIÊN QUAN

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

w