Khoa công nghệ thông tin bài giảng LẬp trình cơ BẢn biên soạn



tải về 1.56 Mb.
trang27/29
Chuyển đổi dữ liệu30.08.2016
Kích1.56 Mb.
#28834
1   ...   21   22   23   24   25   26   27   28   29

VI. Bài tập


Xem Bài 14 - Bài tập thực hành Làm việc với File và Thuật toán nâng cao

Bài 13 - ĐỒ HỌA


Nội dung bài học

I. Khởi động đồ hoạ

II. Các hàm đồ hoạ

1. Mẫu và màu

2. Vẽ và tô màu

3. Vẽ đường gấp khúc và đa giác

4. Vẽ điểm, miền

5. Hình chữ nhật

6. Cửa sổ (Viewport)

III. Xử lý văn bản trên màn hình đồ hoạ

1. Hiển thị văn bản trên màn hình đồ hoạ

2. Sử dụng các Fonts chữ

3. Bề rộng và chiều cao của kí tự

IV. Tóm tắt nội dung bài học

Việc hiển thị thông tin trên màn hình máy tính được thực hiện thông qua một vỉ mạch điều khiển màn hình. Khi màn hình ở chế độ văn bản (text mode) chúng ta có thể hiển thị thông tin lên màn hình bằng các lệnh: printf(), putch(), putchar(), … Thông tin mà chúng ta cần đưa ra màn hình được chuyển tới vỉ mạch điều khiển màn hình dưới dạng mã kí tự ASCII. Vỉ mạch nói trên có nhiệm vụ đưa kí tự đó theo mẫu định sẵn ra màn hình ở vị trí được xác định bởi chương trình của chúng ta.

Ngoài chế độ văn bản, màn hình còn có thể làm việc trong chế độ đồ hoạ. Khi màn hình ở chế độ đồ họa chúng ta có thể vẽ đồ thị, viết chữ to hoặc thể hiện các hình ảnh khác - những việc mà chúng ta không thể thực hiện được trong chế độ văn bản.

Các hàm và thủ tục đồ hoạ được khai báo trong file graphics.h.


I. Khởi động đồ hoạ


Chuyển chế độ màn hình về chế độ đồ họa cho phép thực hiện các lệnh vẻ đối tượng đồ họa.

Cú pháp: void initgraph(int *graphdriver,int graphmode,char *driverpath);

Trong đó:

+ driverpath: là xâu ký tự chỉ đường dẫn đến thư mục chứa các tập tin điều khiển đồ hoạ.

+ graphdriver: cho biết màn hình đồ hoạ sử dụng trong chương trình.

+ graphmode: cho biết mode đồ hoạ sử dụng trong chương trình.

Bảng 13-1



Các giá trị có thể của graphdriver và graphmode

Graphdriver

graphmode

Độ phân giải

CGA (1)

CGAC0 (0)

CGAC1 (1)

CGAC2 (2)

CGAC3 (3)

CGAHI (4)


320x200

320x200


320x200

320x200


640x200

MCGA (2)

MCGA0 (0)

MCGA1 (1)

MCGA2 (2)

MCGA3 (3)

MCGAMed (4)

MCGAHI (5)



320x200

320x200


320x200

320x200


640x200

640x480


EGA (3)

EGAL0 (0)

EGAHI (1)



640x200

640x350


EGA64 (4)

EGA64LO (0)

EGA64HI (1)



640x200

640x350


EGAMONO (5)

EGAMONOHi (0)

640x350

VGA (9)

VGALO (0)

VGAMED (1)

VGAHI (2)


640x200

640x350


640x480

HERCMONO (7)

HERCMONOHI

720x348

ATT400 (8)

ATT400C0 (0)

ATT400C1 (1)

ATT400C2 (2)

ATT400C3 (3)

ATT400MED (4)

ATT400HI (5)



320x200

320x200


320x200

320x200


640x400

640x400


PC3270 (10)

PC3270HI (0)

720x350

IBM8514 (6)

PC3270LO (0)

PC3270HI (1)



640x480 256 mầu

1024x768 256 mầu



