frozen.bluesky

New Member

Download miễn phí Giáo trình C++ - Chương 8: Đồ họa





Hàm settextjustify cho phép ấn định nơi hiển thị văn bản của
outtext theo quan hệ với vị trí hiện tại của con chạy hay của
outtextxy theo quan hệ với toạ độ (x,y).
Hàm này có dạng
void settextjustify(int horiz, int vert);
Tham số horiz có thể là một trong các hằng số sau:
LEFT_TEXT = 0 (Văn bản xuất hiện bên phải con chạy)



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

ầu đầu tiên trong bảng mầu thành xanh lơ nhạt. Các mầu khác
không bị ảnh hưởng.
Bảng 8-4. Các giá trị khả dĩ của color
Tên hằng Giá trị số Mầu hiển thị
BLACK 0 Đen
BLUE 1 Xanh da trời
GREEN 2 Xanh lá cây
CYAN 3 Xanh lơ
RED 4 Đỏ
MAGENTA 5 Tím
BROWN 6 Nâu
LIHGTGRAY 7 Xám nhạt
DARKGRAY 8 Xám sẫm
LIGHTBLUE 9 Xanh da trời nhạt
LIGHTGREEN 10 Xanh lá cây nhạt
LIGHTCYAN 11 Xanh lơ nhạt
LIGHTRED 12 Đỏ nhạt
LIGHTMAGENTA 13 Tím nhạt
YELLOW 14 Vàng
WHITE 15 Trắng
5. Để nhận giải mầu hiện hành ta dùng hàm
void getpalette (struct palettetype *palette);
452
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
ở đây palettetype là kiểu đã định nghĩa trước như sau:
#define MAXCOLORS 15
struct palettetype
{
unsigned char size;
unsigned char colors[MAXCOLORS+1];
};
ở đây: size là số lượng mầu trong palette, colors là mảng chứa mầu
với chỉ số mảng chạy từ 0 đến size - 1
Bảng 8-5. Các giá trị khả dĩ của pattern
Tên hằng Giá trị số Mô tả kiểu tô
EMPTY_FILL 0 Tô bằng mầu nền
SOLID_FILL 1 Tô bằng đường nét liền
LINE_FILL 2 Tô bằng - - -
LTSLASH_FILL 3 Tô bằng ///
SLASH_FILL 4 Tô bằng /// in đậm
BKSLASH_FILL 5 Tô bằng \\\ in đậm
LTBKSLASH_FILL 6 Tô bằng \\\
HATCH_FILL 7 Tô bằng đường gạch bóng nhạt
XHATCH_FILL 8 Tô bằng đường gạch bóng chữ thập
INTERLEAVE_FILL 9 Tô bằng đường đứt quãng
WIDE_DOT_FILL 10 Tô bằng dấu chấm thưa
CLOSE_DOT_FILL 11 Tô bằng dấu chấm mau
6. Hàm getcolor trả về mầu đã xác định trước đó bằng hàm setcolor.
7. Hàm getbkcolor trả về mầu đã xác định trước đó bằng hàm
setbkcolor.
8. Hàm getmaxcolor trả về mã mầu cực đại thuộc giải mầu hiện
đang có hiệu lực. Trên 256 K EGA, hàm getmaxcolor luôn cho giá
trị 15.
§ 5. Vẽ và tô mầu
Có thể chia các đường và hình thành bốn nhóm chính:
- Đường tròn và ellipse
- Đường gấp khúc và hình đa giác
- Đường thẳng
- Hình chữ nhật
A. Đường tròn và hình tròn
Nhóm này gồm cung tròn, đường tròn, cung ellipse và hình quạt.
1. Cung tròn. Để vẽ một cung tròn ta dùng hàm
void arc(int x, int y, int gd, int gc, int r);
ở đây:
(x, y) là tọa độ của tâm cung tròn,
r là bán kính
gd là góc đầu
gc là góc cuối
Chú ý: Trong tất cả các hàm dưới đây, góc tính theo độ và có giá
trị từ 0 đến 360.
2. Đường tròn. Để vẽ một đường tròn ta dùng hàm
void circle(int x, int y, int r);
ở đây:
(x, y) là tọa độ của tâm;
r là bán kính đường tròn.
3. Cung ellipse. Để vẽ một cung Ellipse ta dùng hàm
void ellipse(int x,int y,int gd,int gc,int xr,int yr);
454
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
ở đây:
(x, y) là tọa độ của tâm cung Ellipse
gd là góc đầu
gc là góc cuối
xr là bán trục ngang
yr là bán trục đứng.
4. Hình quạt. Để vẽ và tô màu một hình quạt ta dùng hàm
void pieslice(int x,int y,int gd,int gc,int r);
ở đây:
(x,y) là tọa độ tâm hình quạt
gd là góc đầu
gc là góc cuối
r là bán kính
Ví dụ 1. Chương trình dưới đây sẽ vẽ: một cung tròn ở góc phần
tư thứ nhất, một cung ellipse ở góc phần tư thứ ba, một đường tròn
và một hình quạt quét từ 90 đến 360 độ.
#include
main()
{
int mh, mode;
// Khởi động đồ họa, màn hình EGA, mode EGALO
mh=EGA;
mode=EGALO;
initgraph(&mh, &mode,"");
// Mầu nền Green, mầu đường vẽ
//White, mầu tô Red, kiểu tô SlashFill
setbkcolor (GREEN);
setcolor (WHITE);
setfillstyle (SLASH_FILL, RED);
// Vẽ: một cung tròn ở góc phần tư thứ nhất,
// một cung Ellipse ở góc phần tư thứ ba,
// một đường tròn, một quạt tròn
arc(160, 50, 0, 90, 45);
ellipse(480, 50, 180, 270, 150, 45);
circle(160, 150, 45);
pieslice(480, 150, 90, 360, 45);
// Kết thúc chế độ đồ họa
closegraph();
}
B. Đường gấp khúc và đa giác
5. Muốn vẽ một đường gấp khúc đi qua n điểm: (x1,y1), ... ,
(xn,yn) thì trước hết ta phải đưa các tọa độ vào một mảng a nào đó
kiểu int. Nói một cách chính xác hơn, cần gán x1 cho a[0], y1 cho
a[1], x2 cho a[2], y2 cho a[3],... Sau đó ta viết lời gọi hàm:
drawpoly(n, a);
Khi điểm cuối (xn, yn) trùng với điểm đầu (x1, y1) ta nhận được
một đường gấp khúc khép kín.
6. Giả sử a là mảng đã nói trong điểm 5, khi đó lời gọi hàm
fillpoly(n, a);
sẽ vẽ và tô mầu một đa giác có đỉnh là các điểm
(x1, y1), ... ,(xn, yn).
Ví dụ 2. Chương trình dưới đây sẽ vẽ một đường gấp khúc và hai
hình tam giác.
#include
// Xây dựng các mảng chứa tọa độ các đỉnh
int poly1[]={5,200,190,5,100,300};
456
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
int poly2[]={205,200,390,5,300,300};
int poly3[]={405,200,590,5,500,300,405,200};
main()
{
int mh=0, mode=0;
initgraph(&mh, &mode, "");
// Mầu nền CYAN, mầu đường vẽ
// YELLOW, mầu tô MAGENTA, mẫu tô SolidFill
setbkcolor (CYAN); Setcolor (YELLOW);
setfillstyle (SOLID_FILL, MAGENTA);
drawpoly (3, poly1); // Đường gấp khúc
fillpoly (3, poly2); // Hình đa giác
fillpoly(4, poly3); // Hình đa giác
closegraph();
}
C. Đường thẳng
7. Hàm
void line(int x1,int y1,int x2,int y2);
vẽ đường thẳng nối hai điểm (x1, y1) và (x2, y2) nhưng không làm
thay đổi vị trí con chạy.
8. Hàm
void lineto(int x,int y);
vẽ đường thẳng từ điểm hiện tại tới điểm (x, y) và chuyển con chạy
đến điểm (x, y).
9. Hàm
void linerel(int dx,int dy);
vẽ một đường thẳng từ vị trí hiện tại (x, y) của con chạy đến điểm
(x + dx,y + dy). Con chạy được di chuyển đến vị trí mới.
10. Hàm
void moveto(int x,int y);
sẽ di chuyển con chạy tới vị trí (x, y).
Ví dụ 3. Chương trình dưới đây tạo lên một đường gấp khúc bằng
các đoạn thẳng. Đường gấp khúc đi qua các đỉnh: (20, 20), (620, 20),
(620, 180), (20, 180) và (320, 100).
#include
main()
{
int mh=0, mode=0;
initgraph(&mh, &mode, "");
setbkcolor(GREEN);
setcolor(YELLOW);
moveto(320,100);
line(20,20,620,20);
linerel(-300,80);
lineto(620,180);
lineto(620,20);
closegraph();
}
D. Hình chữ nhật
11. Hàm
void rectangle(int x1,int y1,int x2,int y2);
sẽ vẽ một đường chữ nhật có các cạnh song song với các cạnh của
màn hình. Tọa độ đỉnh trên bên trái của hình chữ nhật là (x1,y1) và
điểm dưới bên phải là (x2,y2).
458
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
12. Hàm
void bar(int x1,int y1,int x2,int y2);
sẽ vẽ và tô mầu một hình chữ nhật. Các giá trị x1,y1,x2 và y2 có ý
nghĩa như đã nói trong điểm 11.
13. Hàm
void bar3d(int x1,int y1,int x2,int y2,int depth,int top);
sẽ vẽ một khối hộp chữ nhật, mặt ngoài của nó là hình chữ nhật xác
định bởi các tọa độ x1,y1,x2,y2 (như đã nói trong điểm 12). Hình
chữ nhật này được tô mầu. Tham số depth ấn định số điểm ảnh trên
bề sâu của khối 3 chiều. Tham số top có thể nhận trị 1 (TOPON) hay
0 (TOPOFF) và khối 3 chiều sẽ có nắp hay không nắp (xem hình vẽ).
TOPON TOPOFF
Ví dụ 4. Chương trình dưới đây sẽ vẽ một đường chữ nhật, một
hình chữ nhật và một khối hộp chữ nhật có nắp.
#include
main()
{
int mh=0, mode=0;
initgraph(&mh, &mode, "");
setbkcolor(GREEN);
setcolor(RED);
setfillstyle(CLOSE_DOT_FILL,YELLOW);
rectangle(5,5,300,160);
bar(5,175,300,340);
bar3d(320,100,500,340,100,1);
closegraph();
}
§ 6. Chọn kiểu đường
1. Hàm
void setlinestyle(int linestyle,int pattern,int thickness);
tác động đến nét vẽ của các thủ tục line, lineto, rectange, drawpoly,
circle,... Hàm này cho phép ta ấn định 3 yếu tố của đường thẳng là
dạng, bề dầy và mẫ...
 
