图像移动函数c语言 c++移动函数

C语言写移动图像

时延函数一般还是会用的,因为电脑的速度太快了,不用的话我们基本上看到的就是直接从起点到终点,但是图像移动的控制还是自己写,你可以写函数控制小球匀速下落或者自由落体下落。还有一点,图像移动说白了就是重绘,所以双缓存是必要的,不然画面会抖动闪烁,多线程也是必要的。

作为一家“创意+整合+营销”的成都网站建设机构,我们在业内良好的客户口碑。创新互联提供从前期的网站品牌分析策划、网站设计、成都网站制作、成都网站设计、创意表现、网页制作、系统开发以及后续网站营销运营等一系列服务,帮助企业打造创新的互联网品牌经营模式与有效的网络营销方法,创造更大的价值。

c语言图形自动移动

control()

{

p-x= rand()%60;

p-y= rand()%20;

gotoxy(p-x,p-y);

printf("%c",2);

Sleep(500);

system("cls");

gotoxy(p-x,p-y);

return control();

}

利用c语言怎样对bmp图像进行平移的操作?

位图平移没有这方面的库函数,必须自己来实现,下面是位图平移的参考代码:

#include "stdafx.h"

#includewindows.h

#includestdio.h

#includemath.h

int _tmain(int argc, _TCHAR* argv[])

{

int width;

int height;

RGBQUAD *pTableColor;

unsigned char *pBmpBuf1,*pBmpBuf2;

BITMAPFILEHEADER bfhead;

BITMAPINFOHEADER bihead;

//读出源图像的信息

FILE *fpr=fopen("E:\\picture\\dog.bmp","rb");

if(fpr==0)

return 0;

fread(bfhead,14,1,fpr);

fread(bihead,40,1,fpr);

width=bihead.biWidth;

height=bihead.biHeight;

int LineByte=(width*8/8+3)/4*4;

pTableColor=new RGBQUAD[256];

fread(pTableColor,sizeof(RGBQUAD),256,fpr);

pBmpBuf1=new unsigned char[LineByte*height];

fread(pBmpBuf1,LineByte*height,1,fpr);

fclose(fpr);

//将处理后的图像赋值为白色

pBmpBuf2=new unsigned char[LineByte*height];

for(int i=0;iheight;i++)

for(int j=0;jwidth;j++)

{

unsigned char *p;

p=(unsigned char*)(pBmpBuf2+LineByte*i+j);

(*p)=255;

}

//左右平移功能的实现

int t;

printf("请输入左平移或右平移的大小t(左移t0,右移t0):");

scanf("%d",t);

int k=abs(t);

printf("%d",k);

if(t0)

{

if(t=(-width))

{

for(int i=0;iheight;i++)

for(int j=0;j(width-k);j++)

{

unsigned char *p1,*p2;

p1=pBmpBuf1+LineByte*i+j+k;

p2=pBmpBuf2+LineByte*i+j;

(*p2)=(*p1);

}

}

}

else

{

if(t=width)

{

for(int i=0;iheight;i++)

for(int j=k;jwidth;j++)

{

unsigned char *p1,*p2;

p1=pBmpBuf1+LineByte*i+j-k;

p2=pBmpBuf2+LineByte*i+j;

(*p2)=(*p1);

}

}

}

//保存处理后的图像

FILE *fpw=fopen("dog.bmp","wb");

fwrite(bfhead,14,1,fpw);

fwrite(bihead,40,1,fpw);

fwrite(pTableColor,sizeof(RGBQUAD),256,fpw);

fwrite(pBmpBuf2,LineByte*height,1,fpw);

fclose(fpw);

return 0;

}

C语言 图形的移动

第一种方法:

#includegraphics.h

#includestdio.h

void main()

{

int gd=DETECT,gm,i,j,size;

void *buffer;

initgraph(gd,gm,"");

registerbgidriver(EGAVGA_driver);

setcolor(BROWN);

circle(100,100,5);

circle(80,100,5);

setfillstyle(1,RED);

bar(72,88,107,95);

setfillstyle(1,GREEN);

bar(80,80,100,88);

size=imagesize(71,79,108,106);

buffer=malloc(size);

getimage(71,79,108,106,buffer);

cleardevice();

putimage(1,1,buffer,COPY_PUT);

do

{

for(j=0;j=450;j+=90) /*改变90,可以改变下降的大小*/

{

cleardevice();

for(i=0;i=640;i++)

putimage(i+1,j+1,buffer,COPY_PUT);

cleardevice();

}

}while(!kbhit()); /*按任意键退出,不过要等全部走完一遍才会退出*/

closegraph();

}

第二种方法(用背景色覆盖):

#includestdio.h

#includegraphics.h

void main()

{

int gd=DETECT,gm,i;

registerbgidriver(EGAVGA_driver);

initgraph(gd,gm,"");

setfillstyle(1,GREEN);

bar(50,230,60,240);

while(!kbhit())

{

for(i=0;i30;i++)

{

delay(10000);

bar(50+(i+1)*10,230,60+(i+1)*10,240);

setfillstyle(1,0);

bar(50+i*10,230,60+i*10,240);

setfillstyle(1,GREEN);

}

cleardevice();

}

closegraph();

}


网站标题:图像移动函数c语言 c++移动函数
本文路径:http://ybzwz.com/article/ddcieeo.html