Bảng trên cho thấy độ phân giải của màn hình phụ thuộc cả vào kiểu màn hình và mode. Ví dụ như trong màn hình EGA nếu dùng EGALO thì độ phân giải là 640x200 (Hàm getmaxx() cho giá trị cực đại của số điểm theo chiều ngang của màn hình. Hàm getmaxy() cho giá trị cực đại của số điểm theo chiều dọc của màn hình.).

Ví dụ: Khởi tạo đồ họa trong môi trường lập trình Turbo C. Giả sử máy tính có màn hình VGA, các tập tin đồ hoạ chứa trong thư mục C:\TC \BGI, khi đó ta khởi động chế độ đồ hoạ cho màn hình như sau:

#include

main()


{

int mh=VGA,mode=VGAHI; /*Hoặc mh=9,mode=2*/

initgraph(&mh,&mode,"C:\\TC\\BGI");

}

Nếu không biết chính xác kiểu màn hình đang sử dụng thì ta gán cho biến graphdriver bằng DETECT hay giá trị 0. Khi đó, kết quả của initgraph sẽ là:



Kiểu màn hình đang sử dụng được phát hiện, giá trị của nó được gán cho biến graphdriver.

Mode đồ hoạ ở độ phân giải cao nhất ứng với màn hành đang sử dụng cũng được phát hiện và giá trị của nó được gán cho biến graphmode.

Như vậy dùng hằng số DETECT chẳng những có thể khởi tạo được chế độ đồ hoạ cho màn hình hiện có theo mode có độ phân giải cao nhất mà còn giúp ta xác định kiểu màn hình đang sử dụng.

Ví dụ khởi tạo đồ họa trong môi trường DevC++.

Kiểm tra tính tồn tại của file tiêu đề thư viện graphics.h trong thư mục include, và thư viện libbgi.a lib.

Tạo một project trong cửa sổ option của project chọn tab Parameters chọn các file thư viện:

-lbgi

-lgdi32


-lcomdlg32

-luuid


-loleaut32

-lole32


Khởi tạo giống như trong Turbo C, với tham số cuối cùng là chuỗi trống.

#include

main()

{

int mh=VGA,mode=VGAHI; /*Hoặc mh=9,mode=2*/



initgraph(&mh,&mode," ");

}
Ví dụ: Chương trình dưới đây xác định kiểu màn hình đang sử dụng:

#include

#include

main()

{

int mh=0, mode;



initgraph(&mh,&mode,"C:\\TC\\BGI");

closegraph();

printf("\n Gia tri so cua man hinh la: %d",mh);

printf("\n Gia tri so mode do hoa la: %d",mode);


getch();

}

Nếu chuỗi dùng để xác định driverpath là chuỗi rỗng thì chương trình dịch sẽ tìm kiếm các file điều khiển đồ hoạ trên thư mục hiện thời và thư của của trình biên dịch.



Chú ý: Màn hình đồ họa máy tính được xác định tọa độ theo chiều từ trái sang phải và từ trên xuống dưới khác với tọa độ không gian decac.

Vì thế khi vẽ hình trên màn hình cần chuyển trục tọa độ về vị trí phù hợp, và đảo trục tọa độ theo tọa độ thực.




Каталог: files -> FileMonHoc
FileMonHoc -> NGÂn hàng câu hỏi lập trình cơ BẢn nhóm câu hỏI 2 ĐIỂM
FileMonHoc -> CHƯƠng 2 giới thiệu về LÝ thuyết số
FileMonHoc -> CÁc hệ MẬt khoá CÔng khai kháC
FileMonHoc -> BỘ MÔn duyệt chủ nhiệm Bộ môn
FileMonHoc -> Khoa công nghệ thông tin cộng hòa xã HỘi chủ nghĩa việt nam
FileMonHoc -> Chủ nhiệm Bộ môn Ngô Thành Long ĐỀ CƯƠng chi tiết bài giảNG
FileMonHoc -> Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠng chi tiết bài giảNG
FileMonHoc -> Khoa: CÔng nghệ thông tin cộng hòa xã HỘi chủ nghĩa việt nam
FileMonHoc -> MẬt mã khóA ĐỐi xứng lý thuyết cơ bản của Shannon
FileMonHoc -> Khoa cntt cộng hòa xã HỘi chủ nghĩa việt nam

tải về 1.56 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   21   22   23   24   25   26   27   28   29




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương