PHƯƠNG PHÁP TẠO HÌNH CHUYỂN ĐỘNG VÀ THỰC ĐƠN Nhóm SV thực hiện: Dương Thị HảiTrần Thị Thu Hiền... I/ Phương pháp tạo hình chuyển động và thực đơnII/ Chương trình minh hoạ... 1/ Vẽ hình:C
Trang 1PHƯƠNG PHÁP TẠO HÌNH CHUYỂN ĐỘNG VÀ
THỰC ĐƠN
Nhóm SV thực hiện:
Dương Thị HảiTrần Thị Thu Hiền
Trang 2I/ Phương pháp tạo hình chuyển động và thực đơn
II/ Chương trình minh hoạ
Trang 41/ Vẽ hình:
Cách 1: Vẽ lại một ảnh nhưng tại các
vị trí khác nhauCách 2: Lưu ảnh vào một vùng nhớ rồi đưa ảnh ra màn hình tại các vị trí khác nhau
Trang 5
2/ Xoá ảnh
Cách 1: Dùng hàm cleardevice
Cách 2: Dùng hàm putimage (mode XOR_PUT) để xếp chồng lên ảnh cần xoá
Cách 3: Lưu trạng thái màn hình vào một chỗ nào đó Vẽ một hình ảnh Đưa trạng thái cũ màn hình ra xếp
đè lên ảnh vừa vẽ
Trang 7Chương trình sau sẽ minh hoạ cho phương pháp tạo hình chuyển động
và thực đơn bằng việc sử dụng các phím mũi tên lên, xuống, trái, phải trên bàn phím
II/ Chương trình minh hoạ
Trang 8Chương trình vẽ hình sao vừa quay vừa chuyển động
Trang 10
if ((x>=0)&&(x<200)&&(y>=0)&&(y<320))
*((char far*) 0xA0000000 + 320*x+y)=c;
}void dt1(int x1, int y1, int x2, int y2, int color)
{int d, ax, ay, sx, sy, dx, dy;
Trang 12point(x1, y1, color);
if (ax > ay) {
d = ay-(ax >> 1);
while (x1 != x2) {
if (d >= 0) {y1 = y1 + sy;
d = d - ax;
}x1 = x1 + sx;
d = d + ay;
Trang 13point(x1, y1, color);} //while
} else {
d = ax-(ay >> 1);
while (y1 != y2) {
if (d >= 0) {x1 = x1 + sx;
d = d - ay;
}
Trang 15void ve_hinhsao(double afa,int xo,int yo,int xc,int yc,int r,int c){
Trang 16{a[i]=ceil(r*cos(afa+(72*3.14*i)/180))+xc;b[i]=ceil(r*sin(afa+(72*3.14*i)/180))+yc;} dt1(xo,yo,a[2],b[2],c);
Trang 17void sao_dc(double a,int xo,int yo,int xc,int yc,int r,int c)
Trang 19yo=ceil(r*sin(a+i*3.14/180))+yc;
ve_hinhsao(a+i*3.14/180,xo,yo,xc,yc,r,c);delay(50);
ve_hinhsao(a+i*3.14/180,xo,yo,xc,yc,r,0);
Trang 20if (kbhit()) {
if ((c1=getch())==0) {
c2 = getch();
if (c2==77){
Trang 21ve_hinhsao(a,xo,yo,xc,yc,r,0);
yc++;
}
Trang 22else if (c2==75)
{
ve_hinhsao(a,xo,yo,xc,yc,r,c);ve_hinhsao(a,xo,yo,xc,yc,r,0);yc ;
}
Trang 23}else if (c2==80){
ve_hinhsao(a,xo,yo,xc,yc,r,c);ve_hinhsao(a,xo,yo,xc,yc,r,0);xc++;
}
Trang 24else if (c2==72)
{
ve_hinhsao(a,xo,yo,xc,yc,r,c);ve_hinhsao(a,xo,yo,xc,yc,r,0);xc ;
}
Trang 25}}}void main(){
int lc,xo,yo,xc,yc,c,r;
xc=90;yc=90;c=11;r=50;
Trang 26mode(19);
int a=0;
sao_dc(a,xo,yo,xc,yc,r,c);getch();
mode(3);
}
Trang 27THE END