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

Bai tap do hoa may tinh uit

306 466 1

Đ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

Định dạng
Số trang 306
Dung lượng 7,75 MB

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

Nội dung

Full bài tập chi tiết đồ họa máy tính của đại học công nghệ thông tin. Đầy đủ các thuật toán vẽ hình, tô màu, xén hình...................................................................................................

Trang 1

Nguyễn Tấn Trần Minh Khang

Nguyễn Hoàng Ngân

Trang 2

CHƯƠNG 1 ĐƯỜNG THẲNG 1

1.1 ĐƯỜNGTHẲNG𝟎 < 𝒎 < 𝟏 1

1.2 ĐƯỜNGTHẲNG𝒎 > 𝟏 4

1.3 ĐƯỜNGTHẲNG−𝟏 < 𝒎 < 𝟎 4

1.4 ĐƯỜNGTHẲNG 𝒎 < −𝟏 4

1.5 BÀITẬPNÂNGCAOCHƯƠNG1 5

1.6 GIẢIBÀITẬPĐƯỜNGTHẲNG𝟎 < 𝒎 < 𝟏 6

1.7 GIẢIBÀITẬPĐƯỜNGTHẲNG𝒎 > 𝟏 44

1.8 GIẢIBÀITẬPĐƯỜNGTHẲNG−𝟏 < 𝒎 < 𝟎 56

1.9 GIẢIBÀITẬPĐƯỜNGTHẲNG𝒎 < −𝟏 67

1.10 GIẢIBÀITẬPNÂNGCAOCHƯƠNG1 79

CHƯƠNG 2 CÁC ĐƯỜNG CONIC 79

2.1 ĐƯỜNGTRÒN 79

2.2 ĐƯỜNGELIP 79

2.3 ĐƯỜNGPARABOL 80

2.4 ĐƯỜNGCUBIC 80

2.5 ĐƯỜNGHYPERBOL 80

2.6 GIẢIBÀITẬPĐƯỜNGTRÒN 81

2.7 GIẢIBÀITẬPĐƯỜNGELIP 81

2.8 GIẢIBÀITẬPĐƯỜNGPARABOL 84

2.9 GIẢIBÀITẬPĐƯỜNGCUBIC 85

2.10 GIẢIBÀITẬPĐƯỜNGHYPERBOL 85

CHƯƠNG 3 PHÉP BIẾN ĐỔI AFFINE 86

3.1 TỔNGQUÁT 86

3.2 PHÉPBIẾNĐỔITỊNHTIẾN 86

3.3 PHÉPBIẾNĐỔITỈLỆ 88

3.4 PHÉPQUAY 89

3.5 BÀITẬPCHƯƠNG3 90

3.6 GIẢIBÀITẬPCHƯƠNG3 93

CHƯƠNG 4 VẼ HÌNH 146

4.1 ĐAGIÁCĐỀU 146

4.2 NGÔISAO 147

Trang 3

ii

4.3 CƠSỞTOÁNHỌC 149

4.4 GIẢIBÀITẬPĐAGIÁCĐỀU 150

4.5 GIẢIBÀITẬPNGÔISAO 171

CHƯƠNG 5 XÉN HÌNH 178

5.1 THUẬTTOÁNCOHEN-SUTHERLAND 178

5.2 THUẬTTOÁNLIANG-BARSKY 179

5.3 THUẬTTOÁNSUTHERLAND-HODGEMAN 179

5.4 GIẢIBÀITẬPTHUẬTTOÁNCOHEN-SUTHERLAND 181

5.5 GIẢIBÀITẬPTHUẬTTOÁNLIANG-BARSKY 188

5.6 GIẢIBÀITẬPTHUẬTTOÁNSUTHERLAND-HODGEMAN 199

CHƯƠNG 6 TÔ MÀU 202

6.1 CÁCBÀITẬPCƠBẢN 202

6.2 THUẬTTOÁNTÔMÀUDỰATHEOĐƯỜNGBIÊN 202

