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

Tổng hợp 30 câu hỏi lý thuyết về đồ họa máy tính

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 (1.33 MB, 29 trang )

1
Câu 1. Đồ họa máy tính là gì? Cho biết các ứng dụng của đồ họa máy tính?
 Khái niệm ĐHMT
- Đồ họa máy tính là tất cả những gì liên quan đến việc sử dụng máy tính để phát sinh ra hình ảnh. Các
vấn đề liên quan tới công việc này bao gồm : tạo, lưu trữ, thao tác trên các mô hình (các mô tả hình học của
đối tượng) và các ảnh.
- Đồ họa máy tính bao gồm việc thiết kế phần cứng như thiết bị hiển thị, các thuật toán cần thiết để phát
sinh các đƣờng trên các thiết bị này, các phần mềm đƣợc sử dụng cho cả ngƣời lập trình hệ thống và người
lập trình ứng dụng đồ họa, và các chƣơng trình ứng dụng tạo ảnh bằng máy tính.
- Đồ họa máy tính tƣơng tác là một trong những phƣơng tiện mang lại thêm nhiều sự thuận
lợi cho ngƣời dùng trong việc phát sinh hình ảnh kể từ khi có phát minh của máy ảnh và truyền
hình.
 Các ứng dụng của đồ họa máy tính
 Hỗ trợ thiết kế (CAD/CAM)
CAD: Computer Aided Design, CAM: Computer Aided Manufacture
- Đồ họa máy tính đƣợc ứng dụng trong việc thiết kế các thành phần và hệ thống cơ khí, điện, các thiết
bị điện tử, xây dựng, hệ thống cáp quang, mạng điện thoại, thiết kế các mạch điện tử…Những phần liên
quan đến thiết kế và vẽ đƣợc thực hiện trực tiếp trên màn hình nhờ những công cụ trợ giúp đồ họa
 Xây dựng giao diện ngƣời dùng (User Interface)
- Mọi ứng dụng đều phải có giao diện giao tiếp với ngƣời dùng. Các ứng dụng dựa trên hệ điều hành MS
Windows là một minh họa rất trực quan của giao diện đồ họa. Các chức năng của các ứng dụng này đƣợc
thiết kế cho ngƣời dùng làm việc thông qua các biểu tƣợng mô tả chức năng đó.
- Các ứng dụng có giao diện đồ họa còn cho phép ngƣời dùng khả năng làm việc dễ dàng với nhiều cửa
sổ với nhiều dạng tài liệu khác nhau cùng một lúc.
 Biểu diễn thông tin
- Đây là các ứng dụng sử dụng đồ họa máy tính để phát sinh các biểu đồ, đồ thị,… dùng minh họa mối
quan hệ giữa nhiều đối tƣợng với nhau. Các ứng dụng này thƣờng đƣợc dùng để tóm lƣợc các dữ
liệu về tài chính, thống kê, kinh tế, khoa học, toán học, … giúp cho việc nghiên cứu, quản lí, … một cách
có hiệu quả.
 Tự động hoá văn phòng và chế bản điện tử
- Có thể tạo ra các văn bản điện tử và các văn bản sao chép cứng nhƣ tài liệu, biểu, các hình vẽ, hình


ảnh.
 Lĩnh vực giải trí, nghệ thuật.
2
+ Sản xuất phim hoạt hình và tạo các hiệu ứng đặc biệt.
+ Trò chơi máy tính.
+ Duyệt Web
 Ứng dụng trong tự động hóa và điều khiển
- Những hệ thống phức tạp nhƣ nhà máy điện, hệ thống điều khiển không lƣu cần phải có sự theo dõi
giám sát cẩn thận. Thông thƣờng phải bố trí ít nhất một nhân viên giám sát để canh chừng những sự cố có
thể xảy ra. Họ đƣợc cung cấp thông tin hiện tại của hệ thống trên màn hình trạng thái dƣới dạng dễ hiểu và
dễ nắm bắt nhất. Quá trình đo đạc trong hệ thống đƣợc tiến hành liên tục và dữ liệu đƣợc gửi đến trạm
giám sát, ở đó nó đƣợc chuyển đổi thành biểu diễn đồ họa và hiển thị trên màn hình.
 Mô phỏng
- Trong số các đối tƣợng đƣợc thể hiện trực quan bằng đồ họa, có một số đối tƣợng tồn tại
trong thực tế và có thể tiến hành đo đạc theo thời gian thực. Trong khi đó một số đối tƣợng chƣa bao giờ
đƣợc xây dựng trong thực tế mà chỉ tồn tại dƣới dạng phƣơng trình hay thuật toán trong máy tính. Tuy
vậy chúng vẫn có thể đƣợc kiểm tra vận hành nhƣ thể chúng tồn tại thực sự. Đồ họa máy tính có khả năng
hiển thị những đối tƣợng này nhƣ thể chúng tồn tại, trong khi chúng chỉ là các mô hình đƣợc mô tả bên
trong máy tính.
 Lĩnh vực bản đồ (Cartography)
- Đồ họa máy tính đƣợc sử dụng để đƣa ra sơ đồ vị trí địa lý và các hiện tƣợng tự nhiên một cách chính
xác từ những số liệu đo đạc đƣợc. Ví dụ nhƣ bản đồ địa lý, bản đồ thời tiết, bản đồ mật độ dân số, bản đồ
khai thác cho khoan và khao thác mỏ, bản đồ hải dƣơng học…
 Giáo dục và đào tạo
- Có thể dùng đồ họa để nghiên cứu các thực thể trìu tƣợng, mô phỏng cấu trúc của vật thể, tiến trình của
các phản ứng hóa học trong chất lỏng, của hạt nhân, hệ thống sinh lý, hoạt động của các gói tin trên
mạng máy tính…đƣợc dùng rất nhiều trong việc hỗ trợ giảng dạy. Trong đào tạo, các ứng dụng mô
phỏng đƣợc dùng để kiểm tra trình độ ngƣời lái, huấn luyện phi công, điều khiển giao thông…
 Hình ảnh hóa số liệu khoa học:
- Số liệu khoa học thƣờng rất phức tạp, quan hệ giữa các đại lƣợng thực nghiệm thƣờng rất khó

hình dung. Đồ họa máy tính cung cấp một công cụ tuyệt vời để thể hiện thông tin khoa học dƣới dạng dễ
tƣởng tƣợng và dễ nắm bắt nhất.
Câu 2: Trình bày hệ hiển thị thiết bị dạng Raster và Vecto?.
 Phương thức hiển thị Raster
- Tia điện tử quét ngang trên màn hình từ trái qua phải, khi quét hết một dòng ngang, tia điện tử đƣợc
dập tắt và lái hồi về đầu dòng tiếp.
3
- Mỗi điểm ảnh trên màn hình đƣợc gọi là pixel.
- Ảnh hiển thị theo công nghệ Raster là các đƣờng raster nằm ngang, mỗi đƣờng là một hàng gồm nhiều
pixel. Hệ hiển thị Raster lƣu trữ dƣới dạng ma trận các điểm ảnh biểu diễn toàn bộ màn hình.
- Sự bật tắt các điểm sáng trên màn hình phụ thuộc vào cƣờng độ của tia điện tử và đây chính là cơ sở
của việc tạo ra hình ảnh trên màn hình.
- Ưu điểm: Nguyên lý hoạt động tƣơng tự nhƣ tivi, hình ảnh tạo ra tƣơng đối tốt.
- Nhược điểm: xảy ra hiệu ứng bậc thang.
Phương pháp để tạo ra các pixel
- Phương pháp dùng phần mềm để vẽ trực tiếp từng pixel một.
- Dựa trên các lý thuyết mô phỏng để xây dựng nên hình ảnh mô phỏng của sự vật.
- Phương pháp rời rạc hoá (số hoá) hình ảnh thực của đối tượng.
- Có thể sửa đổi hoặc xử lý mảng các pixel thu được theo những phương pháp khác nhau để thu được
hình ảnh đặc trưng của đối tượng.
 Phương thức hiển thị vector
