Tải bản đầy đủ (.pdf) (306 trang)

Bai tap do hoa may tinh uit

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (7.75 MB, 306 trang )





BÀITẬP
ĐỒHOẠ
MÁYTÍNH

Nguyễn Tấn Trần Minh Khang
Nguyễn Hoàng Ngân


TableofContents
CHƯƠNG 1

ĐƯỜNG THẲNG ........................................................... 1

1.1

ĐƯỜNG THẲNG 𝟎 < 𝒎 < 𝟏 ............................................... 1

1.2

ĐƯỜNG THẲNG 𝒎 > 𝟏 ...................................................... 4

1.3

ĐƯỜNG THẲNG −𝟏 < 𝒎 < 𝟎 ............................................ 4

1.4


ĐƯỜNG THẲNG 𝒎 < −𝟏................................................... 4

1.5

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

1.6

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

1.7

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

1.8

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

1.9

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

1.10

GIẢI BÀI TẬP NÂNG CAO CHƯƠNG 1...................................79

CHƯƠNG 2

CÁC ĐƯỜNG CONIC.....................................................79


2.1

ĐƯỜNG TRÒN ...................................................................79

2.2

ĐƯỜNG ELIP .....................................................................79

2.3

ĐƯỜNG PARABOL .............................................................80

2.4

ĐƯỜNG CUBIC ..................................................................80

2.5

ĐƯỜNG HYPERBOL............................................................80

2.6

GIẢI BÀI TẬP ĐƯỜNG TRÒN ...............................................81

2.7

GIẢI BÀI TẬP ĐƯỜNG ELIP..................................................81

2.8


GIẢI BÀI TẬP ĐƯỜNG PARABOL .........................................84

2.9

GIẢI BÀI TẬP ĐƯỜNG CUBIC...............................................85

2.10

GIẢI BÀI TẬP ĐƯỜNG HYPERBOL ........................................85

CHƯƠNG 3

PHÉP BIẾN ĐỔI AFFINE ................................................86

3.1

TỔNG QUÁT ......................................................................86

3.2

PHÉP BIẾN ĐỔI TỊNH TIẾN ..................................................86

3.3

PHÉP BIẾN ĐỔI TỈ LỆ ...........................................................88

3.4

PHÉP QUAY .......................................................................89


3.5

BÀI TẬP CHƯƠNG 3 ...........................................................90

3.6

GIẢI BÀI TẬP CHƯƠNG 3 ....................................................93

CHƯƠNG 4

VẼ HÌNH ....................................................................146

4.1

ĐA GIÁC ĐỀU ................................................................... 146

4.2

NGÔI SAO........................................................................ 147

i


4.3

CƠ SỞ TOÁN HỌC ............................................................ 149

4.4

GIẢI BÀI TẬP ĐA GIÁC ĐỀU ............................................... 150


4.5

GIẢI BÀI TẬP NGÔI SAO .................................................... 171

CHƯƠNG 5

XÉN HÌNH ..................................................................178

5.1

THUẬT TOÁN COHEN-SUTHERLAND ................................. 178

5.2

THUẬT TOÁN LIANG-BARSKY ........................................... 179

5.3

THUẬT TOÁN SUTHERLAND - HODGEMAN ....................... 179

5.4

GIẢI BÀI TẬP THUẬT TOÁN COHEN-SUTHERLAND ............. 181

5.5

GIẢI BÀI TẬP THUẬT TOÁN LIANG-BARSKY........................ 188

5.6


GIẢI BÀI TẬP THUẬT TOÁN SUTHERLAND - HODGEMAN.... 199

CHƯƠNG 6

TÔ MÀU ....................................................................202

6.1

CÁC BÀI TẬP CƠ BẢN ....................................................... 202

6.2

THUẬT TOÁN TÔ MÀU DỰA THEO ĐƯỜNG BIÊN............... 202

6.3

THUẬT TOÁN TÔ MÀU DỰA THEO DÒNG QUÉT ................ 203

6.4

TÔ PHẦN GIAO GIỮA CÁC ĐỐI TƯỢNG ............................. 205

6.5

GIẢI CÁC BÀI TẬP CƠ BẢN ................................................ 206

6.6

GIẢI CÁC BÀI TẬP THUẬT TOÁN TÔ MÀU DỰA THEO ĐƯỜNG BIÊN


229

6.7

GIẢI CÁC BÀI TẬP THUẬT TOÁN TÔ MÀU DỰA THEO DÒNG QUÉT

235

6.8

GIẢI CÁC BÀI TẬP TÔ PHẦN GIAO GIỮA CÁC ĐỐI TƯỢNG... 243

CHƯƠNG 7

CÁC BÀI TOÁN HÌNH HỌC ..........................................258

7.1

BÀI TẬP ........................................................................... 258

7.2

GIẢI BÀI TẬP .................................................................... 260

CHƯƠNG 8

ĐƯỜNG CONG BEZIER ...............................................282

8.1


ĐƯỜNG CONG BEZIER TỔNG QUÁT.................................. 282

8.2

ĐƯỜNG CONG BEZIER BẬC 1............................................ 283

8.3

ĐƯỜNG CONG BEZIER BẬC 2............................................ 283

8.4

ĐƯỜNG CONG BEZIER BẬC 3............................................ 284

8.5

BÀI TẬP CHƯƠNG 8 ......................................................... 284

8.6

GIẢI BÀI TẬP CHƯƠNG 8 .................................................. 286

ii


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

CHƯƠNG 1


ĐƯỜNG THẲNG

ĐƯỜNG THẲNG 𝟎 < 𝒎 < 𝟏

1.1

1.1.1

Thuật toán 𝑫𝑫𝑨

Bài 1. 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 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

tự bài 3).

Bài 9. 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 3).

Bài 10. 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 3).
1.1.2

Thuật toán 𝑩𝒓𝒆𝒔𝒆𝒏𝒉𝒂𝒎

Bài 11. 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 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 𝐵𝑟𝑒𝑠𝑒𝑛ℎ𝑎𝑚.

Giáo trình Bài Tập Đồ Họa Máy Tính

1


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

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.

Giáo trình Bài Tập Đồ Họa Máy Tính

2


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

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.

Giáo trình Bài Tập Đồ Họa Máy Tính

3



Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

1.2

ĐƯỜNG THẲNG 𝒎 > 𝟏

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

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

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

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

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

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

ĐƯỜNG THẲNG −𝟏 < 𝒎 < 𝟎

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


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

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

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

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

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

ĐƯỜNG THẲNG 𝒎 < −𝟏

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

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

Giáo trình Bài Tập Đồ Họa Máy Tính

4


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân


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 và 𝑑𝑦 > 0.

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

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

Bài 48. Thiết kế thuật toán 𝑀𝑖𝑑𝑝𝑜𝑖𝑛𝑡 vẽ đường thẳng đi qua hai điểm (𝑥- , 𝑦- ) và (𝑥1 , 𝑦1 ) 𝑐ó𝑚 < −1
và 𝑑𝑦 < 0.
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).

Giáo trình Bài Tập Đồ Họa Máy Tính

5


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

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


1.6

1.6.1

Thuật toán DDA

Bài 1. Thiết kế thuật toán 𝑫𝑫𝑨 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 là 1 trong 2 trường hợp của hình vẽ sau:

-

Như vậy:

ì xi+1 = xi + 1
í
î yi+1 = {yi , yi + 1}
-

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(xi + 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.

-

Như vậy:

𝑦 = 𝑚𝑥 + 𝑏
𝑦h = 𝑚𝑥h + 𝑏
𝑦 = 𝑚(𝑥i + 1) + 𝑏
𝑦 = 𝑚𝑥i + 𝑚 + 𝑏
𝑦 = (𝑚𝑥i + 𝑏) + 𝑚
𝒚𝒔𝒂𝒖 = 𝒚𝒕𝒓ướ𝒄 + 𝒎

-

Lưu đồ thuật toán:

Giáo trình Bài Tập Đồ Họa Máy Tính

6


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

Giáo trình Bài Tập Đồ Họa Máy Tính

7


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

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 đồ).