6.3 THUẬTTOÁNTÔMÀUDỰATHEODÒNGQUÉT 203

6.4 TÔPHẦNGIAOGIỮACÁCĐỐITƯỢNG 205

6.5 GIẢICÁCBÀITẬPCƠBẢN 206

6.6 GIẢICÁCBÀITẬPTHUẬTTOÁNTÔMÀUDỰATHEOĐƯỜNGBIÊN 229 6.7 GIẢICÁCBÀITẬPTHUẬTTOÁNTÔMÀUDỰATHEODÒNGQUÉT 235 6.8 GIẢICÁCBÀITẬPTÔPHẦNGIAOGIỮACÁCĐỐITƯỢNG 243

CHƯƠNG 7 CÁC BÀI TOÁN HÌNH HỌC 258

7.1 BÀITẬP 258

7.2 GIẢIBÀITẬP 260

CHƯƠNG 8 ĐƯỜNG CONG BEZIER 282

8.1 ĐƯỜNGCONGBEZIERTỔNGQUÁT 282

8.2 ĐƯỜNGCONGBEZIERBẬC1 283

8.3 ĐƯỜNGCONGBEZIERBẬC2 283

8.4 ĐƯỜNGCONGBEZIERBẬC3 284

8.5 BÀITẬPCHƯƠNG8 284

8.6 GIẢIBÀITẬPCHƯƠNG8 286

Trang 4

Bài 2 Trình bày thuật toán 𝐷𝐷𝐴 vẽ đường thẳng đi qua hai điểm (𝑥-, 𝑦-) và (𝑥1, 𝑦1) có 0 < 𝑚 < 1

và 𝑑𝑥 > 0 (sinh viên chỉ vẽ lưu đồ)

Bài 3 Tìm điểm nguyên của đoạn 𝐴𝐵 với 𝐴(1,1) và 𝐵(11,5) bằng thuật toán 𝐷𝐷𝐴

Bài 4 Tìm điểm nguyên của đoạn 𝐶𝐷 với 𝐶(320,135) và 𝐷(332,141) bằng thuật toán 𝐷𝐷𝐴 (trình bày tương tự bài 3)

Bài 5 Tìm điểm nguyên của đoạn 𝐸𝐹 với 𝐸(56,13) và 𝐹(68,17) bằng thuật toán 𝐷𝐷𝐴 (trình bày tương tự bài 3)

Bài 6 Thiết kế thuật toán 𝐷𝐷𝐴 vẽ đường thẳng đi qua hai điểm (𝑥-, 𝑦-) và (𝑥1, 𝑦1) có 0 < 𝑚 < 1 và

𝑑𝑥 < 0

Bài 7 Trình bày thuật toán 𝐷𝐷𝐴 vẽ đường thẳng đi qua hai điểm (𝑥-, 𝑦-) và (𝑥1, 𝑦1) có 0 < 𝑚 < 1

và 𝑑𝑥 < 0 (sinh viên chỉ vẽ lưu đồ)

Bài 8 Tìm điểm nguyên của đoạn 𝐴𝐵 𝑣ớ𝑖 𝐴(16,10) và 𝐵(5,7) bằng thuật toán 𝐷𝐷𝐴 (trình bày tương

Bài 12 Trình bày thuật toán 𝐵𝑟𝑒𝑠𝑒𝑛ℎ𝑎𝑚 vẽ đường thẳng đi qua hai điểm (𝑥-, 𝑦-) và (𝑥1, 𝑦1) có 0 <

𝑚 < 1 và 𝑑𝑥 > 0 (sinh viên chỉ vẽ lưu đồ)

Bài 13 Tìm điểm nguyên của đoạn 𝐴𝐵 với 𝐴(1,1) và 𝐵(11,5) bằng thuật toán 𝐵𝑟𝑒𝑠𝑒𝑛ℎ𝑎𝑚

Trang 5

Bài 14 Tìm điểm nguyên của đoạn 𝐶𝐷 với 𝐶(320,135) và 𝐷(332,141) bằng thuật toán 𝐵𝑟𝑒𝑠𝑒𝑛ℎ𝑎𝑚

(trình bày tương tự bài 13)

Bài 15 Tìm điểm nguyên của đoạn 𝐸𝐹 với 𝐸(56,13) và 𝐹(68,17) bằng thuật toán 𝐵𝑟𝑒𝑠𝑒𝑛ℎ𝑎𝑚 (trình

bày tương tự bài 13)

Bài 16 Thiết kế thuật toán 𝐵𝑟𝑒𝑠𝑒𝑛ℎ𝑎𝑚 vẽ đường thẳng đi qua hai điểm (𝑥-, 𝑦-) và (𝑥1, 𝑦1) có 0 <

𝑚 < 1 và 𝑑𝑥 < 0

Bài 17 Trình bày thuật toán 𝐵𝑟𝑒𝑠𝑒𝑛ℎ𝑎𝑚 vẽ đường thẳng đi qua hai điểm (𝑥-, 𝑦-) và (𝑥1, 𝑦1) có 0 <

𝑚 < 1 và 𝑑𝑥 < 0 (sinh viên chỉ vẽ lưu đồ)

Bài 18 Tìm điểm nguyên của đoạn 𝐴𝐵 với 𝐴(16,10) và 𝐵(5,7) bằng thuật toán 𝐵𝑟𝑒𝑠𝑒𝑛ℎ𝑎𝑚 (trình

bày tương tự bài 13)

Bài 19 Tìm điểm nguyên của đoạn 𝐶𝐷 với 𝐶(571,117) và 𝐷(557,110) bằng thuật toán 𝐵𝑟𝑒𝑠𝑒𝑛ℎ𝑎𝑚

(trình bày tương tự bài 13)

Bài 20 Tìm điểm nguyên của đoạn 𝐸𝐹 với 𝐸(126,12) và 𝐹(116,10) bằng thuật toán 𝐵𝑟𝑒𝑠𝑒𝑛ℎ𝑎𝑚

(trình bày tương tự bài 13)

1.1.3 Thuật toán 𝑴𝒊𝒅𝒑𝒐𝒊𝒏𝒕

Bài 21 Thiết kế thuật toán 𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡 vẽ đường thẳng đi qua hai điểm (𝑥-, 𝑦-) và (𝑥1, 𝑦1) có 0 < 𝑚 <

1 và 𝑑𝑥 > 0

Bài 22 Trình bày thuật toán 𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡 vẽ đường thẳng đi qua hai điểm (𝑥-, 𝑦-) và (𝑥1, 𝑦1) có 0 <

𝑚 < 1 và 𝑑𝑥 > 0 (sinh viên chỉ vẽ lưu đồ)

Bài 23 Tìm điểm nguyên của đoạn 𝐴𝐵 với 𝐴(1,1) và 𝐵(11,5) bằng thuật toán 𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡 (Giống 13) Bài 24 Tìm điểm nguyên của đoạn 𝐶𝐷 với 𝐶(320,135) và 𝐷(332,141) bằng thuật toán 𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡

(trình bày tương tự bài 23) Giống 14

Bài 25 Tìm điểm nguyên của đoạn 𝐸𝐹 với 𝐸(56,13) và 𝐹(68,17) bằng thuật toán 𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡 (trình

bày tương tự bài 23) Giống 15

Bài 26 Thiết kế thuật toán 𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡 vẽ đường thẳng đi qua hai điểm (𝑥-, 𝑦-) và (𝑥1, 𝑦1) có 0 < 𝑚 <

1 và 𝑑𝑥 < 0 Coi lại

Bài 27 Trình bày thuật toán 𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡 vẽ đường thẳng đi qua hai điểm (𝑥-, 𝑦-) và (𝑥1, 𝑦1) có 0 <

𝑚 < 1 và 𝑑𝑥 < 0 (sinh viên chỉ vẽ lưu đồ)

Bài 28 Tìm điểm nguyên của đoạn 𝐴𝐵 với 𝐴(16,10) và 𝐵(5,7) bằng thuật toán 𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡 (trình bày

tương tự bài 23) Giống 18

Bài 29 Tìm điểm nguyên của đoạn 𝐶𝐷 với 𝐶(571,117) và 𝐷(557,110) bằng thuật toán 𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡

(trình bày tương tự bài 23) Giống 19

Trang 6

Bài 30 Tìm điểm nguyên của đoạn 𝐸𝐹 với 𝐴(126,12) và 𝐵(116,10) bằng thuật toán 𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡 (trình

bày tương tự bài 23) Giống 20

Trang 8

Bài 45 Thiết kế thuật toán 𝐵𝑟𝑒𝑠𝑒𝑛ℎ𝑎𝑚 vẽ đường thẳng đi qua hai điểm (𝑥1, 𝑦1) và (𝑥1, 𝑦1) có 𝑚 <

1.5 BÀI TẬP NÂNG CAO CHƯƠNG 1

Bài 49 Trình bày các bước chính để vẽ đường cong 𝑦 = 𝑓(𝑥) theo phương pháp Bresenham Minh

họa bằng cách xây dựng thuật toán vẽ đường thẳng qua hai điểm 𝐴(𝑥`, 𝑦`), 𝐵(𝑥a, 𝑦a) trong trường hợp hệ số góc |𝑚| > 1 Hoàn chỉnh thuật toán trên bằng ngôn ngữ C Áp dụng tìm những điểm nguyên nằm trên đường thẳng 𝐴𝐵 và 𝐶𝐷 theo thuật toán trên biết: A(15,6), B(10,16) C(8,16), D(14,4) (Đề Thi Tốt Nghiệp Cao Đẳng Đồng Nai)

Trang 9

1.6 GIẢI BÀI TẬP ĐƯỜNG THẲNG 𝟎 < 𝒎 < 𝟏

1.6.1 Thuật toán DDA

1

1

1

i i i

i i

y y y x x

Trang 11

Bài 2 Trình bày thuật toán 𝑫𝑫𝑨 vẽ đường thẳng đi qua hai điểm (𝒙𝟏, 𝒚𝟏) và (𝒙𝟐, 𝒚𝟐) có 𝟎 <

𝑚 < 1 và 𝒅𝒙 > 0 (sinh viên chỉ vẽ lưu đồ)

- Trình bày lưu đồ thuật toán

-A

B y y

-Dx Dy

m =

Trang 12

x Y x nguyên Điểm nguyên

Trang 13

Bài 4 Tìm điểm nguyên của đoạn 𝑪𝑫 với 𝑪(𝟑𝟐𝟎, 𝟏𝟑𝟓) 𝒗à 𝑫(𝟑𝟑𝟐, 𝟏𝟒𝟏) bằng thuật toán 𝐷𝐷𝐴

(trình bày tương tự bài 3)

- Trình bày lưu đồ thuật toán

-E

F y y

-Dx Dy

m =

Trang 14

X Y y nguyên Điểm nguyên

- Với thuật toán 𝐷𝐷𝐴 việc quyết định chọn yi+1 là yi hay yi -1 được dựa vào phương trình

đường thẳng y=mx+b Nghĩa là, ta sẽ tính I(x i - 1, y) thuộc về đường thẳng thực và yi+1 sẽ là

î í

1

1

1

i i i

i i

y y y x x

Trang 16

Bài 7 Trình bày thuật toán 𝑫𝑫𝑨 vẽ đường thẳng đi qua hai điểm (𝒙𝟏, 𝒚𝟏) và (𝒙𝟐, 𝒚𝟐) có 𝟎 <

𝑚 < 1 và 𝒅𝒙 < 0 (sinh viên chỉ vẽ lưu đồ)

-A

B y y

-Dx Dy

m =

Trang 18

Bài 9 Tìm điểm nguyên của đoạn CD với C(571,117) và D(557,110) bằng thuật toán 𝑫𝑫𝑨 (trình

bày tương tự bài 3)

- Trình bày lưu đồ thuật toán

bày tương tự bài 3)