- Quét vector theo tọa độ các điểm đầu và cuối vector. Ngƣời ta sử dụng các cuộn lái tia để quét thành
các đoạn thẳng và nhƣ thế để vẽ đƣợc một đối tƣợng đồ họa ngƣời ta phải phân tích đối tƣợng thành các
đoạn thẳng cơ sở và lần lƣợt vẽ chúng.
- Chỉ di chuyển một số lần cần thiết để tạo ra hình ảnh. Khi đang ở giữa hai điểm mút của đoạn thẳng
định vẽ thì chùm tia không bao giờ bị tắt.
- Ưu điểm:
+ Thích hợp cho việc hiển thị các đối tƣợng hình học
+ Không bị hiệu ứng bậc thang
+ Tốn ít bộ nhớ

- Nhƣợc điểm:
+ Với các ảnh phức tạp, cần thời gian vẽ lớn.
- Một số loại thiết bị là “máy” vẽ đƣờng thẳng. Ví dụ máy vẽ (pen plotter). Nó di chuyển bút vẽ đến một
vị trí nào đó đƣợc chỉ định bởi máy tính, đặt bút xuống, sau đó kéo bút đến một vị trí khác, để lại vết mực
với màu sắc nào đó.
4
- Ngoài ra cũng có loại màn hình đƣợc gọi là màn hình “vector” hay màn hình “random -scan”. Loại
màn hình này có mạch điện tử đƣợc thiết kế để quét chùm tia điện tử từ điểm này đến điểm khác trên bề
mặt của ống tia âm cực, và để lại vệt sáng.

Câu 3. Trình bày hệ tọa độ thế giới thực, hệ tọa độ thiết bị, hệ tọa độ chuẩn?
 Hệ toạ độ thế giới thực (WCS: World Coordinate System)
- WCS hay hệ toạ độ thực là hệ toạ độ đƣợc dùng mô tả các đối tƣợng trong thế giới thực.
- Một trong hệ toạ độ thực đƣợc dùng nhiều nhất là hệ toạ độ Descartes. Bất kì điểm nào trong mặt
phẳng đƣợc mô tả bằng cặp toạ độ (x,y) trong đó x,y ốc toạ độ là điểm O có toạ độ (0,0), Ox,Oy lần
lƣợt là trục hoành và trục tung và x,y là hoành độ và tung độ.
- Các toạ độ thế giới thực cho phép ngƣời sử dụng bất kì một thứ nguyên (dimension) qui ƣớc:
foot, cm, nm, km, inch tuỳ ý.
 Hệ toạ độ thiết bị (DCS: Device Coordinate System)
- Hệ toạ độ thiết bị là hệ toạ độ đƣợc dùng bởi một thiết bị xuất cụ thể nào đó như máy in, màn hình
- Các điểm đƣợc biểu diễn bởi cặp toạ độ (x,y), nhƣng x,yN. Điểm trong toạ độ thực đƣợc định nghĩa
liên tục, còn trong toạ độ thiết bị thì rời rạc do tính chất của tập các số tự nhiên.
- Các toạ độ (x,y) có giới hạn trong một khoảng nào đó. Khoảng giới hạn các tọa độ x, y là khac nhau
đối với từng thiết bị khác nhau.
 Hệ tọa độ thiết bị chuẩn (Normalized device coordinates)
- Do cách định nghĩa các hệ tọa độ thiết bị khác nhau nên một hình ảnh hiển thị đƣợc trên thiết bị này là
chính xác thì chƣa chắc hiển thị chính xác trên thíết bị khác.
- Ngƣời ta xây dựng một hệ tọa độ thiết bị chuẩn đại diện chung cho tất cả các thiết bị để có thể mô tả
các hình ảnh mà không phụ thuộc vào bất kỳ thiết bị nào.
5

- Trong hệ tọa độ chuẩn, các tọa độ x, y sẽ đƣợc gán các giá trị trong đoạn từ [0,1]. Nhƣ vậy, vùng
không gian của hệ tọa độ chuẩn chính là hình vuông đơn vị có góc trái dƣới (0, 0) và góc phải trên là (1, 1).
- Quá trình mô tả các đối tƣợng thực nhƣ sau:

Câu 4. Trình bày nguyên lý chung vẽ đoạn thẳng ?
 Nguyên lý chung
Đầu vào: cho 2 điểm đầu mút (x1,y1) (x2,y2), màu vẽ C.
Phương trình đƣờng thẳng đi qua 2 điểm đầu mút:
(x-x1)/(y-y1) = (x2-x1)/(y2-y1) => Y=(y2-y1)*(x-x1)/(x2-x1)+y1
Đặt m= (y2-y1)/(x2-x1)
b= y1-mx1
ta có phƣơng trình y=mx+b
m đƣợc gọi là độ dốc hay hệ số góc của đƣờng thẳng, b đƣợc gọi là đoạn chắn trên trục y.
- Từ phƣơng trình này chúng ta có thể xây dựng quá trình vẽ các đƣờng thẳng khi cho x biến thiên các
khoảng x và kết quả ta có thể thu đƣợc giá trị của y thay đổi với các khoảng y tƣơng ứng y=mx.
- Hoặc có thể làm ngƣợc lại cho y biến thiên từng khoảng y và kết quả ta có thể thu đƣợc giá trị của x
thay đổi các khoảng x tƣơng ứng x=y/m
- Đơn vị nhỏ nhất của màn hình là một điểm ảnh nên thông thƣờng chọn x= 1 (x= -1) hoặc y= 1
(y= -1).
- Nguyên lý chung là cho một thành phần tọa độ x hay nguyên biến đổi theo từng đơn vị và tính tọa độ
nguyên còn lại sao cho gần với tọa độ thực nhất.
Câu 5. Trình bày thuật toán DDA vẽ đoạn thẳng ?
- Để đơn giản hóa giải thuật, chúng ta chỉ xét các đƣờng thẳng có hệ số góc m trong khoảng [0,1] và
Dx>0. Mỗi bƣớc nhẩy của x trong mỗi lần tính tƣơng đƣơng một điểm ảnh.
6
Như vậy tại bước i+1: 

=

+ 1

Và tọa độ y tƣơng ứng 

1=

+m
Vì m là số thực nên để thu đƣợc 

nguyên buộc ta phải làm tròn y trƣớc khi đƣa tọa độ truy xuất lên
màn hình.

- Với đƣờng thẳng có hệ số góc m>1, ta có thể cho x biến đổi theo y nghĩa là ở đây y đóng vai trò
tăng và x đƣợc tính theo tƣơng ứng: 

= 

+1, 

=

+1/m. Và chúng ta có thể tính tƣơng tự
cho các trƣờng hợp còn lại.
- Nhận xét:
Độ chính xác của thuật toán cao, đoạn thẳng vẽ đƣợc thể hiện rất gần với đoạn thẳng thực tế. Tuy nhiên
tốc độ tính toán chậm do phải thƣờng xuyên làm việc với các phép toán cộng số thực và làm tròn.
Câu 6. Trình bày thuật toán Breshenham vẽ đoạn thẳng?
- Đây là một phƣơng pháp có hiệu quả chỉ sử dụng cộng trừ các số nguyên và phép nhân. Thực tế cho
thấy rằng, máy tính có thể biểu diễn phép cộng trừ các số nguyên một cách nhanh chóng, giải
quyết đƣợc về mặt thời gian khi biểu diễn các phép nhân, chia cho lũy thừa của 2 vì chỉ phải sử dụng
các phép dịch bit.
- Xét đoạn thẳng có hệ số góc m[0,1] Dx>0

Lúc này bằng cách cho x tăng một đơn vị tại mỗi bƣớc, ta sẽ tìm cách tính y để vẽ các pixel tƣơng ứng.
Giả sử ở bƣớc thứ k ta đã xác định các tọa độ nguyên (xk, yk) nhƣ vậy chúng ta cần xác định tọa độ
(

, 

) cho bƣớc kế tiếp
Theo công thức ta có: 

= 

+1
7
Giá trị của 

có thể đƣợc chọn bởi một trong 2 giá trị yk hoặc yk+1. Điểm đƣợc chọn là
điểm gần với y thực nhất.

Xét khoảng cách d
1
, d
2
từ y thực đến y
k
và đến y
k+1

Gọi (x
k+1
,y) là điểm thuộc đoạn thẳng, ta có y=m(x

k
+1)+b
d
1
= y - y
k
= m(x
k
+1) + b - y
k
. d
2
= y
k
+1 - y = y
k
+ 1 - m(x
k
+ 1) -
b - Nếu d
1
< d
2
=> y
k+1
= y
k

- Ngƣợc lại d
1

>= d
2
=> y
k+1
= y
k
+1 d
1
- d
2
= 2m(x
k
+ 1) - 2y
k
+ 2b - 1
m=(y
2
-y
1
)/(x
2
-x
1
)
Nếu xác định đƣợc dấu của d
1
-d
2
thì sẽ biết đƣợc điểm ảnh nào gần với đoạn thẳng hơn. Xác
định tham số quyết định P

k
cùng dấu với d
1
-d
2
.
Đặt P
k
= (x
2
-x
1
) (d
1
- d
2
)
Do Dx>0 nên P
k
cùng dấu với d
1
-d
2

P
k
= (x
2
-x
1

)[(2(y
2
-y
1
)(x
k
+1)+(x
2
-x
1
)(- 2y
k
+2b-1)]/(x
2
-x
1
) =2(y
2
-y
1
)x
k
-2(x
2
-x
1
)y
k
+c
Trong đó c là hằng số đối với đoạn thẳng và c=2(y

2
-y
1
)+(x
2
-x
1
)(2b-1)
Pk+1 =2(y2-y1)xk+1-2(x2-x1)yk+1+c
P
k+1
tại bƣớc thứ k+1 đƣợc tính tăng dần bằng cách sử dụng giá trị P
k
tại bƣớc thứ k nhƣ sau :
+) P
k
<0 d
1
<d
2
chọn y
k+1
=y
k

P
k+1
=2(y
2
-y

1
)(x
k
+1)-2(x
2
-x
1
)y
k
+c = P
k
+2(y
2
-y
1
)
+) P
k
>=0 d
1
>=d
2
chọn y
k+1
=y
k
+1
8
P
k+1

=2(y
2
-y
1
)(x
k
+1)-2(x
2
-x
1
)(y
k
+1)+c = P
k
+2(y
2
-y
1
)-2(x
2
-x
1
)
Tính giá trị P
1
khởi tạo :
P
1
=2(y
2

-y
1
)x
1
-2(x
2
-x
1
)y
1
+2(y
2
-y
1
)+(2b-1)(x
2
-x
1
)
Do (x
1
, y
1
) là điểm nguyên thuộc đoạn thẳng nên ta có y
1
=mx
1
+b = (Dy/Dx)*x
1
+ b.

Thế vào phƣơng trình trên ta suy ra :
P
1
=2(y
2
-y
1
)- (x
2
-x
1
)
Câu 7. Thuật toán trung điểm vẽ đoạn thẳng (MidPoint)
Xét đoạn thẳng có hệ số góc thuộc [0,1]. Dx>0
Tại mỗi bƣớc x tăng lên một đơn vị, y giữ nguyên hoặc tăng lên một đơn vị, chọn giá trị y gần với
đƣờng thẳng nhất.
Thuật toán MidPoint đƣa ra cách chọn y
i+1
là y
i
hay y
i
+1 bằng cách so sánh điểm thực Q(x
i
+1, y) với
điểm MidPoint là trung điểm của S và P. Ta có:
+ Nếu điểm Q nằm dƣới điểm MidPoint, ta chọn S.
+ Ngƣợc lại nếu điểm Q nằm trên điểm MidPoint ta chọn P.

Ta có dạng tổng quát của phƣơng trình đƣờng thẳng: F(x,y)=Ax+By+C=0

A=y
2
-y
1
, B= -(x
2
-x
1
), C=x
2
y
1
-x
1
y
2

F(x,y)=0 với mọi điểm (x,y) thuộc đƣờng thẳng
F(x,y)>0 với các điểm (x,y) nằm phía dƣới đƣờng thẳng
F(x,y)<0 với các điểm (x,y) nằm phía trên đƣờng thẳng
9
Lúc này việc chọn các điểm S, P ở trên đƣợc đƣa về việc xét dấu của p
i
=2F(M)=2F(x
i
+1, y
i
+0.5)=
2A(x
i

+1)+2B(y
i
+0.5)+C
M là trung điểm của PS
+ Nếu p
i
< 0 điểm M nằm phía trên đoạn thẳng. Lúc này điểm thực Q nằm dƣới điểm M nên ta chọn S
tức là y
i+1
=y
i

P
i+1
=2F(x
i+1
+1, y
i+1
+0.5)=2F(x
i
+2, y
i
+0.5)= 2A(x
i
+2)+2B(y
i
+0.5)+C = p
i
+2A = p
i

+2D
y

+ Nếu p
i
>=0, điểm M nằm phía dƣới đoạn thẳng. Lúc này điểm thực Q nằm phía trên điểm M nên ta
chọn P tức là y
i+1
=y
i
+1
P
i+1
=2F(x
i+1
+1, y
i+1
+0.5)=2F(x
i
+2, y
i
+1.5)= 2A(x
i
+2)+2B(y
i
+1.5)+C = p
i
+2A+2B=p
i
+ 2D

y
-2D
x

Ta tính giá trị p
1
ứng với điểm ban đầu (x
1
, y
1
), với nhận xét rằng (x
1
, y
1
) là điểm thuộc về đoạn thẳng,
tức là ta có Ax
1
+By
1
+C=0.
P
1
=2F(x
1
+1, y
1
+0.5)= 2A(x
1
+1)+2B(y
1

+0.5)+C = 2(Ax
1
+By
1
+C)+ 2A+B =2A+B= 2D
y
-D
x

Câu 8. Trình bày nguyên lý chung vẽ đường tròn?
Trong hệ tọa độ Descartes, phƣơng trình đƣờng tròn bán kính R có dạng:
Với tâm O(0,0) : 

+

= 


Với tâm C(x
c
, y
c
): (x-x
c
)
2
+ (y-y
c
)
2

=R
2