Bài 3. Tìm điểm nguyên của đoạn AB với A(1,1) và B(11,5) bằng thuật toán 𝑫𝑫𝑨.
- Trình bày lưu đồ thuật toán.

- Tính

Dx = xB - x A= (11) – (1) = 10

- Tính

Dy = yB - y A = (5) – (1) = 4

- Tính m =

Dy
= 4/10=0.4
Dx

- Lập bảng.
x

Y

x nguyên

Điểm nguyên

1

1

1

(1,1)


Giáo trình Bài Tập Đồ Họa Máy Tính

8


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

x

Y

x nguyên

Điểm nguyên

2

1.4

1

(2,1)

3

1.8

2


(3,2)

4

2.2

2

(4,2)

5

2.6

3

(5,3)

6

3.0

3

(6,3)

7

3.4


3

(7,3)

8

3.8

4

(8,4)

9

4.2

4

(9,4)

10

4.6

5

(10,5)

11


5.0

5

(11,5)

Giáo trình Bài Tập Đồ Họa Máy Tính

9


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

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.
- Tính

Dx = x D - xC = (332) – (320) = 12.

- Tính

Dy = yD - yC = (141) – (135) = 6.

- Tính m =

Dy
= 6/12 = 0.5
Dx


- Lập bảng:
X

Y

y nguyên

Điểm nguyên

320

135.0

135

(320,135)

321

135.5

136

(321,136)

322

136.0

136


(322,136)

323

136.5

137

(323,137)

324

137.0

137

(324,137)

325

137.5

138

(325,138)

326

138.0


138

(326,138)

327

138.5

139

(327,139)

328

139.0

139

(328,139)

329

139.5

140

(329,140)

330


140.0

140

(330,140)

331

140.5

141

(331,141)

332

141.0

141

(332,141)

Bài 5. 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 𝑫𝑫𝑨 (trình bày
tương tự bài 3).
- Trình bày lưu đồ thuật toán.
- Tính

Dx = xF - xE


- Tính

Dy = yF - yE = (17) – (13) = 4

- Tính m =

= (68) – (56) = 12

Dy
= 4/12=0.33
Dx

- Lập bảng:

Giáo trình Bài Tập Đồ Họa Máy Tính

10


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

X

Y

y nguyên

Điểm nguyên

56


13

13

(56,13)

57

13.33

13

(57,13)

58

13.66

14

(58,14)

59

13.99

14

(59,14)


60

14.32

14

(60,14)

61

14.65

15

(61,15)

62

14.98

15

(62,15)

63

15.31

15


(63,15)

64

15.64

16

(64,16)

65

15.97

16

(65,16)

66

16.30

16

(66,16)

67

16.63


17

(67,17)

68

16.96

17

(68,17)

Bài 6. Thiết kế thuật toán 𝑫𝑫𝑨 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 là 1 trong 2 trường hợp của hình vẽ sau:

-

Như vậy:

ì xi+1 = xi - 1
í
î yi+1 = {yi , yi - 1}
-

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(xi - 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.

Giáo trình Bài Tập Đồ Họa Máy Tính

11


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

-

Như vậy:
𝑦 = 𝑚𝑥 + 𝑏
𝑦h = 𝑚𝑥h + 𝑏
𝑦 = 𝑚(𝑥i − 1) + 𝑏
𝑦 = 𝑚𝑥i − 𝑚 + 𝑏
𝑦 = (𝑚𝑥i + 𝑏) − 𝑚
𝒚𝒔𝒂𝒖 = 𝒚𝒕𝒓ướ𝒄 − 𝒎

-

Lưu đồ thuật toán:

Giáo trình Bài Tập Đồ Họa Máy Tính

12


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân


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 đồ).

