Ch ng 10: ươ
Các gi i thu t nâng cao
Scan conversion
ªScan conversion: quá trình bi u di n m t đi t ng hình h c (đo n ượ
th ng, vòng tròn,...) trong b đm nh đn (frame buffer) c a h ơ
th ng đ h a quét raster.
ªv n hành (drive) the frame buffer thông qua các th t c
SetPixel()
GetPixel()
Frame buffer và thi t b hi n thế
ªMô hình ch c năng c a frame buffer
làm t i nhươ
C
R
x
y
B
Màn hình
B=1
(value=0) => (pixel off) black
(value=1) => (pixel on) white
Truy c p vào frame buffer
const {moät ví duï}
MaxColumn = 639; {= C - 1}
MaxRow = 479; {= R - 1}
MaxColor = 255; {= soá caùc maøu - 1}
type
col = 0..MaxColumn;
row = 0..MaxRow;
color = 0..MaxColor;
procedure SetPixel(c : col, r : row, value : color); {load frame buffer}
function GetPixel(c : col, r : row) : color; {read frame buffer}
procedure SetPixelWord(c : col, r : row, value : word);
function GetPixel(c : col, r : row) : word;
0 MaxColumn1 2
0
1
2
ªMô hình l p trình
Mô hình cho frame buffer
Các thao tác lên frame buffer.
MaxRow
Thu t toán v đo n th ng
ªYêu c u
Đi qua 2 đi m đu mút c a đo n th ng
Đ sáng đng đu, tr ơn
Đưng th ng có đ d c khác nhau ph i có đ sáng nh ư nhau
Gi i thu t ph i có tính l p l i (dùng đ xóa đưng th ng)
Không ph thu c vào các ch n đi m b t đu v