Trong hệ tọa độ cực :
x = x
c
+ R.cosθ, y=y
c
+ R.sinθ với θ [0, 2π].
Do tính đối xứng của đƣờng tròn C nên ta chỉ cần vẽ 1/8 cung tròn, sau đó lấy đối xứng qua 2 trục tọa
độ và 2 đƣờng phân giác thì ta vẽ đƣợc cả đƣờng tròn.

Với đƣờng tròn tâm (x
c
, y
c
) ta có thể vẽ đƣờng tròn tâm (0,0) sau đó tịnh tiến theo vecto (x
c,
y
c
).
Cho x = 0, 1, 2, , int(R x sqrt(2)/2) với R>1.
- Tại mỗi giá trị x, tính int(y = sqrt(R
2
-x
2
)).
10
- Vẽ điểm (x,y) cùng 7 điểm đối xứng của nó.
Một cách tiếp cận khác là vẽ các điểm (R cos (θ), R sin (θ)), với θ chạy từ 0

0
đến 90
0
. Cách này sẽ
khắc phục hạn chế đƣờng không liền nét của thuật toán trên, tuy nhiên điểm hạn chế chính của thuật
toán này đó là chọn bƣớc nhảy cho θ nhƣ thế nào cho phù hợp khi bán kính thay đổi.
Câu 9. Thuật toán trung điểm (MidPoint) vẽ đƣờng tròn
Xét đƣờng tròn tâm tại gốc tọa độ, bán kính R. Xét cung 1/8 đƣờng tròn C(
1/8
), sau đó lấy đối
xứng.

Nhƣ vậy nếu có (x, y) thuộc (C
1/8
) thì các điểm : (y, x), (y,-x), (x,-y), (-x,-y), (y,-x), (-y,x), (-x,y) sẽ
thuộc (C).
Chọn điểm bắt đầu để vẽ là điểm (0,R). Dựa vào hình vẽ, nếu (x
i
, y
i
) là điểm nguyên đã tìm đƣợc ở
bƣớc thứ i, thì (x
i+1
, y
i+1
) ở bƣớc thứ (i+1) là sự lựa chọn giữa S và P. Nhƣ vậy:
x
i+1
=xi+1 y
i+1

ϵ {y
i
, y
i
-1}
Tƣơng tự nhƣ thuật toán MidPoint vẽ đoạn thẳng, việc quyết định chọn một trong hai điểm S và P
sẽ đƣợc thực hiện thông qua việc xét dấu của một hàm nào đó tại điểm MidPoint là điểm nằm giữa
chúng.
Đặt F(x,y)=x
2
+y
2
-R
2
, ta có
F(x,y) <0 nếu (x,y) nằm trong đƣờng tròn
F(x,y) =0 nếu (x,y) thuộc đƣờng tròn
F(x,y) > 0 nếu (x,y) nằm ngoài đƣờng tròn
Gọi M là trung điểm PS
Xét p
i
=F(M)=F(x
i
+1, y
i
-0.5)= (x
i
+1)
2
+ (y

i
-0.5)
2
-R
2




11
p
i+1
=F(x
i+1
+1, y
i+1
-0.5)= (x
i+1
+1)
2
+ (y
i+1
-0.5)
2
- R
2

Ta có :
+ Nếu p
i

<0, điểm M nằm trong đƣờng tròn. Lúc này điểm thực Q gần S hơn nên ta chọn S, tức là y
i+1
=y
i

p
i+1
=F(x
i
+2, y
i
-0.5)= (x
i
+2)
2
+ (y
i
-0.5)
2
-R
2
= p
i
+ 2x
i
+3
+ Nếu p
i
>=0, điểm M nằm ngoài đƣờng tròn. Lúc này điểm thực Q gần P hơn nên ta chọn P,
tức là y

i+1
=y
i
-1
p
i+1
=F(x
i
+2, y
i
- 1.5)= (x
i
+2)
2
+ (y
i
-1.5)
2
-R
2
= p
i
+ 2x
i
-2y
i
+5
Tính giá trị p
1
ứng với điểm ban đầu (x

1
, y
1
) = (0, R)
P
1
=F(1, R-0.5)= 5/4 –R
Câu 10. Trình bày nguyên lý thuật toán trung điểm vẽ đường elip?
 Nguyên lý chung
Cho elip tâm (h, k), độ dài trục chính là a, độ dài trục phụ là b
Phƣơng trình đƣờng elip đƣợc xác định nhƣ sau : (x-h)
2
/a
2
+(y-k)
2
/b
2
=1.
Phƣơng trình elip với tâm tại gốc tọa độ x
2
/b
2
+y
2
/b
2
=1
Elip đƣợc chia thành 4 phần đối xứng qua 2 trục tọa độ, do vậy ta chỉ cần vẽ cung ¼ elip sau đó thực
hiện lấy đối xứng để thu đƣợc các phần còn lại.

Để vẽ elip tâm (h,k) ta có thể thực hiện vẽ elip tâm tại gốc tọa độ sau đó tịnh tiến theo véc tơ (h,k).
Tại mỗi bƣớc ta cho x tăng từ 0 đến a sau đó tính giá trị y tƣơng ứng qua biểu thức trên, sau đó lấy giá
trị nguyên gần với giá trị y thực nhất.
 Thuật toán trung điểm (MidPoint) vẽ elip
Xét elip tâm tại gốc tọa độ. Phƣơng trình đƣờng elip:
F(x,y)=b
2
x
2
+a
2
y
2
−a
2
b
2
=0
Xét vẽ cung ¼ elip, sau đó lấy đối xứng để thu đƣợc các phần còn lại
0<=x<=a
0<=y<=b
12
Chia cung ¼ elip này thành 2 vùng với điểm chia P là tiếp điểm của tiếp tuyến có hệ số góc là -1.
Véc tơ gradient vuông góc với tiếp tuyến tại tiếp điểm đƣợc xác định nhƣ sau:
GradF(x,y) = (∂F/∂x)i+(∂F/∂y)j=2b
2
x.i+2a
2
y.j
Ta có tiếp tuyến với cung tròn (độ dốc) = -1

Vector gradient có độ dốc là 1, do đó tại P các thành phần i và j của vecto gradient có cùng độ lớn.
Trong vùng 1 thành phần j lớn hơn thành phần i của gradient. a
2
(y
p
-0.5)>b
2
(x
p
+1).
Trong vùng 2 thì ngƣợc lại.
+ Xét trên phần 1:
Bắt đầu từ (0,b),
Tại mỗi bƣớc x tăng lên một đơn vị, y biến đổi theo x bƣớc thứ i (x
i
,y
i
), Ở bƣớc i+1 chọn tiếp
A(x
i
+1, y
i
) hoặc B(x
i
+1,y
i
-1). Chọn điểm gần với đƣờng elip nhất dựa trên việc xét dấu của hàm F tại
trung điểm M của AB.
Tham số quyết định:
p

i
=F(M)= F(x
i
+1,y
i
-1/2) = b
2
(x
i
+1)
2
+ a
2
(y
i
-1/2)
2
-a
2
b
2
pi+1 = F(xi+1+1,yi+1-1/2) = b
2
(x
i+1
+1)
2
+ a
2
(y

i+1
-1/2)
2
- a
2
b
2

- Nếu p
i
<0 chọn A: xi+1=xi+1 yi+1=yi
Pi+1 = b
2
(x
i+1
+1)
2
+ a
2
(y
i+1
-1/2)
2
- a
2
b
2
= b
2
(x

i
+2)
2
+ a
2
(y
i
-1/2)
2
-a
2
b
2

