Đồ họa

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Trường THCS Lê Hồng Phong (trang riêng)
Ngày gửi: 18h:46' 05-06-2014
Dung lượng: 221.0 KB
Số lượt tải: 1
Nguồn:
Người gửi: Trường THCS Lê Hồng Phong (trang riêng)
Ngày gửi: 18h:46' 05-06-2014
Dung lượng: 221.0 KB
Số lượt tải: 1
Số lượt thích:
0 người
Chương 10
ĐỒ HỌA
I. MÀN HÌNH TRONG CHẾ ĐỘ ĐỒ HỌA ( GRAPHIC)
Hình ảnh trong chế độ đồ họa được tạo ra bằng các điểm ảnh (Pixel), số điểm ảnh của màn hình đồ họa tùy thuộc vào từng loại CARD màn hình và MODE qui định cho màn hình đó.
Việc lập trình trong chế độ đồ họa cần phải xác định được loại màn hình đang sử dụng và chương trình phải vận hành được trên nhiều loại màn hình khác nhau.
Tọa độ của một điểm ảnh trên màn hình đồ họa cũng giống như trong chế độ văn bản (TEXT) với điểm ảnh đầu tiên trên góc trái màn hình là (0,0), tọa độ đỉnh dưới phải tùy thuộc vào độ phân giải của màn hình, CARD màn hình và MODE màn hình.
(0,0)
(MaxX,MaxY)
Để dử dụng được chế độ đồ họa trên màn hình, ta cần phải có các File sau:
GRAPH.TPU Chứa các lệnh đồ họa
* .BGI Chứa Font màn hình
* .CHR Chứa Font ký tư
II. KHỞI TẠO VÀ THOÁT KHỎI CHẾ ĐỘ ĐỒ HỌA
2.1. Khởi tạo chế độ đồ họa
Thủ tục INITGRAPH(Gd,Gm:Integer; Path:String);
trong đó:
- Gd: Chỉ CARD màn hình.
Thông thường, một chương trình phải được chạy trên nhiều loại màn hình khác nhau nên ta có thể khai báo:
Gd = Detect ( = 0 )
Với hằng Detect, máy sẽ tự động tìm CARD màn hình tương ứng để chạy chương trình.
- Gm: Chỉ MODE màn hình.
Trong trường hợp khai báo Gd = Detect thì không cần thiết phải khai báo Gm vì máy tính sẽ tự xác định loại CARD màn hình và thiết lập chế độ MODE màn hình tương ứng với CARD màn hình đó.
- Path: Đường dẫn đến nơi chứa các file *.BGI. Nếu Path = ‘’ thì ta hiểu là các file *.BGI nằm trong thư mục hiện hành.
Hàm GRAPHRESULT:Integer;
Hàm này trả về kết quả của việc khởi động đồ họa.
= 0 : Thành công.
<>0 : Bị lỗi.
Tên của lỗi được xác định bởi hàm GRAPHERRORMSG(Er:Integer):String;
Hàm này cho ra một xâu ký tự thông báo lỗi của đồ họa xác định bởi đối số Er.
* Hằng số GrOK = 0: Việc khởi động đồ họa có lỗi.
Ví dụ:
Uses Graph;
Procedure ThietLapDoHoa;
var gd,gm,Gr:integer;
Begin
DetectGraph(Gd,Gm);
InitGraph(gd,gm,`C:TPBGI`);
Gr:=GraphResult;
If Gr<>GrOK then
Begin
writeln(`Loi Do hoa: `,GraphErrorMsg(Gr));
Halt(1);
End;
End;
BEGIN
ThietLapDoHoa;
. . .
END.
Chú ý: Ta có thể khởi tạo mode đồ hoạ với chế độ 256 màu bằng cách sử dụng hàm InstallUserDriver(Name:String;Ptr:Pointer):Integer; với điều kiện trên đĩa phải có file SVGA256.BGI.
Procedure ThietLapDoHoa;
var gd,gm,Gr:integer;
Begin
Gd:= InstallUserDriver(SVGA256,NIL);
Gm:=2; {Mode 640x480x256}
InitGraph(gd,gm,`C:TPBGI`);
End;
2.2. Thoát khỏi chế độ đồ họa
Thủ tục CLOSEGRAPH;
Sau đây là cấu trúc chung của một chương trình đồ họa:.
Uses Crt,Graph;
Procedure ThietLapDoHoa;
var gd,gm,Gr:integer;
Begin
DetectGraph(Gd,Gm);
InitGraph(gd,gm,`C:TPBGI`);
Gr:=GraphResult;
If Gr<>GrOK then
Begin
writeln(`Loi Do hoa: `,GraphErrorMsg(Gr));
Halt(1);
End;
End;
BEGIN
ThietLapDoHoa;
. . .
CloseGraph;
END.
III. TỌA ĐỘ VÀ CON TRỎ TRÊN MÀN HÌNH ĐỒ HỌA
3.1. Hàm GetMaxX:Integer;
Cho tọa độ cột lớn nhất của màn hình.
3.2. Hàm GetMaxY:Integer;
Cho tọa độ dòng lớn nhất của màn hình.
3.3. Thủ tục MOVETO(x,y:Integer);
Di
ĐỒ HỌA
I. MÀN HÌNH TRONG CHẾ ĐỘ ĐỒ HỌA ( GRAPHIC)
Hình ảnh trong chế độ đồ họa được tạo ra bằng các điểm ảnh (Pixel), số điểm ảnh của màn hình đồ họa tùy thuộc vào từng loại CARD màn hình và MODE qui định cho màn hình đó.
Việc lập trình trong chế độ đồ họa cần phải xác định được loại màn hình đang sử dụng và chương trình phải vận hành được trên nhiều loại màn hình khác nhau.
Tọa độ của một điểm ảnh trên màn hình đồ họa cũng giống như trong chế độ văn bản (TEXT) với điểm ảnh đầu tiên trên góc trái màn hình là (0,0), tọa độ đỉnh dưới phải tùy thuộc vào độ phân giải của màn hình, CARD màn hình và MODE màn hình.
(0,0)
(MaxX,MaxY)
Để dử dụng được chế độ đồ họa trên màn hình, ta cần phải có các File sau:
GRAPH.TPU Chứa các lệnh đồ họa
* .BGI Chứa Font màn hình
* .CHR Chứa Font ký tư
II. KHỞI TẠO VÀ THOÁT KHỎI CHẾ ĐỘ ĐỒ HỌA
2.1. Khởi tạo chế độ đồ họa
Thủ tục INITGRAPH(Gd,Gm:Integer; Path:String);
trong đó:
- Gd: Chỉ CARD màn hình.
Thông thường, một chương trình phải được chạy trên nhiều loại màn hình khác nhau nên ta có thể khai báo:
Gd = Detect ( = 0 )
Với hằng Detect, máy sẽ tự động tìm CARD màn hình tương ứng để chạy chương trình.
- Gm: Chỉ MODE màn hình.
Trong trường hợp khai báo Gd = Detect thì không cần thiết phải khai báo Gm vì máy tính sẽ tự xác định loại CARD màn hình và thiết lập chế độ MODE màn hình tương ứng với CARD màn hình đó.
- Path: Đường dẫn đến nơi chứa các file *.BGI. Nếu Path = ‘’ thì ta hiểu là các file *.BGI nằm trong thư mục hiện hành.
Hàm GRAPHRESULT:Integer;
Hàm này trả về kết quả của việc khởi động đồ họa.
= 0 : Thành công.
<>0 : Bị lỗi.
Tên của lỗi được xác định bởi hàm GRAPHERRORMSG(Er:Integer):String;
Hàm này cho ra một xâu ký tự thông báo lỗi của đồ họa xác định bởi đối số Er.
* Hằng số GrOK = 0: Việc khởi động đồ họa có lỗi.
Ví dụ:
Uses Graph;
Procedure ThietLapDoHoa;
var gd,gm,Gr:integer;
Begin
DetectGraph(Gd,Gm);
InitGraph(gd,gm,`C:TPBGI`);
Gr:=GraphResult;
If Gr<>GrOK then
Begin
writeln(`Loi Do hoa: `,GraphErrorMsg(Gr));
Halt(1);
End;
End;
BEGIN
ThietLapDoHoa;
. . .
END.
Chú ý: Ta có thể khởi tạo mode đồ hoạ với chế độ 256 màu bằng cách sử dụng hàm InstallUserDriver(Name:String;Ptr:Pointer):Integer; với điều kiện trên đĩa phải có file SVGA256.BGI.
Procedure ThietLapDoHoa;
var gd,gm,Gr:integer;
Begin
Gd:= InstallUserDriver(SVGA256,NIL);
Gm:=2; {Mode 640x480x256}
InitGraph(gd,gm,`C:TPBGI`);
End;
2.2. Thoát khỏi chế độ đồ họa
Thủ tục CLOSEGRAPH;
Sau đây là cấu trúc chung của một chương trình đồ họa:.
Uses Crt,Graph;
Procedure ThietLapDoHoa;
var gd,gm,Gr:integer;
Begin
DetectGraph(Gd,Gm);
InitGraph(gd,gm,`C:TPBGI`);
Gr:=GraphResult;
If Gr<>GrOK then
Begin
writeln(`Loi Do hoa: `,GraphErrorMsg(Gr));
Halt(1);
End;
End;
BEGIN
ThietLapDoHoa;
. . .
CloseGraph;
END.
III. TỌA ĐỘ VÀ CON TRỎ TRÊN MÀN HÌNH ĐỒ HỌA
3.1. Hàm GetMaxX:Integer;
Cho tọa độ cột lớn nhất của màn hình.
3.2. Hàm GetMaxY:Integer;
Cho tọa độ dòng lớn nhất của màn hình.
3.3. Thủ tục MOVETO(x,y:Integer);
Di
 






Các ý kiến mới nhất