- Trình bày lưu đồ thuật toán

-E

F y y

-Dx Dy

m =

Trang 19

X Y y nguyên Điểm nguyên

1.6.2 Thuật toán Bresenham

𝟎 < 𝑚 < 1 và 𝒅𝒙 > 0

- Với các đoạn thẳng dạng này nếu (xi,yi) là điểm vẽ đã được xác định ở bước thứ i (điểm màu đen) thì điểm cần chọn (xi+1, yi+1) ở bước thứ i+1 sẽ là một trong hai trường hợp của hình vẽ sau:

- Như vậy:

î í

1

1

1

i i i

i i

y y y x x

Trang 20

- Với thuật toán Bresenham việc quyết định chọn yi+1 là yi hay yi+1 được dựa vào vị trí tương đối của điểm I so với điểm S và điểm P

Trang 21

pi+1 – pi = 2Dy(xi+1 – xi) – 2Dx (yi+1 – yi)

pi+1 = pi + 2Dy(xi+1 – xi) – 2Dx (yi+1 – yi)

pi+1 = pi + 2Dy – 2Dx (yi+1 – yi)

- Từ đây ta suy ra được cách tính pi+1 từ pi như sau:

- Giá trị p0 được tính từ điểm vẽ đầu tiên (𝑥-, 𝑦-)

pi = 2Dyxi – 2Dxyi + 2bDx + 2Dy – Dx

p0 = 2Dyx1 – 2Dxy1 + 2bDx + 2Dy – Dx

Trang 23

Bài 12 Trình bày thuật toán Bresenham vẽ đường thẳng đi qua hai điểm (𝒙𝟏, 𝒚𝟏) và (𝒙𝟐, 𝒚𝟐) có

𝟎 < 𝑚 < 1 và 𝒅𝒙 > 0 (sinh viên chỉ vẽ lưu đồ)

- Trình bày thuật toán

- Tính Dx = xB - xA = 11 - 1 = 10

- Tính Dy = yB - yA = 5 - 1 = 4

Trang 25

Bài 14 Tìm điểm nguyên của đoạn CD với C(320,135) và D(332,141) bằng thuật toán Bresenham

(trình bày tương tự bài 13)

- Trình bày thuật toán

Trang 26

Bài 15 Tìm điểm nguyên của đoạn EF với E(56,13) và F(68,17) bằng thuật toán Bresenham

(trình bày tương tự bài 13)

- Trình bày thuật toán

Trang 27

Bài 16 Thiết kế thuật toán Bresenham vẽ đường thẳng đi qua hai điểm (𝒙𝟏, 𝒚𝟏) và (𝒙𝟐, 𝒚𝟐) có

𝟎 < 𝑚 < 1 và 𝒅𝒙 < 0

- Với các đoạn thẳng dạng này nếu (xi,yi) là điểm vẽ đã được xác định ở bước thứ i (điểm màu đen) thì điểm cần chọn (xi+1, yi+1) ở bước thứ i+1 sẽ là một trong hai trường hợp của hình vẽ sau:

- Như vậy:

- Với thuật toán Bresenham việc quyết định chọn yi+1 là yi hay

yi - 1 được dựa vào vị trí tương đối của điểm I so với điểm S và điểm P

1

1

1

i i i

i i

y y y x x

Trang 28

pi+1 – pi = 2Dx(yi+1 – yi) – 2Dy (xi+1 – xi)

pi+1 = pi + 2Dx(yi+1 – yi) – 2Dy (xi+1 – xi)

pi+1 = pi + 2Dy + 2Dx (yi+1 – yi)

- Từ đây ta suy ra được cách tính pi+1 từ pi như sau:

d1 – d2 < 0

d1 < d2

Chọn S

yi+1 = yi

Trang 29

- Giá trị p0 được tính từ điểm vẽ đầu tiên (𝑥-, 𝑦-)

pi = 2Dxyi – 2Dyxi + 2Dy– 2bDx – Dx

p0 = 2Dxy1 – 2Dyx1 + 2Dy– 2bDx – Dx

Trang 30

Bài 17 Trình bày thuật toán Bresenham vẽ đường thẳng đi qua hai điểm (𝒙𝟏, 𝒚𝟏) và (𝒙𝟐, 𝒚𝟐) có

𝟎 < 𝑚 < 1 và 𝒅𝒙 < 0 (sinh viên chỉ vẽ lưu đồ)

Trang 31

Bài 18 Tìm điểm nguyên của đoạn AB với A(16,10) và B(5,7) bằng thuật toán Bresenham (trình

bày tương tự bài 13)

- Trình bày lưu đồ thuật toán

Trang 32

Bài 19 Tìm điểm nguyên của đoạn CD với C(571,117) và D(557,110) bằng thuật toán Bresenham

(trình bày tương tự bài 13)

- Trình bày lưu đồ thuật toán

(trình bày tương tự bài 13)

- Trình bày lưu đồ thuật toán

Trang 34

1.6.3 Thuật toán Midpoint

𝟎 < 𝑚 < 1 và 𝒅𝒙 > 0

- Với các đoạn thẳng dạng này nếu (xi,yi) là điểm vẽ đã được xác định ở bước thứ i (điểm màu đen) thì điểm cần chọn (xi+1, yi+1) ở bước thứ i+1 sẽ là một trong hai trường hợp của hình vẽ sau:

- Như vậy:

- Với thuật toán Midpoint việc quyết định chọn yi+1 là yi hay yi+1 được dựa vào xét dấu của

𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡 x𝑥i+ 1, 𝑦i+-1y là trung điểm của điểm S và điểm P

1

1

1

i i i

i i

y y y x x

Trang 35

pi+1-pi=2F(x i+1 +1,y i+1 +0.5)-2F(x i +1,y i +0.5)

𝑝i„-− 𝑝i= 2[𝐴(𝑥i„-− 𝑥i) + 𝐵(𝑦i„-− 𝑦i) + C]

Trang 38

Bài 22 Trình bày thuật toán Midpoint vẽ đường thẳng đi qua hai điểm (𝒙𝟏, 𝒚𝟏) và (𝒙𝟐, 𝒚𝟐) có

𝟎 < 𝑚 < 1 và 𝒅𝒙 > 0 (sinh viên chỉ vẽ lưu đồ)

Trang 40

Bài 24 Tìm điểm nguyên của đoạn CD với C(320,135) và D(332,141) bằng thuật toán Midpoint

(trình bày tương tự bài 23) Giống 14

- Trình bày thuật toán

Trang 41

Bài 25 Tìm điểm nguyên của đoạn EF với E(56,13) và F(68,17) bằng thuật toán Midpoint (trình

bày tương tự bài 23) Giống 15

- Trình bày thuật toán

Trang 42

Bài 26 Thiết kế thuật toán Midpoint vẽ đường thẳng đi qua hai điểm (𝒙𝟏, 𝒚𝟏) và (𝒙𝟐, 𝒚𝟐) có 𝟎 <

𝑚 < 1 và 𝒅𝒙 < 0 Coi lại

- Với các đoạn thẳng dạng này nếu (xi,yi) là điểm vẽ đã được xác định ở bước thứ i (điểm màu đen) thì điểm cần chọn (xi+1, yi+1) ở bước thứ i+1 sẽ là một trong hai trường hợp của hình vẽ sau:

- Như vậy:

- Với thuật toán Midpoint việc quyết định chọn yi+1 là yi hay yi - 1 được dựa vào xét dấu của

Midpoint(xi-1,yi-0.5) là trung điểm của điểm S và điểm P

1

1

1

i i i

i i

y y y x x

Trang 43

𝑝i„-− 𝑝i= 2𝐹(𝑥i„-− 1, 𝑦i„-− 0.5) − 2𝐹(𝑥i− 1, 𝑦i− 0.5)

𝑝i„-− 𝑝i= 2 •𝐴(𝑥i„-− 1) + 𝐵 Š𝑦i„-−1

2‹ + CŽ −2 ˆ𝐴(𝑥i− 1) + 𝐵 x𝑦i−-1y + 𝐶‰

𝑝i„-− 𝑝i= 2𝐴(𝑥i„-− 𝑥i) + 2𝐵(𝑦i„-− 𝑦i)

Trang 46

Bài 27 Trình bày thuật toán 𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡 vẽ đường thẳng đi qua hai điểm (𝑥-, 𝑦-) và (𝑥1, 𝑦1) có 0 <

𝑚 < 1 và 𝑑𝑥 < 0 (sinh viên chỉ vẽ lưu đồ)

Bài 28 Tìm điểm nguyên của đoạn AB với A(16,10) và B(5,7) bằng thuật toán 𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡 (trình bày

tương tự bài 23) Giống 18

Bài 29 Tìm điểm nguyên của đoạn CD với C(571,117) và D(557,110) bằng thuật toán 𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡

(trình bày tương tự bài 23) Giống 19

Bài 30 Tìm điểm nguyên của đoạn EF với A(126,12) và B(116,10) bằng thuật toán 𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡 (trình

bày tương tự bài 23) Giống 20

Trang 47

1.7 GIẢI BÀI TẬP ĐƯỜNG THẲNG 𝒎 > 𝟏

và dy>0

- Với các đoạn thẳng dạng này nếu (xi, yi) là điểm vẽ đã được xác định ở bước thứ i (điểm màu đen), thì điểm cần chọn (xi+1,yi+1) ở bước thứ i+1 sẽ là 1 trong 2 trường hợp của hình vẽ sau:

- Như vậy:

- Với thuật toán 𝐷𝐷𝐴 việc quyết định chọn xi+1 là xi hay xi +1 được dựa vào phương trình đường thẳng y=mx+b Nghĩa là, ta sẽ tính I(x, y i+1) thuộc về đường thẳng thực và xi+1 sẽ là giá trị làm tròn của giá trị hoành độ x thực

1

1

i i

i i i

y y

x x x

b mx

y= +

b y

mx= ( y b )

Trang 48

x = 1 i - + 1

Trang 49

Bài 32 Thiết kế thuật toán 𝑫𝑫𝑨 vẽ đường thẳng đi qua hai điểm (𝒙𝟏, 𝒚𝟏) và (𝒙𝟐, 𝒚𝟐) có 𝒎 > 1

và dy<0

- Với các đoạn thẳng dạng này nếu (xi, yi) là điểm vẽ đã được xác định ở bước thứ i (điểm màu đen), thì điểm cần chọn (xi+1,yi+1) ở bước thứ i+1 sẽ là 1 trong 2 trường hợp của hình vẽ sau:

- Như vậy:

- Với thuật toán 𝐷𝐷𝐴 việc quyết định chọn xi+1 là xi hay xi - 1 được dựa vào phương trình đường thẳng y=mx+b Nghĩa là, ta sẽ tính I(x, y i -1) thuộc về đường thẳng thực và xi+1 sẽ là giá trị làm tròn của giá trị hoành độ x thực

1

1

i i

i i i

y y

x x x

b mx

y= +

b y

mx= ( y b )

Trang 50

x = 1 i - - 1

Trang 51

Bài 33 Thiết kế thuật toán Bresenham vẽ đường thẳng đi qua hai điểm (𝒙𝟏, 𝒚𝟏) và (𝒙𝟐, 𝒚𝟐) có

𝒎 > 1 và dy>0

- Với các đoạn thẳng dạng này nếu (xi, yi) là điểm vẽ đã được xác định ở bước thứ i (điểm màu đen), thì điểm cần chọn (xi+1,yi+1) ở bước thứ i+1 sẽ là 1 trong 2 trường hợp của hình vẽ sau:

1

1

i i

i i i

y y

x x x

Trang 52

pi+1 – pi = 2Dx(yi+1 – yi) – 2Dy (xi+1 – xi)

pi+1 = pi + 2Dx(yi+1 – yi) – 2Dy (xi+1 – xi)

pi+1 = pi + 2Dx – 2Dy (xi+1 – xi)

- Từ đây ta suy ra được cách tính pi+1 từ pi như sau:

+ Nếu pi≤0 thì Dy ( d1 – d2 ) ≤ 0

d1 – d2 ≤ 0

d1 ≤ d2

b y

mx= ( y b )

x = i + 1

Trang 53

-xi+1 = xi

pi+1 = pi + 2Dx + Nếu pi>0 thì Dy ( d1 – d2 ) > 0

Trang 55

Bài 34 Thiết kế thuật toán Bresenham vẽ đường thẳng đi qua hai điểm (𝒙𝟏, 𝒚𝟏) và (𝒙𝟐, 𝒚𝟐) có

𝒎 > 1 và dy<0

- Với các đoạn thẳng dạng này nếu (xi, yi) là điểm vẽ đã được xác định ở bước thứ i (điểm màu đen), thì điểm cần chọn (xi+1,yi+1) ở bước thứ i+1 sẽ là 1 trong 2 trường hợp của hình vẽ sau:

- Như vậy:

- Với thuật toán Bresenham việc quyết định chọn xi+1 là xi hay

xi – 1 được dựa vào vị trí tương đối của điểm I so với điểm S và điểm P

1

1

i i

i i i

y y

x x x

Trang 56

pi+1 – pi = 2Dy(xi+1 – xi) – 2Dx (yi+1 – yi)

pi+1 = pi + 2Dy(xi+1 – xi) – 2Dx (–1)

pi+1 = pi + 2Dy(xi+1 – xi) + 2Dx

pi+1 = pi + 2Dx + 2Dy (xi+1 – xi)

- Từ đây ta suy ra được cách tính pi+1 từ pi như sau:

+ Nếu pi≤0 thì Dy ( d1 – d2 ) ≤ 0

d1 – d2 ≥ 0

b y

mx= ( y b )

x = i- 1

Trang 57

-d1 ≥ d2

Chọn P

xi+1 = xi – 1

pi+1 = pi + 2Dx – 2Dy + Nếu pi>0 thì Dy ( d1 – d2 ) > 0

Trang 58

Bài 35 Thiết kế thuật toán Midpoint vẽ đường thẳng đi qua hai điểm (𝑥-, 𝑦-) và (𝑥1, 𝑦1) có 𝑚 > 1 và dy>0

Bài 36 Thiết kế thuật toán Midpoint vẽ đường thẳng đi qua hai điểm (𝑥-, 𝑦-) và (𝑥1, 𝑦1) có 𝑚 > 1 và dy<0

Trang 59

1.8 GIẢI BÀI TẬP ĐƯỜNG THẲNG −𝟏 < 𝒎 < 𝟎

𝑚 < 0 và 𝒅𝒙 > 0

- Với các đoạn thẳng dạng này nếu (xi,yi) là điểm vẽ đã được xác định ở bước thứ i (điểm màu đen) thì điểm cần chọn (xi+1,yi+1) ở bước thứ i+1 là 1 trong 2 trường hợp của hình vẽ sau:

- Như vậy:

- Với thuật toán 𝐷𝐷𝐴 việc quyết định chọn yi+1 là yi hay yi –1 được dựa vào phương trình

đường thẳng y=mx+b Nghĩa là, ta sẽ tính I(x i + 1, y) thuộc về đường thẳng thực và yi+1 sẽ là giá trị làm tròn của giá trị tung độ y thực

1

1

1

i i i

i i

y y y x x

Ngày đăng: 28/05/2018, 08:56

TỪ KHÓA LIÊN QUAN

w