Hiệu ứng hoạt hình đồ họa

Một phần của tài liệu cùng nhau bước vào ngành lập trình từ điểm khởi đầu (Trang 191 - 199)

Hiệu ứng hoạt hình là hiệu ứng các đối tượng di chuyển trên màn hình. Bản chất của việc dịch chuyển trên màn hình là xóa vị trí cũ và vẽ đối tượng sang vị trí mới.

- Xóa vị trí cũ bằng cách vẽ đối tượng với màu của màu nền Ví dụ vẽ quả bóng di chuyển từ góc trên trái xuống góc phải dưới

#include "graphics.h" #include "stdio.h" #include "conio.h"

#include <dos.h>

int draw(int x, int y, int color) { setcolor(color); setbkcolor(color); setfillstyle(0,color); pieslice(x,y,0,360,10); return 0; } main() { int i,x,y; int dx=5; int dy=5; int md=0,mode; initgraph(&md,&mode,"C:\\TC\\BGI"); x=10; y=10; while(!kbhit()) { draw(x,y,15); delay(10); draw(x,y,0); x+=dx; y+=dy; if(y<10 || y>300) dy=-dy; if(x<10 || x>400) dx=-dx; } getch(); closegraph(); }

- Trong tình huống nền có hình ảnh khác việc vẽ lại màu nền sẽ xóa các đối tượng trên nền. Để giải quyết vấn đề này cần phải lưu trữ lại tình trạng màn hình trước khi vẽ, sau đó hồi phục lại màn hình để tiếp tục vẽ sang vị trí mới.

#include "graphics.h" #include "stdio.h" #include "conio.h" #include <dos.h> #define r 5 char *b;

int draw(int x, int y, int color) { setcolor(color); setbkcolor(color); setfillstyle(0,color); pieslice(x,y,0,360,r); return 0; } int main() { int i,x,y;

int dx=5; int dy=5; delay(10); int md=0,mode=0; initgraph(&md,&mode,"C:\\TC\\BGI"); b=(char*)malloc(imagesize(1,1,2*r+1,2*r+1)); if(b==NULL) { closegraph(); return -1; } line(0,0,getmaxx(),getmaxy()); line(0,getmaxy(),getmaxx(),0); x=10; y=10; while(!kbhit()) { getimage(x-r,y-r,x+r,y+r,b); draw(x,y,15); delay(10); putimage(x-r,y-r,b,COPY_PUT); x+=dx; y+=dy; if(y<10 || y>310) dy=-dy; if(x<10 || x>420) dx=-dx; } getch(); free(b); closegraph(); return 0; }

V. Tóm tắt 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. Bài tập

Bài 14 - Bài thực hành: LÀM VIỆC VỚI FILE VÀ ĐỒ HỌA

I. Thực hiện các ví dụ sau

1. Ví dụ 1

Yêu cầu:

Viết chương trình cho phép nhập vào một mảng, tìm phần tử lớn nhất

Soạn thảo văn bản chương trình như sau

#include<stdio.h> #include<conio.h> int a[100][100]; int n,m; int main() { int ma;

char *infile="vao.txt", *outfile="ra.txt"; int i, j;

FILE *f1;

f1=fopen(infile,"rt"); if(f1==NULL) {

printf("Loi mo file %s",infile); return -1; } fscanf(f1,"%d%d",&m,&n); for(i=0;i<m;i++) { for(j=0;j<n;j++) { fscanf(f1,"%d",&a[i][j]); } } //find max ma=a[0][0]; for(i=0;i<m;i++) { for(j=0;j<n;j++) { if(a[i][j]>ma) ma=a[i][j]; } } fclose(f1);

printf("Gia tri max:%d",ma); getch();

}

Thử nghiệm 1:

Nhập thử file vao.txt có nội dung 4 5 1 2 3 4 5 5 6 7 8 9 1 3 5 7 9 2 4 6 8 0 Thử nghiệm 2:

Nhập thử file vao.txt có nội dung 4 5

1 2 3 4 5 5 6 7 8 9 1 3 5 7 9

Đưa ra nhận xét, thay đổi đảm bảo hệ thống chạy tốt.

2. Ví dụ 2

Nhập lại ví dụ 2 trong hiệu ứng hoạt hình, thay đổi màu viên bóng, tạo thêm đường khung.

II. Bài tập tự làm

1. Viết chương trình quản lý một tập tin văn bản theo các yêu cầu: a- Nhập từ bàn phím nội dung một văn bản sau đó ghi vào đĩa. b- Đọc từ đĩa nội dung văn bản vừa nhập và in lên màn hình.

c- Đọc từ đĩa nội dung văn bản vừa nhập, in nội dung đó lên màn hình và cho phép nối thêm thông tin vào cuối tập tin đó.

2. Viết chương trình cho phép thống kê số lần xuất hiện của các ký tự là chữ (‘A’..’Z’,’a’..’z’) trong một tập tin văn bản.

3. Viết chương trình đếm số từ và số dòng trong một tập tin văn bản.

4. Viết chương trình nhập từ bàn phím và ghi vào 1 tập tin tên là DMHH.DAT với mỗi phần tử của tập tin là 1 cấu trúc bao gồm các trường: Ma (mã hàng: char[5]), Ten (Tên hàng: char[20]).Kết thúc việc nhập bằng cách gõ ENTER vào Ma. Ta sẽ dùng tập tin này để giải mã hàng hóa cho tập tin DSHH.DAT sẽ đề cập trong bài 5.

5. Viết chương trình cho phép nhập từ bàn phím và ghi vào 1 tập tin tên DSHH.Dat với mỗi phần tử của tập tin là một cấu trúc bao gồm các trường : mh (mã hàng: char[5]), sl (số lượng : int), dg ( đơn giá: float), st (Số tiền: float) theo yêu cầu:

- Trước tiên nhập mã hàng (mh), đưa mh so sánh với Ma trong tập tin DMHH.DAT đã được tạo ra bởi bài tập 1, nếu mh=ma thì in tên hàng ngay bên cạnh mã hàng.

- Nhập số lượng (sl). - Nhập đơn giá (dg).

- Tính số tiền = số lượng * đơn giá.

Kết thúc việc nhập bằng cách đánh ENTER vào mã hàng. Sau khi nhập xong yêu cầu in toàn bộ danh sách hàng hóa có sự giải mã về tên hàng theo mẫu sau:

STT MA

HANG

TEN HANG SO LG DON GIA SO TIEN

1 a0101 Duong cat trang 25 10000.00 250000.00 2 b0101 Sua co gai Ha Lan 10 40000.00 400000.00 6. Viết chương trình cho phép hiển thị đồng hồ với tương tự (đồng hồ kim) có hai kim giờ và phút. Sử dụng hàm gettime để lấy dữ liệu. Theo thời gian các kim chạy hiển thị đúng hiện trạng của đồng hồ máy tính.

7. Viết chương trình mô tả dao động của con lắc đơn.

Bài 15 - ÔN TẬP

Bài 1 - Tổng quan

I. Giới thiệu

II. Bài toán và việc giải bài toán trên máy tính III. Công cụ lập trình

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

Bài 2. Ngôn ngữ lập trình C/C++

I. Giới thiệu

II. Một số khái niệm cơ bản

III. Cấu trúc chương trình đơn giản trong C IV. Nhập/Xuất dữ liệu

V. Tóm tắt nội dung bài học VI. Bài tập

Bài 3 - Bài thực hành: Môi trường lập trình và các lệnh vào/ra Bài 4 - Điều khiển Chọn và Lặp

I. Điều khiển chọn II. Điều khiển lặp

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

Bài 5 - Bài thực hành: Các cấu trúc điều khiển Bài 6 - Mảng, Con trỏ và xâu ký tự

I. Mảng II. Con trỏ III. Xâu ký tự

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

Bài 7 - Bài thực hành: Mảng, Con trỏ và Xâu ký tự Bài 8 - Cấu trúc dữ liệu do người dùng tự định nghĩa

I. Cấu trúc dữ liệu do người dùng tự định nghĩa II. Kiểu ngăn xếp

III. Kiểu hàng đợi

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

Bài 9 - Bài thực hành: Cấu trúc dữ liệu do người dùng tự định nghĩa Bài 10 - Hàm

I. Khái niệm

II. Xây dựng một hàm III. Truyền tham số cho hàm IV. Kỹ thuật đệ qui

V. Tóm tắt nội dung bài học VI. Bài tập

Bài 11 - Bài thực hành: Hàm Bài 12 - Làm việc với File

I. Một số khái niêm

II. Các thao tác trên tập tin III. Truy cập tập tin văn bản IV. Truy cập tập tin nhị phân V. Tóm tắt nội dung bài học VI. Bài tập

Bài 13 - Đồ Họa

I. Khởi động đồ hoạ II. Các hàm đồ hoạ

III. Xử lý văn bản trên màn hình đồ hoạ IV. Tóm tắt nội dung bài học

V. Bài tập

Một phần của tài liệu cùng nhau bước vào ngành lập trình từ điểm khởi đầu (Trang 191 - 199)