圖像移動函數(shù)c語言 c++移動函數(shù)

C語言寫移動圖像

時延函數(shù)一般還是會用的,因為電腦的速度太快了,不用的話我們基本上看到的就是直接從起點到終點,但是圖像移動的控制還是自己寫,你可以寫函數(shù)控制小球勻速下落或者自由落體下落。還有一點,圖像移動說白了就是重繪,所以雙緩存是必要的,不然畫面會抖動閃爍,多線程也是必要的。

作為一家“創(chuàng)意+整合+營銷”的成都網(wǎng)站建設(shè)機構(gòu),我們在業(yè)內(nèi)良好的客戶口碑。創(chuàng)新互聯(lián)提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計、成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、創(chuàng)意表現(xiàn)、網(wǎng)頁制作、系統(tǒng)開發(fā)以及后續(xù)網(wǎng)站營銷運營等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營模式與有效的網(wǎng)絡(luò)營銷方法,創(chuàng)造更大的價值。

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圖像進行平移的操作?

位圖平移沒有這方面的庫函數(shù),必須自己來實現(xiàn),下面是位圖平移的參考代碼:

#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;

}

//左右平移功能的實現(xiàn)

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();

}

名稱欄目:圖像移動函數(shù)c語言 c++移動函數(shù)
轉(zhuǎn)載來于:http://muchs.cn/article40/ddcieeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、移動網(wǎng)站建設(shè)、搜索引擎優(yōu)化、網(wǎng)站設(shè)計、App設(shè)計、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站