當前位置:編程學習大全網 - 源碼下載 - 網絡私人桌面源代碼

網絡私人桌面源代碼

/*氣泡屏幕保護程序*/

# include & ltstdio.h & gt

# include & ltgraphics.h & gt

# include & ltmath.h & gt

# include & ltstdlib.h & gt

# include & ltdos.h & gt

# include & lttime.h & gt

# include & ltbios.h & gt

#定義最大值12

typedef結構

{

浮點x,y;

浮點vx,vy;

int顏色;

}球;

void main()

{

int gd=DETECT,gm,I,j,k,t;

ball ba[MAX];

浮點dt = 7e-2;

int issuit(ball *,int I);

void hitpro(ball*,int,int);

registerbgidriver(EGA VGA _ driver);

init graph(& amp;gd,& ampgm,“”;

srand(time(NULL));

for(I = 0;我& ltMAXi++)

{

巴[我]。x =(rand()% 5+1)* 116;

巴[我]。y =(rand()% 3+1)* 116;

如果(!issuit(ba,I)){ I-;繼續;}

巴[我]。VX = rand()% 50-25;

巴[我]。vy = rand()% 50-25;

巴[我]。color = I+1;

}

巴[6]。color = 14;

巴[7]。color = 13;

而(!bioskey(1))

{

for(I = 0;我& ltMAXi++)

{

巴[我]。x+=ba[i]。vx * dt

巴[我]。y+=ba[i]。vy * dt

}

for(j = 0;j & ltMAXj++)

{

for(k = j+1;k & ltMAXk++) hitpro(ba,j,k);

if (ba[j].x & lt51 | |巴[j].x & gt589)巴[j]。vx=-ba[j]。VX;

if (ba[j].y & lt51 | |巴[j].y & gt429)巴[j]。vy=-ba[j]。vy;

}

clear device();

for(I = 0;我& lt4 *最大;i++)

{

t = i % MAX

setcolor(ba[t].顏色);

圓(ba[t]。x,ba[t]。y,50);

}

延遲(2000年);

}

closegraph();

}

int issuit( ball *b1,int n)

{

int i,a,b,c,d;

a=b1[n]。x;

b=b1[n]。y;

for(I = 0;我& ltn;i++)

{

c=b1[i]。x;

d=b1[i]。y;

if(a = = c & amp;& ampb==d)返回0;

}

返回1;

}

void hitpro(ball *ba,int j,int k)

{

float r,a,b,c,d,tx1,tx2,ty1,ty2,tem

tem=(ba[k].x-ba[j]。x)*(ba[k]。x-ba[j]。x)+(ba[k]。y-ba[j]。y)*(ba[k]。y-ba[j]。y);

r = sqrt(tem);

if(r & gt;102.0)返回;

a=(ba[k]。x-ba[j]。x)/r;

b=(ba[k]。y-ba[j]。y)/r;

c =-b;

d = a;

r = sqrt(c * c+d * d);

c/= r;

d/= r;

tx1=ba[j]。vx*a+ba[j]。vy * b;

ty1=ba[j]。vx*c+ba[j]。vy * d;

tx2=ba[k]。vx*a+ba[k]。vy * b;

ty2=ba[k]。vx*c+ba[k]。vy * d;

巴[j]。VX = tx2 * a+ty 1 * c;

巴[j]。vy = tx2 * b+ty 1 * d;

巴[k]。VX = tx 1 * a+ty2 * c;

巴[k]。vy = tx 1 * b+ty2 * d;

}

  • 上一篇:Winmine源代碼
  • 下一篇:如何通過mat從java內存dump中找到緩存對象中的所有字符串
  • copyright 2024編程學習大全網