Các chủ đề có liên quan khác
Tạo bởi Tiêu đề Blog Lượt trả lời Ngày
D CHƯƠNG TRÌNH GIÁO DỤC PHỔ THÔNG HOẠT ĐỘNG TRẢI NGHIỆM VÀ HOẠT ĐỘNG TRẢI NGHIỆM, HƯỚNG NGHIỆP Luận văn Sư phạm 0
D Quản lý hoạt động trải nghiệm của học sinh Trường THCS Thái Nguyên thành phố Nha Trang, tỉnh Khánh Hòa theo định hướng chương trình giáo dục phổ thông Luận văn Sư phạm 0
D Tổ chức bồi dưỡng năng lực phát triển chương trình dạy học tích hợp liên môn cho giáo viên THCS thị Luận văn Sư phạm 1
D Giáo án khối 2 sách luyện tập tin học theo phân phối chương trình của sở GDĐT TP.HCM Luận văn Sư phạm 0
T Xây dựng chương trình quản lý giáo viên trường THPT Hàng Hải Luận văn Kinh tế 0
T Chương trình an sinh giáo dục trong bảo hiểm thất nghiệp Luận văn Kinh tế 0
T Xây dựng chương trình quản lý giáo viên trường Mầm non Quán Toan Công nghệ thông tin 2
D Giáo án Hình học 12 - Chương III: Phương trình đường thẳng trong không gian Luận văn Sư phạm 0
D Sử dụng phần mềm ActivInspire giúp người học tìm hiểu kiến thức Chương 2, 3, 4 và 5 Giáo trình Thiên Luận văn Sư phạm 0
S Nghiên cứu cơ sở lý luận và thực tiễn để phát triển chương trình nghiệp vụ bổ trợ cho các giáo viên Luận văn Sư phạm 0

Các chủ đề có liên quan khác

Top