= p
i
+ b
2
(2x
i
+3)
- Nếu p
i
>=0 chọn B: xi+1=xi+1 yi+1=yi -1
p
i+1
= b
2
(x
i

+2)
2
+ a
2
(y
i
-1.5)
2
-a
2
b
2

= p
i
+ b
2
(2x
i
+3) + a
2
(-2y
i
+2)
- Tính P1 khởi tạo tại (0,b): p
1
= F(1,b-1/2) = b
2
+ a
2

(b-1/2)
2
-a
2
b
2
= b
2
- a
2
b +a
2
/4
+ Xét trên phần 2:
Ta lấy toạ độ của Pixel sau cùng trong phần 1 của đƣờng cong để tính giá trị ban đầu cho phần 2.
Tại mỗi bƣớc y giảm từng đơn vị, x biến đổi theo y.
Tại bƣớc j ta có điểm (x
j
,y
j
).
Pixel ở bƣớc kế tiếp j+1 có thể là: C(x
j
,y
j
-1) hoặc D(x
j
+1, y
j
-1

13
Tham số quyết định:
q
j
=F(M)= F(x
j
+1/2,y
j
-1) = b
2
(x
j
+1/2)
2
+ a
2
(y
j
-1)
2
-a
2
b
2

qj+1 = F(x
j+1
+1+1/2, y
j+1
-1) = b

2
(x
j+1
+1/2)
2
+ a
2
(y
j+1
-1)
2
-a
2
b
2

- Nếu q
j
<0 chọn D: y
j+1
=yj-1, x
j+1
= x
j
+1
qj+1 b
2
(x
j+1
+1/2)

2
+ a
2
(y
j+1
-1)
2
-a
2
b
2
= b
2
(x
j
+1.5)
2
+ a
2
(y
j
-2)
2
-a
2
b
2
= q
j
+ b

2
(2x
j
+2) +a
2
(-2y
j
+3)
- Nếu q
j
>=0 chọn C: y
j+1
=yj-1, x
j+1
= x
j

qj+1 = b
2
(x
j+1
+1/2)
2
+ a
2
(y
j+1
-1)
2
-a

2
b
2
= b
2
(x
j
+1/2)
2
+ a
2
(y
j
-2)
2
-a
2
b
2
= q
j
+ a
2
(- 2y
j
+3)
- Tính q
1
khởi tạo q
1

= f(x
p
+1/2,y
p
-1) = b
2
(x
p
+1/2)
2
+ a
2
(y
p
-1)
2
-a
2
b
2

Câu 11. Định nghĩa đa giác, cho biết cách vẽ một đa giác?
 Khái niệm đa giác
Đa giác là thành phần cơ bản nhất của bề mặt. Việc biểu diễn đa giác có thể thông qua tập các đƣờng
thẳng hay tập các điểm thuộc đa giác. Một đa giác là một đƣờng gấp khúc có điểm đầu và điểm cuối trùng
nhau.
 Xây dựng cấu trúc dữ liệu để vẽ đa giác Type
d_dinh = record x,y: longint; end;
dinh = array[0 10] of d_dinh; var d: dinh;
Với cách xây dựng cấu trúc dữ liệu nhƣ thế này thì chúng ta chỉ cần nhập vào tọa độ các đỉnh và

sau đó gọi thủ tục vẽ đƣờng thẳng lần lƣợt qua 2 đỉnh nhƣ (0, 1), (1,2), , (n-1, n), trong đó đỉnh n
trùng với đỉnh 0 thì ta sẽ vẽ đƣợc toàn bộ đa giác.
Câu 12. Trình bày thuật toán tô màu dựa theo dòng quét?
Giả sử vùng tô đƣợc cho bởi một đa giác N đỉnh : P
i
(x
i
, y
i
),i=0,…,N-1. Đa giác này có thể là đa giác
lồi, đa giác lõm, và cả đa giác tự cắt, …
Ta có thể tóm bắt các bƣớc chính của thuật toán :
- Tìm y
top
, y
bottom
lần lƣợt là giá trị lớn nhất, nhỏ nhất của tập các tung độ của các đỉnh của đa giác đã
cho:
14
y
top
= max{y
i
,(x
i
,y
i
) ϵ P}, ybottom= min{y
i
, (x

i
,
y
i
)ϵP}
- Ứng với mỗi dòng quét y=k, với k thay đổi từ y
bottom
đến y
top
lặp :
+ Tìm tất cả các hoành độ giao điểm của dòng quét y=k với các cạnh của đa giác.
+ Sắp xếp các hoành độ giao điểm theo thứ tự tăng dần : x
0
, x
1
, …
+ Tô màu các đoạn thẳng trên đƣờng thẳng y=k lần lƣợt đƣợc giới hạn bởi các cặp
(x
0
,x
1
), (x
2
, x
3
), ….
Nếu chỉ dừng ở mức này và chuyển sang cài đặt, chúng ta sẽ gặp một số vấn đề sau :
+ Nhận xét rằng, ứng với mỗi dòng quét, không phải lúc nào tất cả các cạnh của đa giác cũng tham
gia cắt dòng quét.
+ Việc tìm giao điểm của cạnh đa giác với mỗi dòng quét sẽ gặp các phép toán phức tạp nhƣ nhân,

chia, … trên số thực nếu ta dùng cách giải hệ phƣơng trình tìm giao điểm.
+ Nếu số giao điểm tìm đƣợc giữa các cạnh đa giác và dòng quét là lẻ thì việc nhóm từng cặp giao
điểm kế tiếp nhau để hình thành các đoạn tô có thể sẽ không chính xác Nếu tính số giao điểm tại
đỉnh dòng quét đi ngang qua là hai thì có thể sẽ cho kết quả tô không chính xác. Ngoài ra, việc tìm
giao điểm của dòng quét với các cạnh nằm ngang là một trƣờng hợp đặc biệt cần phải có cách xử lí
thích hợp.
Câu 13. Trình bày thuật toán tô màu theo đường biên?
Đường biên của vùng tô đƣợc xác định bởi tập các đỉnh của một đa giác, đƣờng biên trong thuật
toán đƣợc mô tả bằng một giá trị duy nhất đó là màu của tất cả các điểm thuộc về đƣờng biên.
Bắt đầu từ điểm nằm bên trong vùng tô, ta sẽ kiểm tra các điểm lân cận của nó đã đƣợc tô màu hay
có phải là điểm biên hay không, nếu không phải là điểm đã tô và không phải là điểm biên ta sẽ tô màu
nó. Quá trình này đƣợc lặp lại cho tới khi nào không còn tô đƣợc điểm nào nữa thì dừng.
Có hai quan điểm về cách tô này, đó là dùng bốn điểm lân cận hay tám điểm lân cận đối với điểm đang
xét đƣợc tô bằng màu trắng

Hình 2.25: 4 điểm lân cận (a) và 8 điểm lân cận (b)
15
Nhận xét
+ Thuật toán này có thể sẽ không hoạt động chính xác khi có một số điểm nằm trong vùng tô có
màu là màu cần tô của vùng (FillColor). (không kt đc 1 điểm đã tô hay chưa)
+ Gây tràn bộ nhớ nếu ảnh lớn.
Câu 14. Trình bày các mô hình màu RGB, CMY, CMYK?
 Mô hình màu RGB (Red, Green, Blue - đỏ, lục, lam)
- Mô hình không gian màu RGB đƣợc sắp xếp theo khối lập phƣơng đơn vị. Đƣờng chéo chính của khối
lập phƣơng với sự cân bằng về số lƣợng từng màu gốc tƣơng ứng với các mức độ xám với đen là (0,0,0) và
trắng (1,1,1).
- Tọa độ trên các cạnh trục biểu diễn các màu cơ sở.
- Các cạnh còn lại biểu diễn màu bù cho mỗi màu cơ sở.
Đây là mô hình màu cộng tính


C = rR + gG + bB
Trong đó C = màu hoặc ánh sáng kết quả. (r,g,b) = toạ độ màu trong miền [0 1], (R,G,B) = các màu cơ
bản đỏ, lục và lam.

Nếu hai màu tạo ra cùng một giá trị kích thích thì chúng ta không thể phân biệt đƣợc hai màu.
Không gian màu RGB dựa theo chuẩn ITU-R BT.709, với gama = 2.2 và điểm trắng của mô hình là
6500 degrees K.
Một số thuận lợi khi dùng không gian RGB :
+ Không gian RGB là chuẩn công nghiệp cho các thao tác đồ họa máy tính.
16
+ Có thể chuyển đổi qua lại giữa không gian RGB với các không gian màu khác nhƣ CIE, CMY, HSL,
HSV,
+ Các thao tác tính toán trên không gian RGB thƣờng đơn giản hơn.
Một số bất lợi :
+ Các giá trị RGB của một màu là khác nhau đối với các màn hình khác nhau : các giá trị RGB của
màu tim trên màn hình màu này sẽ không sinh ra đúng màu đó trên một màn hình khác.
+ Sự mô tả các màu trong thế giới thực đối với không gian RGB còn nhiều hạn chế bởi vì không
gian RGB không hoàn toàn phù hợp với sự cảm nhận màu sắc của con ngƣời.
 Mô hình màu CMY (Cyan, Magenta, Yellow - xanh tím, Đỏ tƣơi, vàng)
3 màu cơ sở là Cyan, Magenta, Yellow đây là 3 màu bù của 3 màu Red, Green, Blue.
Đây là mô hình màu bù (Subtractive color models) hiển thị ánh sáng và màu sắc phản xạ từ mực in. Bổ
xung thêm mực đồng nghĩa với ánh sáng phản xạ càng ít.
Khi bề mặt không phủ mực thì ánh sáng phản xạ là ánh sáng trắng - white.
Khi 3 màu có cùng giá trị cho ra màu xám. Khi các giá trị đạt max cho màu đen.
Color = cC + mM + yY

Đây là mô hình màu trừ tính.
- Hệ màu CMY được dùng cho các thiết bị in màu/giấy, chẳng hạn như máy in tĩnh điện hoặc máy in
phun.
Ta có Red +Cyan = Black ; Green +Magenta = Black ; Blue + Yellow = Black




17
 Mô hình màu CMY- K
Mô hình mở rộng của CMY ứng dụng trong máy in màu. Giá trị đen bổ xung vào thay thế cho hàm
lƣợng màu bằng nhau của 3 màu cơ bản.
Công thức chuyển đổi:
K = min(C, M, Y) ;
C = C - K ;
M = M - K;
Y = Y - K ;
C-Cyan, M-Magenta, Y-Yellow; K-blacK
Câu 15. Trình bày các mô hình màu HSV, HLS?
 Mô hình màu HSV (Hue, Saturation,Value)
Yếu tố cảm nhận màu sắc:
- Hue - sắc màu: dùng để phân biệt sự khác nhau giữa các màu nhƣ xanh, đỏ, vàng
- Saturation - độ bão hoà: chỉ ra mức độ thuần của một màu hay khoảng cách của màu tới điểm có
cƣờng độ cân bằng(màu xám)
- Lightness - độ sáng: hiện thân về mô tả cƣờng độ sáng từ ánh sáng phản xạ nhận đƣợc từ đối tƣợng.
- Brightness - độ phát sáng: cƣờng độ ánh sáng mà tự đối tƣợng phát ra chứ không phải do phản xạ từ
các nguồn sáng khác.
- HSV (Hue, Saturation, Value)=HSB(Hue, Saturation, Brightness) định hƣớng ngƣời sử dụng dựa trên
cơ sở về trực giác về tông màu, sắc độ và sắc thái mỹ thuật
Hue: màu sắc 00-3600 đo bởi góc quay xung quanh trục đứng với màu đỏ là 00, màu lục là 1200,
màu lam là 2400. Các màu bổ sung cho hình chóp ở 1800 đối diện với màu khác.
Value-Brightness:(độ sáng) 0-1 đƣờng cao V với đỉnh là các điểm gốc toạ độ (0,0). Điểm ở đỉnh là
màu đen và giá trị V=0. Khi điểm có S=0 và V=1 là điểm màu trắng, những giá trị trung gian của V
đối với S=0 là các màu xám. Khi S=0 giá trị của H phụ thuộc đƣợc gọi bởi các qui ƣớc không xác
định. Ngƣợc lại khi S khác 0 giá trị H sẽ là phụ thuộc.

Saturation: Độ bão hoà 0-1, giá trị của S là tập các giá trị từ 0 trên đƣờng trục tâm (trục V) đến 1 trên
các mặt bên tại đỉnh của chóp 6 cạnh.
18

 Một số thuận lợi của không gian HSV :
+ Không gian HSV dễ dàng đáp ứng các màu sắc của các chƣơng trình đồ họa do đƣợc xây dựng
dựa trên sự bắt chƣớc luật trộn màu của ngƣời họa sĩ.
+ Do không cần sử dụng các phép biến đổi lƣợng giác khi muốn chuyển sang không gian RGB nên
không gian HSV có nhiều thuận lợi về mặt tính toán hơn so với không gian HSL.
 Một số bất lợi :
+ Cần có các phép hiệu chỉnh gamma.
 Mô hình màu HLS (Hue, Lightness, Saturation Model) – không gian màu trực quan
Mô hình thƣờng đƣợc sử dụng trong kỹ thuật đồ hoạ.
Ưu điểm là rất trực giác ví dụ ta có thể chọn màu, thay đổi độ sáng và thay đổi độ bão hoà.
Nhược điểm là khi chuyển đổi với không gian màu RGB sẽ có sai số (cube stood on end) thay đổi
trên các loại màn hình khác nhau, rõ ràng không cảm nhận đều các màu.

19
Có thể coi mô hình HLS nhƣ một sự biến dạng của mô hình HLS mà trong đó mô hình này màu
trắng đƣợc kéo hƣớng lên hình chóp sáu cạnh phía trên từ mặt V=1.
Độ sáng (Lightness)=0 cho màu đen (tại điểm mút thấp nhất của hình chóp sáu cạnh đôi) và bằng 1 cho
màu trắng (tại đầu mút cao nhất).
 Một số thuận lợi của không gian HSL :
+ Không gian HSL gần với sự cảm nhận các thuộc tính màu sắc của con ngƣời hơn không gian
RGB. Các màu đƣợc xác định dễ dàng hơn.
+ Việc kiểm soát các màu cơ sở HSL dễ hơn cho những ngƣời mới làm quen với các chƣơng trình đồ
họa.
 Một số bất lợi :
+ Việc thêm vào một vector không thể thực hiện đơn giản nhƣ không gian RGB (chỉ thêm vào các
thành phần màu). Các thao tác lƣợng giác khi biến đổi sẽ ảnh hƣởng đáng kể đến tốc độ của chƣơng

trình.
+ Cần phải qua hiệu chỉnh gamma trƣớc khi hiển thị (giống nhƣ các không gian khác).
Câu 16. Cho biết các vị trí tương đối của một đoạn thẳng và một cửa sổ xén hình chữ nhật cho
trước? Cho biết cách xác định giao điểm trong trường hợp đoạn thẳng cắt cửa sổ?

 Các vị trí tương đối của một đoạn thẳng và một cửa sổ xén hình chữ nhật cho trước.
Giả sử cửa sổ xén là cửa sổ hình chữ nhật có tọa độ của các điểm dƣới bên trái và điểm trên bên phải
lần lƣợt là (x
min
, y
min
), (x
max
, y
max
)
Cho đoạn thẳng đi qua 2 điểm đầu mút (x
1
, y
1
), (x
2
, y
2
). Đoạn thẳng sẽ thuộc vào một trong 3 trƣờng
hợp sau:
20

 Trƣờng hợp 1: Nhìn thấy
Đoạn thẳng nằm hoàn toàn trong cửa sổ xén. Tọa độ 2 đầu mút nằm hoàn toàn trong cửa sổ xén. Đoạn

thẳng sẽ đƣợc hiển thị toàn bộ trong vùng dữ liệu hiển thị.
 Trƣờng hợp 2: Không nhìn thấy
Đoạn thẳng nằm hoàn toàn về một phía ngoài của cửa sổ. 2 đầu mút của đoạn thẳng nằm hoàn toàn
về một phía ngoài của cửa sổ thỏa mãn một trong 4 bất đẳng thức sau:
x1, x2> xmax x1, x2<
xmin y1,y2>ymax y1,
y2<ymin
Đoạn thẳng bị loại bỏ khỏi vùng dữ liệu hiển thị.
 Trƣờng hợp 3: đoạn thẳng đƣợc cắt.
Đoạn thẳng không thuộc trƣờng hợp một hoặc trƣờng hợp hai. Khi đó đoạn thẳng có thể cắt hoặc không
cắt cửa sổ.
 Cách xác định giao điểm trong trường hợp đoạn thẳng cắt cửa sổ
- Đoạn thẳng cắt cửa sổ hình chữ nhật tại các giao điểm, ta quy về trường hợp đoạn thẳng cắt đoạn
thẳng.
Xét 2 đoạn thẳng AB, CD có các tọa độ đầu mút nhƣ sau: A(x
a
, y
a
), B(x
b
, y
b
),
C(x
c
, y
c
), D(x
d
, y

d
)
Ta thƣờng dùng phƣơng trình tham số của đoạn thẳng để tìm giao điểm.
Phƣơng trình đoạn thẳng AB:
21
X=x
a
+ (x
b
-x
a
) t
Y=y
a
+ (y
b
-y
a
) t 0<=t<= 1
Phƣơng trình đoạn thẳng CD:
X’=x
c
+ (x
d
-x
c
) v
Y’=y
c
+ (y

d
-y
c
) v 0<=v<= 1
Xét 2 đƣờng thẳng chứa 2 đoạn thẳng AB và CD tƣơng ứng (t, v ϵR)
Nếu 2 đƣờng thẳng này giao nhau với giá trị tham số t, v tƣơng ứng nằm trong khoảng [0,1] giao
điểm này sẽ nằm trong đoạn thẳng AB và CD. Nếu giá trị tham số nằm ngoài khoảng [0,1] thì hai
đoạn thẳng này không giao nhau.
Câu 17. Trình bày thuật toán xén đoạn thẳng Cohen-Sutherland?
Một con số 4 bit nhị phân gọi là mã vùng sẽ đƣợc gán cho mỗi vùng để mô tả vị trí tƣơng đối của
vùng đó so với cửa sổ. Bằng cách đánh số từ 1 đến 4 theo thứ tự từ phải qua trái, các bit của mã vùng
đƣợc dùng theo quy ƣớc sau để chỉ một trong bốn vị trí tƣơng đối của vùng so với cửa sổ bao gồm :
trái, phải, trên, dƣới.
Bit 1 : trái (LEFT)
Bit 2 : phải (RIGHT)
Bit 3 : trên (TOP)
Bit 4 : dƣới (BOTTOM)
Giá trị 1 tƣơng ứng với vị trí bit nào trong mã vùng sẽ chỉ ra rằng điểm đó ở vị trí tƣơng ứng,
ngƣợc lại bit đó sẽ đƣợc đặt bằng 0. Ví dụ một vùng có mã là 1001, thì nó sẽ nằm phía dƣới (bit 4
bằng 1), bên trái (bit 1 bằng 1) so với cửa sổ, vùng có mã là 0000 chính là cửa sổ.

Các giá trị bit trong mã vùng đƣợc tính bằng cách xác định tọa độ của điểm thuộc vùng đó với các
biên của cửa sổ. Bit 1 đƣợc đặt là 1 nếu x< x
min
, các bit khác đƣợc tính tƣơng tự.
Thuật toán
22
Gán mã vùng tƣơng ứng cho các điểm đầu cuối P
1
P

2
của đoạn thẳng cần xén lần lƣợt là c
1
, c
2
. Ta có
nhận xét :
+ Các đoạn thẳng nằm hoàn toàn bên trong cửa sổ sẽ có c
1
=c
2
=0000. Hay c
1
OR c
2
= 0000, ứng với
các đoạn này, kết quả sau khi xén là chính nó.
+ Nếu tồn tại kϵ{1, ,4}, sao cho với bit thứ k của c
1
, c
2
đều có giá trị 1, lúc này đoạn thẳng sẽ nằm
về cùng phía ứng với bit k so với cửa sổ, do đó nằm hoàn toàn ngoài cửa sổ. Đoạn này sẽ bị loại bỏ
sau khi xén.
+ Nếu c
1
, c
2
không thuộc về hai trƣờng hợp trên, đoạn thẳng có thể hoặc không cắt ngang cửa sổ
chắc chắn sẽ tồn tại một điểm nằm ngoài cửa sổ. Bằng cách xét mã vùng của P

1
là c
1
ta có thể xác định
đƣợc các biên mà đoạn thẳng có thể cắt để từ đó chọn một biên và tiến hành tìm giao điểm P
1
’của
đoạn thẳng với biên đó. Lúc này, đoạn thẳng ban đầu đƣợc xén thành P
1
P
1
’. Tới đây chúng ta lại lặp
lại thao tác đã xét cho đoạn thẳng mới P
1
P
1
’ cho tới khi xác định đƣợc phần nằm trong hoặc loại bỏ
toàn bộ đoạn thẳng.
Các điểm giao với các biên cửa sổ của đoạn thẳng có thể đƣợc tính từ phƣơng trình tham số. Tung
độ y của điểm giao đoạn thẳng với biên đứng của cửa sổ có thể tính từ công thức y=y
1
+m(x-x
1
), trong
đó x có thể x
min
hay x
max
. Tƣơng tự, hoành độ x của điểm giao đoạn thẳng với biên ngang của cửa sổ
có thể tính từ công thức : x=x

1
+(y-y
1
)/m , trong đó y có thể là y
min
hay y
max
.
Câu 18. Trình bày thuật toán xén hình Liang-Barsky?
Thuật toán Liang-Barsky đƣợc phát triển dựa vào việc phân tích dạng tham số của phƣơng trình đoạn
thẳng.
X=x
1
+t(x
2
-x
1
)=x
1
+tDx, Dx=x
2
-x
1

Y=y
1
+t(y
2
-y
1

)= y
1
+tDy, Dy=y
2
-y
1

Ứng với mỗi giá trị t, ta sẽ có một điểm P tƣơng ứng thuộc đƣờng thẳng.
+ Các điểm ứng với t>=1 sẽ thuộc về tia P
2
x.
+ Các điểm ứng với t<=0 sẽ thuộc về tia P
2
x’.
+ Các điểm ứng với 0<=t<=1 sẽ thuộc về đoạn thẳng P
1
P
2
.

23
Tập hợp các điểm thuộc về phần giao của đoạn thẳng và cửa sổ ứng với các giá trị t thỏa hệ bất
phƣơng trình :

Đặt:
P
1
=-Dx, q
1
=x

1
-x
min

P
2
=Dx, q
2
=x
max
-x
1

P
3
=-Dy, q
3
=y
1
-y
min

P
4
=Dy, q
4
=y
max
-y
1


Lúc này ta viết hệ phƣơng trình trên dƣới dạng :

Nhƣ vậy việc tìm đoạn giao thực chất là tìm nghiệm của hệ bất phƣơng trình này. Có hai khả năng xảy
ra đó là :
+ Hệ bất phƣơng trình vô nghiệm, nghĩa là đƣờng thẳng không có phần giao với cửa sổ nên sẽ bị loại
bỏ.
+ Hệ bất phƣơng trình có nghiệm, lúc này tập nghiệm sẽ là các giá trị t thỏa mãn:

Ta xét các trƣờng hợp :
+ Nếu tồn tại k ϵ {1, 2,3,4}: (p
k
=0) ˄ (q
k
< 0) thì rõ ràng bất phƣơng trình ứng với k trên là vô nghiệm,
do đó hệ vô nghiệm.
+ Nếu với mọi k ϵ {1, 2,3,4}: (p
k
≠0) ˅ (q
k
>= 0) thì với các bất phƣơng trình mà ứng với p
k
= 0 là
các bất phƣơng trình hiển nhiên, lúc này hệ bất phƣơng trình cần giải tƣơng đƣơng với hệ bất
phƣơng trình có pk ≠0.
+ Với các bất phƣơng trình p
k
t <=q
k
mà p

k
<0 , ta có t>=q
k
/p
k
+ Với các bất
phƣơng trình p
k
t <=q
k
mà p
k
>0 , ta có t <=q
k
/p
k
Vậy nghiệm của hệ bất phƣơng trình
là [t
1
, t
2
]với :
24

Nếu hệ trên có nghiệm thì đoạn giao Q
1
Q
2
sẽ là Q
1

(x
1
+t
1
Dx, y
1
+t
1
Dy), Q
2
(x
1
+t
2
Dx, y
1
+t
2
Dy)
Thông thƣờng, thuật toán Liang-Barsky cho tốc độ tốt hơn thuật toán CohenSutherland vì rút gọn
đƣợc số giao điểm cần tính.
Câu 19. Trình bày thuật toán cắt đa giác Sutherland-Hodgman?
Cho P
1
, ,P
N
là danh sách các đỉnh của đa giác đã bị cắt tỉa P. Cho cạnh AB (điểm A,B) là cạnh
bất kỳ của đa giác cắt tỉa Q lồi duyệt theo hƣớng dƣơng. Với mỗi cạnh của đa giác Q ta sẽ cắt mỗi
cạnh của đa giác P và tạo nên một đa giác mới với các đỉnh đƣợc xác định nhƣ sau:
Xét cạnh P

i-1
P
i
:

- Các trƣờng hợp trong giải thuật Sutherland Hodgman
(1) Nếu cả P
i-1
và P
i
đều nằm bên trái của cạnh này thì P
i
đƣợc lƣu lại (đƣa vào output) của đa
giác cắt tỉa.
(2) Nếu cả P
i-1
và P
i
đều nằm bên phải của cạnh thì không có đỉnh nào đƣợc lƣu lại.
(3) Nếu P
i-1
nằm bên trái và P
i
nằm bên phải của cạnh thì giao điểm I của P
i-1
P
i
với cạnh sẽ
đƣợc lƣu lại.
(4) Nếu P

i-1
nằm bên phải và P
i
nằm bên trái thì cả giao điểm I và P
i
đều đƣợc lƣu lại.
Quá trình thực hiện thuật toán bằng cách duyệt lần lƣợt tƣng cạnh của đa giác cắt. Với mỗi cạnh
của đa giác cắt lại duyệt lần lƣợt từng cạnh của đa giác bị cắt mới thu đƣợc.
Thuật toán Sutherland-Hodgeman cho kết quả rất chính xác khi làm việc với các đa giác lồi, tuy
nhiên với các đa giác lõm kết quả hiển thị có thể sẽ có đoạn thừa.
25
Câu 20. Cho biết các tính chất của phép biến đổi affine?
 Phép biến đổi affine bảo toàn đường thẳng
Ảnh của đƣờng thẳng qua phép biến đổi affine là đƣờng thẳng.
Từ kết quả trên, để biến đổi một đoạn thẳng đi qua hai điểm A và B, ta chỉ cần áp dụng phép biến đổi
cho hai điểm A, B rồi vẽ lại đoạn thẳng qua hai điểm mới.
 Tính song song của các đường thẳng được bảo toàn
Ảnh của hai đƣờng thẳng song song là hai đƣờng song song.
Một hệ quả quan trọng của tính chất này đó là ảnh của các hình bình hành sau phép biến đổi là các hình
bình hành.
 Tính tỉ lệ về khoảng cách được bảo toàn
Giả sử C là điểm chia đoạn AB theo tỉ số t. Nếu A’, B’, C’ lần lƣợt là ảnh A, B, C qua phép biến đổi
thì C’ cũng sẽ chia A’B’ theo tỉ số t.
Trong trƣờng hợp đặc biệt, nếu C là trung điểm của AB thì C’ cũng là trung điểm của A’B’, từ đó ta có
thể suy ra một số tính chất sau :
+ Trong hình vuông, các đƣờng chéo cắt nhau tại trung điểm của mỗi đƣờng nên các đƣờng chéo
của bất cứ hình bình hành nào cũng cắt nhau tại trung điểm của mỗi đƣờng.
+ Trong tam giác đều, giao điểm của ba đƣờng trung tuyến chia mỗi đƣờng theo tỉ số 1:2. Mặt
khác, một tam giác bất kì là ảnh của tam giác đều qua phép biến đổi affine, nên giao điểm của các
đƣờng trung tuyến của nó cũng sẽ chia chúng theo tỉ lệ 1:2.

Câu 21. Trình bày hệ tọa độ thuần nhất và cho biết ma trận tọa độ thuần nhất của các phép biến
đổi tịnh tiến, quay quanh gốc tọa độ, phép tỷ lệ quanh gốc tọa độ trong không gian 2 chiều ?
 Hệ tọa độ thuần nhất
Tọa độ thuần nhất của một điểm trên mặt phẳng đƣợc biểu diễn bằng bộ ba số tỉ lệ (x
h
, y
h
, h)
không đồng thời bằng 0 và liên hệ với các tọa độ (x,y) của điểm đó bởi công thức : x=x
h
/h, y=y
h
/h
Nếu một điểm có tọa độ thuần nhất là (x, y, z) thì nó cũng có tọa độ thuần nhất là (h.x,h.y, h)trong
đó h là số thực # 0 bất kì.
 Phép tịnh tiến

×