3. Các hàm đồ họa
b. Hàm vẽ đường, đoạn thẳng
– Vẽ một đoạn thẳng
• void line(int x1, int y1, int x2, int y2)
• x1, y1 là tọa độ điểm đầu
• x2, y2 là tọa độ điểm cuối
– Di chuyển đến tọa độ mới
• moveto(int x, int y);
Vẽ từ điểm hiện tại tới một điểm mới
• void lineto(int x, int y)
• x, y là tọa độ điểm đích3. Các hàm đồ họa
c. Hàm vẽ hình
– Hình chữ nhật
• void retangle(int left, int top, int right, int bottom)
– Hình đa giác: cho phép vẽ những đường gấp khúc
đi qua những cặp điểm x,y. Để vẽ hình này cần một
mảng 1 chiều các điểm có kiểu nguyên để thành
từng cặp tọa độ điểm.
• void drawpoly(int n, int *P) với n là số đỉnh, P là các cặp
điểm
– Hình tròn
• void circle(int x, int y, int radius)
• x, y là tâm, radius là bán kính3. Các hàm đồ họa
c. Hàm vẽ hình
– Hình elip
• void ellipse(int x, int y, int stangle, int endangle, int xradius,
int yradius)
• x, y là tâm
• stangle, endangle là góc bắt đầu và kết thúc
• xradius, yradius là bán kính theo x và bán kính theo y
– Hình hộp
• void bar3d(int left, int top, int right, int bottom, int depth, int
topflag)
• depth chiều sâu và topflag là xác định nếu hình có nắp
16 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 665 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Bài giảng Lập trình C++ - Chương 4: Đồ họa máy tính, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Chương 4: ĐỒ HỌA MÁY TÍNH
1. Đồ họa trên máy tính cá nhân
a. Giới thiệu đồ hoạ trên máy tính
b. Làm việc trong chế độ đồ họa
2. Lỗi đồ họa
3. Các hàm đồ họa
a. Hàm cho một điểm ảnh và kích thước màn hình
b. Hàm vẽ đường
c. Hàm vẽ hình
4. Tô màu
a. Đặt mẫu tô cho đường
b. Đặt mầu tô
c. Đặt mẫu tô cho hình
d. Tô màu
5. Văn bản trong đồ họa.
a. Các font chữ
b. Hiển thị văn bản trên màn hình
c. Căn lề
1. Đồ họa trên máy tính cá nhân
a.Giới thiệu đồ hoạ trên máy tính
Chế độ làm việc văn bản
Chế độ làm việc đồ họa
Ngày nay, ứng dụng của các chương trình sử
dụng đồ họa càng được mở rộng
Ngôn ngữ LTC đưa ra thư viện chứa các hàm
cơ bản làm việc ở chế độ đồ họa có tính tương
thích cao, có thể chạy trên nhiều cấu hình khác
nhau.
Một số bộ điều khiển của màn hình CGA (Color
Graphic Adapter), EGA (Enhanced Graphic
Adapter) VGA (Video Graphic Adapter)
1. Đồ họa trên máy tính cá nhân
b. Làm việc trong chế độ đồ họa
– Trong chế độ đồ họa, màn hình chia ra
nhiều điểm ảnh, tùy theo khả năng phần
cứng
– Để điều khiển màn hình với các bộ điều
khiển khác nhau như EGA, CGA, người ta
dùng các trình điều khiển. Các trình này
nằm trong tệp có phần mở rộng là BGI
– Các hàm đồ họa nằm trong thư viện
1. Đồ họa trên máy tính cá nhân
b.Làm việc trong chế độ đồ họa
–Khởi động đồ họa (chuyển từ văn bản sang đồ họa),
chúng ta dùng hàm:
•void initgraph(int *driver, int *mode, char *path)
–Trong đó:
• driver là số hiệu trình điều khiển đồ họa. Thường có giá trị mặc
định là 0 – DETECT
• mode là địa chỉ của số hiệu kiểu điều khiển đồ họa với các mức
độ phân giải màn hình, bảng màu. Với giá trị mode = 0 thì sẽ tự
tìm số hiệu thích hợp
• Path: là đường dẫn tới địa chỉ có chứa chương trình điều khiển
đồ họa
2. Lỗi đồ họa
• Khi chuyển sang làm việc ở chế độ đồ họa,
ngoài các lỗi từ cú pháp, chương trình còn có
thể phát sinh một số lỗi đồ họa khác.
• Để biết lỗi đồ họa, chúng ta dùng hàm int
graphresult(). Hàm này sẽ trả về mã của lỗi.
Tiếp theo, để biết được đó là lỗi gì ta dùng hàm
– char *grapherrormsg (int codeerror)
– Hàm này trả về các thông báo lỗi tương ứng.
2. Lỗi đồ họa
– Một số lỗi thông dụng như sau
0 grOK Không có lỗi
-1 grNoInitGraph Trình ĐH không được cài
-2 grNotDetected Không tìm được PC tương thích
-3 grFileNotFound Không tìm thấy tt divice driver
-7 grNoFloodMem Không đủ bộ nhớ để tô theo vết dầu
loang
. ..
3. Các hàm đồ họa
a. Hàm cho một điểm ảnh và kích thước màn
hình
– Hàm lấy màu của điểm ảnh
• unsigned getpixel (int x, int y)
• Giá trị màu trả về là một số không dấu
• x, y là tọa độ của màn hình
– Hàm vẽ điểm ảnh
• void putpixel (int x, int y, int color)
– Hàm lấy chiều rộng, chiều cao của màn hình
• int getmaxx(void): Lấy chiều rộng của màn hình
• int getmaxy(void): Lấy chiều cao của màn hình
3. Các hàm đồ họa
b. Hàm vẽ đường, đoạn thẳng
– Vẽ một đoạn thẳng
• void line(int x1, int y1, int x2, int y2)
• x1, y1 là tọa độ điểm đầu
• x2, y2 là tọa độ điểm cuối
– Di chuyển đến tọa độ mới
• moveto(int x, int y);
Vẽ từ điểm hiện tại tới một điểm mới
• void lineto(int x, int y)
• x, y là tọa độ điểm đích
3. Các hàm đồ họa
c. Hàm vẽ hình
– Hình chữ nhật
• void retangle(int left, int top, int right, int bottom)
– Hình đa giác: cho phép vẽ những đường gấp khúc
đi qua những cặp điểm x,y. Để vẽ hình này cần một
mảng 1 chiều các điểm có kiểu nguyên để thành
từng cặp tọa độ điểm.
• void drawpoly(int n, int *P) với n là số đỉnh, P là các cặp
điểm
– Hình tròn
• void circle(int x, int y, int radius)
• x, y là tâm, radius là bán kính
3. Các hàm đồ họa
c. Hàm vẽ hình
– Hình elip
• void ellipse(int x, int y, int stangle, int endangle, int xradius,
int yradius)
• x, y là tâm
• stangle, endangle là góc bắt đầu và kết thúc
• xradius, yradius là bán kính theo x và bán kính theo y
– Hình hộp
• void bar3d(int left, int top, int right, int bottom, int depth, int
topflag)
• depth chiều sâu và topflag là xác định nếu hình có nắp
4. Tô màu
a. Đặt mẫu tô cho đường
- Hàm void setlinestyle(style, patrern, thick)
- Trong đó:
- int style: kiểu của đường với các giá trị như sau:
0 SOLID_LINE Nét đậm
1 DOTTED_LINE Nét chấm
2 CENTER_LINE Ghạch chấm
3 DASHED_LINE Nét đứt
4 USERBIT_LINE Kiểu do người dùng
định nghĩa
4. Tô màu
a. Đặt mẫu tô cho đường
- Hàm void setlinestyle(style, pattern, thick)
- Trong đó:
- Pattern là mẫu tô khi style = 4
- Thick là độ dày và nó có giá trị như sau
1 NORM_WIDTH Dày 1 điểm
ảnh
3 THICK_WIDTH Dày 3 điểm
ảnh
4. Tô màu
b. Đặt màu tô
- Hàm đặt màu nền
- void setbkcolor (int color)
- Hàm để đặt mầu tô cho đường
- void setcolor (int color)
- Các giá trị màu và tên màu tùy thuộc vào kiểu
đồ họa CGA, EGA, VGA
- Giá trị màu có thể là hằng ký tự: BLACK,
RED, WHITE, YELLOW, EGA_BLACK,
EGA_BLUE, CGA_YELLOW
4. Tô màu
c. Đặt mẫu tô cho hình
- Hàm đặt mẫu tô cho hình
- void setfillstyle (pattern, color)
- Các giá trị mà pattern có thể nhận từ 0 tới 12 với các
cách tô khác nhau.
EMPTY_FILL 0 Màu nền
SOLID_FILL 1 Màu đặc
SLASH_FILL 4 Gạch chéo dày
HATCH_FILL 7 Sọc dừa thưa
WIDE_DOT_FILL 10 Chấm thưa
4. Tô màu
d. Tô màu
- Môt số phương pháp tô màu
- Tô theo vết dầu loang
- Tô theo phương pháp dựng rào
- Để tô màu, ta dùng hàm
- void floodfill(int x, int y, int border)
- Với x, y là tọa độ điểm, border là màu của đường
biên
5. Văn bản trong đồ họa
a. Các font chữ
- Hàm void settextstyle(int font, int direction, int charsize)
- font chứa font cần dùng, thường có giá trị là 0, tức là bộ font
cài sẵn
- direction là hướng có giá trị 0 tức là từ trái qua phải, 1 từ dưới
đáy lên
- charsize là kích thước font
b. Hiển thị văn bản trên màn hình
- Hàm cho phép hiển thị văn bản tại vị trí hiện tại:
void outtext(char *chuoi)
- Hàm cho phép hiển thị văn bản tại một vị trí xác định:
void outtextxy(int x, int y, char *chuoi)
c. Căn lề:
- Hàm void settextjustify (int horiz, int vert) cho phép căn lề với các
giá trị
- horiz căn theo chiều ngang với các giá trị 0 - trái, 1- giữa, 2 – phải
- vert căn theo chiều đứng với các giá trị 0 – đáy, 1- giữa, 2 – đỉnh
Các file đính kèm theo tài liệu này:
- bai_giang_lap_trinh_c_chuong_4_do_hoa_may_tinh.pdf