Bài 8. Tìm điểm nguyên của đoạn 𝑨𝑩 với 𝑨(𝟏𝟔, 𝟏𝟎) và 𝑩(𝟓, 𝟕) 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.
- Tính

Dx = xB - xA = (5) - (16) = -11.

- Tính

Dy = yB - yA = (7) - (10) = -3.

- Tính m =

Dy
= (-3)/( -11) = 0.27
Dx

Giáo trình Bài Tập Đồ Họa Máy Tính

13


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

- Lập bảng:
X


Y

Y nguyên

Điểm nguyên

16

10

10

(16,10)

15

9.73

10

(15,10)

14

9.46

9

(14,9)


13

9.19

9

(13,9)

12

8.92

9

(12,9)

11

8.65

9

(11,9)

10

8.38

8


(10,8)

9

8.11

8

(9,8)

8

7.84

8

(8,8)

7

7.57

8

(7,8)

6

7.3


7

(6,7)

5

7.03

7

(5,7)

Giáo trình Bài Tập Đồ Họa Máy Tính

14


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

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.
- Tính

Dx = xD - xC = (557) - (571) = -14.

- Tính

Dy = yD - yC = (110) - (117)= -7.


- Tính m =

Dy
= (-7)/( -14) = 0.5
Dx

- Lập bảng:
X

Y

y nguyên

Điểm nguyên

571

117

117

(571,117)

570

116.5

117


(570,117)

569

116.0

116

(569,116)

568

115.5

116

(568,116)

567

115.0

115

(567,115)

566

114.5


115

(566,115)

565

114.0

114

(565,114)

564

113.5

114

(564,114)

563

113.0

113

(563,113)

562


112.5

113

(562,113)

561

112.0

112

(561,112)

560

111.5

112

(560,112)

559

111.0

111

(559,111)


558

110.5

111

(558,111)

557

110.0

110

(557,110)

Bài 10. Tìm điểm nguyên của đoạn EF với E(126,12) và F(116,10) 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.
- Tính

Dx = xF - xE = (116) - (126) = -10.

- Tính

Dy = yF - yE = (10) - (12) = -2.

- Tính m =

Dy

= (-2)/( -10) = 0.2
Dx

- Lập bảng:

Giáo trình Bài Tập Đồ Họa Máy Tính

15


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

1.6.2

X

Y

y nguyên

Điểm nguyên

126

12

12

(126,12)


125

11.8

12

(125,12)

124

11.6

12

(124,12)

123

11.4

11

(123,11)

122

11.2

11


(122,11)

121

11.0

11

(121,11)

120

10.8

11

(120,11)

119

10.6

11

(119,11)

118

10.4


10

(118,10)

117

10.2

10

(117,10)

116

10

10

(116,10)

Thuật toán Bresenham

Bài 11. 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:

ì xi+1 = xi + 1
í
î yi+1 = {yi , yi + 1}

Giáo trình Bài Tập Đồ Họa Máy Tính

16


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

-

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.

-

Đặt:
d1 = IS = y – yi
d2 = PI = (yi + 1) – y = yi + 1 – y

-

-


Việc chọn điểm vẽ (xi+1,yi+1) là điểm S hay điểm P được dựa vào việc so sánh d1 và d2:
+

Nếu d1 ≤ d2 chọn S

+

Nếu d1 > d2 chọn P

Đặt:
pi = Dx ( d1 – d2 )
pi = Dx ( (y – yi) – (yi + 1 – y) )
pi = Dx ( y – yi – yi – 1 + y )
pi = Dx ( 2y – 2yi – 1)

-

Mà: y = mx + b
yI = mxI + b
y = m(xi + 1) + b
uv

𝑦 = uw (𝑥i + 1)+b
-

Suy ra:
pi = Dx( 2y – 2yi – 1)
pi = 2Dx y – 2Dx yi – Dx
𝑝i = 2𝐷𝑥 x


uv
uw

(𝑥i + 1) + 𝑏y − 2𝐷𝑥𝑦i − 𝐷𝑥

pi = 2Dy(xi+1) + 2bDx – 2Dx yi – Dx
pi = 2Dyxi + 2Dy + 2bDx – 2Dx yi – Dx
pi = 2Dyxi – 2Dx yi + 2Dy + 2bDx – Dx
pi = 2Dyxi – 2Dx yi + c với c = 2Dy + 2bDx – Dx
-

-

Ta có:
pi = 2Dyxi – 2Dx yi + c

(1)

pi+1 = 2Dyxi+1 – 2Dx yi+1 + c

(2)

Lấy (2) trừ (1) ta được:

Giáo trình Bài Tập Đồ Họa Máy Tính

17


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân


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:
+

Nếu pi≤0 thì

Dx ( d1 – d2 ) ≤ 0
d1 – d2 ≤ 0
d1 ≤ d2
Chọn S
yi+1 = yi
pi+1 = pi + 2Dy

+

Nếu pi>0 thì

Dx ( d1 – d2 ) > 0
d1 – d2 > 0
d1 > d2
Chọn P
yi+1 = yi + 1
pi+1 = pi + 2Dy – 2Dx

-


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
p0 = 2Dyx1 –2Dx(mx1+b)+2bDx+2Dy – Dx
p0 =2Dyx1–2Dxmx1-2bDx +2bDx+2Dy–Dx
p0 = 2Dyx1 – 2Dyx1-2bDx + 2bDx + 2Dy – Dx
p0 = 2Dy – Dx

-

Lưu đồ thuật toán

Giáo trình Bài Tập Đồ Họa Máy Tính

18


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

Giáo trình Bài Tập Đồ Họa Máy Tính

19


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

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 đồ).


Bài 13. Tìm điểm nguyên của đoạn AB với A(1,1) và B(11,5) bằng thuật toán Bresenham.
-

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

-

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

-

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

Giáo trình Bài Tập Đồ Họa Máy Tính

20


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

-

Tính const1 = 2dy = 2(4) = 8

-

Tính const2 = 2dy - 2dx = 2(4) - 2(10) = 8 - 20 = -12

-


Tính p0 = 2dy - dx = 2(4) - 10 = 8 - 10 = -2

-

Lập bảng:
P

Y

X

Điểm nguyên

-2

1

1

(1,1)

6

1

2

(2,1)

-6


2

3

(3,2)

2

2

4

(4,2)

-10

3

5

(5,3)

-2

3

6

(6,3)


6

3

7

(7,3)

-6

4

8

(8,4)

2

4

9

(9,4)

-10

5

10


(10,5)

-2

5

11

(11,5)

Giáo trình Bài Tập Đồ Họa Máy Tính

21


Nguyễn Tấn Trần Minh Khang - Nguyễn Hoàng Ngân

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.

-

Tính Dx = xD - xC = (332) – (320) = 12.

-


Tính Dy = yD - yC = (141) – (135) = 6.

-

Tính const1 = 2dy = 2(6) = 12.

-

Tính const2 = 2dy - 2dx = 2(6) - 2(12) = 12 - 24 = -12

-

Tính p0=2dy - dx = 2(6) - 12 = 12 - 12 = 0

-

Lập bảng:
P

Y

X

Điểm nguyên

0

135

320


(320,135)

12

135

321

(321,135)

0

136

322

(322,136)

12

136

323

(323,136)

0

137


324

(324,137)

12

137

325

(325,137)

0

138

326

(326,138)

12

138

327

(327,138)

0


139

328

(328,139)

12

139

329

(329,139)

0

140

330

(330,140)

12

140

331

(331,140)


0

141

332

(332,141)

Giáo trình Bài Tập Đồ Họa Máy Tính

22


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×