Created
January 7, 2014 11:42
-
-
Save Codeplaza/8298169 to your computer and use it in GitHub Desktop.
Eclipse Animation, C with Graphics
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* CREATED BY, JUBIN JOSE, Watch music video created | |
with this code here: https://www.youtube.com/watch?feature=player_detailpage&v=hOQuOEuVV5o | |
Read Full details about this Project: http://iamjbn.blogspot.in/2012/05/eclipse-graphics-animation-music-video.html | |
Get me on facebook: https://facebook.com/PixVfx | |
Get me on twitter: https://twitter.com/IamJubin | |
*/ | |
#include <windows.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <conio.h> | |
#include <process.h> | |
#include <iostream> | |
#include <math.h> | |
#include <graphics.h> | |
using namespace std; | |
int path[600],a[1420][2],cas=1,s=1416,ar[1000][2],maxx,maxy,s3=0,color=8,change=0,dl=100,ex=0; | |
void bezierCurve(int p1x,int p1y,int p2x,int p2y,int p3x,int p3y); | |
void Wiggle(int x1,int y1,int x2,int y2,double d); | |
void drawcCircle(int xc,int yc,int r); | |
int circularArray(int p1,int p2); | |
void boxer(int spx, int spy, int length, int breadth, int skip, int option); | |
void grains(int thickness); | |
int dist(int a,int b); | |
//******************************SCENES ************************************************ | |
void sound_thread(void *param1); | |
void scene3(); //SCENE 3 | |
void scene3thread1(void *param1); | |
void scene3thread2(void *param2); | |
void scene3thread3(void *param3); | |
void scene3thread4(void *param4); | |
void scene3thread5(void *param5); | |
void scene3thread6(void *param6); | |
void scene3thread7(void *param7); | |
void scene3thread8(void *param8); | |
void scene3thread9(void *param9); | |
void scene4(); //SCENE 4 | |
void scene4thread1(void *param1); | |
void scene4thread2(void *param2); | |
void scene4thread3(void *param3); | |
void scene4thread4(void *param4); | |
void scene4thread5(void *param5); | |
void scene4thread6(void *param6); | |
void scene4thread7(void *param7); | |
void scene5(); //SCENE 5 | |
void scene5thread1(void *param1); | |
void scene5thread2(void *param2); | |
void scene5thread3(void *param3); | |
void scene6(); //SCENE 6 | |
void scene7(); //SCENE 7 | |
void scene8(); //SCENE 8 | |
void scene9(); //SCENE 9 | |
void scene10(); //SCENE 10 | |
void scene10thread1(void *param1); | |
void scene10thread2(void *param2); | |
void scene10thread3(void *param3); | |
void scene10thread4(void *param4); | |
void scene10thread5(void *param5); | |
void scene10thread6(void *param6); | |
void scene10thread7(void *param7); | |
void scene10thread8(void *param8); | |
void scene11(); //SCENE 11 | |
void scene12(); //SCENE 12 | |
void scene12thread1(void *param1); | |
void scene12thread2(void *param2); | |
void scene12thread3(void *param3); | |
void scene12thread4(void *param4); | |
void scene12thread5(void *param5); | |
void scene12thread6(void *param6); | |
void scene12thread7(void *param7); | |
void scene12thread8(void *param8); | |
void scene12thread9(void *param9); | |
void scene12thread10(void *param10); | |
void scene14(); //SCENE 14 | |
//DON't CARE ITS REPEATING | |
void bezierCurve1(int p1x,int p1y,int p2x,int p2y,int p3x,int p3y); | |
void Wiggle1(int x1,int y1,int x2,int y2,double d); | |
void boxer1(int spx, int spy, int length, int breadth, int skip, int option); | |
/************************************************ MAIN FUNCTION *****************************************************/ | |
int main( ) | |
{ int i;double w; | |
initwindow( 700 ,700 , "WinBGIm" ); | |
int val; | |
HANDLE handle; | |
// bezierCurve(0,100,500,200,0,300); | |
// for(i=0;i<500;i+=2) | |
// {w=rand()%100; | |
// Wiggle(i,i,i+2,i+2,5+w);delay(0); | |
// } | |
maxx=getmaxx(); | |
maxy=getmaxy(); | |
handle = (HANDLE) _beginthread( sound_thread,0,&val); | |
drawcCircle(maxx/2,maxy/2,250); | |
delay(1000); | |
cleardevice(); | |
scene3(); | |
// scene3(); | |
if(s3==1) | |
scene4(); | |
setfillstyle(1,WHITE); | |
grains(6); | |
setcolor(BLACK); | |
scene5(); | |
scene6(); | |
scene7(); | |
scene8(); | |
setcolor(WHITE); | |
scene9(); | |
scene10(); | |
scene11(); | |
scene12(); | |
scene14(); | |
getch(); | |
closegraph( ); | |
return( 0 ); | |
} | |
void sound_thread(void *param1) //****************************** PLAY SOUND THREAD ******************************************************** | |
{ | |
int h=*((int*)param1); | |
PlaySound("C:/Users/jubin/Desktop/1.wav",NULL,SND_FILENAME); | |
} | |
/* **************************************************************************************************************************************************************** | |
********************** SCENE 3 ********************************************************************************************** */ | |
void scene3() | |
{ int j=0,next=0,w=0,x; | |
double decay=0; | |
int i; | |
int val,val1,innr=20; | |
HANDLE handle; | |
val =71; | |
val1=100; | |
//FIRST ANIMATION STARTS: | |
for(x=s/4;x>j;x-=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
w=rand()%50; | |
decay+=1; | |
j=5; | |
next=x-j; | |
//if(x+2>568) | |
//color=7; | |
Wiggle(circularArray(x,0),circularArray(x,1),circularArray(next,0),circularArray(next,1),w-decay); | |
delay(50); | |
} | |
//SECOND ANIMATION STARTS HERE: | |
for(x=s/4;x<s/2;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
//w=rand()%50; | |
decay=0; | |
w=rand()%50; | |
decay+=1; | |
j=5; | |
next=x+j; | |
//if(x==3*s/8) | |
Wiggle(a[x%s][0],a[x%s][1],a[next%s][0],a[next%s][1],w-decay); | |
delay(30); | |
} | |
//THIRD ANIMATION STARTS HERE: | |
handle = (HANDLE) _beginthread( scene3thread1,0,&val); // create thread | |
handle = (HANDLE) _beginthread( scene3thread2,0,&val1); | |
WaitForSingleObject(handle,INFINITE); | |
handle = (HANDLE) _beginthread( scene3thread3,0,&val1); | |
// | |
handle = (HANDLE) _beginthread( scene3thread5,0,&innr); | |
handle = (HANDLE) _beginthread( scene3thread6,0,&innr); | |
handle = (HANDLE) _beginthread( scene3thread9,0,&innr); | |
handle = (HANDLE) _beginthread( scene3thread4,0,&val1); | |
WaitForSingleObject(handle,INFINITE); | |
handle = (HANDLE) _beginthread( scene3thread7,0,&innr); | |
WaitForSingleObject(handle,INFINITE); | |
s3=1; | |
// handle = (HANDLE) _beginthread( scene3thread8,0,&innr); | |
} | |
//THREAD DEFENITIONS: | |
void scene3thread1(void *param1) //****************************** THREAD 1 ******************************************************** | |
{ | |
int h=*((int*)param1); | |
int x=0,j=0,next=0,w; | |
for(x=3*s/8;x>=j;x-=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=5; | |
next=x-j; | |
//if(x+2>568) | |
w=rand()%50; | |
Wiggle(a[x%s][0],a[x%s][1],a[next%s][0],a[next%s][1],w); | |
delay(50); | |
} | |
//setcolor(RED); | |
for(x=s/8;x<s/2+100;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=8; | |
next=x+j; | |
//if(x+2>568) | |
w=rand()%100; | |
Wiggle(a[x%s][0],a[x%s][1],a[next%s][0],a[next%s][1],w); | |
delay(20); | |
} | |
} | |
void scene3thread2(void *param2) //******************************* THREAD 2 ********************************************** | |
{ | |
int h=*((int*)param2); | |
int x,j=0,next,w; | |
for(x=s/4;x<s/2;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=8; | |
next=x+j; | |
//if(x+2>568) | |
w=rand()%100; | |
Wiggle(a[x%s][0],a[x%s][1],a[next%s][0],a[next%s][1],w); | |
delay(20); | |
} | |
j=5; | |
for(x=s/4;;x-=j) | |
{ | |
next=x-j; | |
w=rand()%80; | |
Wiggle(circularArray(x,0),circularArray(x,1),circularArray(next,0),circularArray(next,1),w); | |
delay(20); | |
if(next<=x/2-10) | |
break; | |
} | |
} | |
void scene3thread3(void *param3) //******************************* THREAD 3 ********************************************** | |
{ | |
int h=*((int*)param3); | |
int x,j=0,next,w;float k=0; | |
for(x=0;x<s/2-10;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=10; | |
next=x+j; | |
//if(x+2>568) | |
w=rand()%100; | |
Wiggle(a[x][0]-k,a[x][1],a[next][0]-k,a[next][1],w); | |
k+=.4; | |
delay(50); | |
}k=0; | |
for(x=0;x<s/2-100;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=10; | |
next=x+j; | |
//if(x+2>568) | |
w=rand()%200; | |
Wiggle(a[x][0]-k,a[x][1],a[next][0]-k,a[next][1],w); | |
k+=1; | |
delay(20); | |
} | |
k=0; | |
for(x=100;x<s/2;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=15; | |
next=x-j; | |
//if(x+2>568) | |
w=rand()%40; | |
Wiggle(a[x][0]-k,a[x][1],a[next][0]-k,a[next][1],w); | |
k++; | |
delay(20); | |
} | |
boxer(a[14][0],a[14][1]-10, 400, 250, 15, 1); | |
delay(100); | |
boxer(a[800][0]+200,a[800][1]+10, 350, 100, 10, 2); | |
} | |
void scene3thread4(void *param4) //******************************* THREAD 4 ********************************************** | |
{ | |
int h=*((int*)param4); | |
int x,j=0,next,w;float k=0; | |
for(x=s/4+200;x>j;x-=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=6; | |
next=x-j; | |
//if(x+2>568) | |
w=rand()%50; | |
Wiggle(circularArray(x,0)-k,circularArray(x,1),circularArray(next,0)-k,circularArray(next,1),w); | |
k+=.4; | |
delay(50); | |
}k=0; | |
for(x=s/4;x>j;x-=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=10; | |
next=x-j; | |
//if(x+2>568) | |
w=rand()%200; | |
Wiggle(a[x][0]-k,a[x][1],a[next][0]-k,a[next][1],w); | |
k+=.1; | |
delay(20); | |
} | |
k=0; | |
for(x=s/4;x<s/2;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=5; | |
next=x+j; | |
//if(x+2>568) | |
w=rand()%40; | |
Wiggle(a[x][0]-k,a[x][1],a[next][0]-k,a[next][1],w); | |
k++; | |
delay(20); | |
}j=0; | |
boxer(a[14][0],a[14][1]-10, 400, 250, 15, 1); | |
boxer(a[500][0],a[500][1]+200, 350, 150, 10, 4); | |
} | |
void scene3thread5(void *param5) //******************************* THREAD 5 ********************************************** | |
{ | |
int incr=*((int*)param5); | |
int x,j=0,next,w,l=0,m=0;float k=incr,shift=1; | |
while(m<10) | |
{ | |
for(x=1+l;x<=s/2-l;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=10; | |
next=x-j; | |
//if(x+2>568) | |
w=rand()%100; | |
Wiggle(circularArray(x,0)-k-shift,circularArray(x,1),circularArray(next,0)-k-shift,circularArray(next,1),w); | |
k+=.1; | |
if(circularArray(next,1)<=maxy/2&&circularArray(next,1)>=maxy/4) | |
shift+=2; | |
if(circularArray(next,1)>=maxy/2&&circularArray(next,1)<=3*maxy/4) | |
shift-=2; | |
delay(30);//incr++; | |
}l+=17;j++;m++;}} | |
void scene3thread6(void *param6) //******************************* THREAD 6 ********************************************** | |
{ | |
int incr=*((int*)param6); | |
int x,j=0,next,w,l=0,m=0;float k=incr; | |
// delay(10000); | |
while(m<10) | |
{ | |
for(x=s/2-l;x>=l+j;x-=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=10; | |
next=x-j; | |
//if(x+2>568) | |
w=rand()%100; | |
Wiggle(circularArray(x,0)-k,circularArray(x,1),circularArray(next,0)-k,circularArray(next,1),w); | |
k+=.1; | |
delay(30);//incr++; | |
}l+=17;j--;m++;}} | |
void scene3thread7(void *param7) //******************************* THREAD 7 ********************************************** | |
{ | |
int incr=*((int*)param7);int j=100,k=0,yoyo=0; | |
while(yoyo<=50) | |
{ | |
//boxer(a[177][0]+j,a[177][1]+j+100, 400, 800, 15, 3); | |
delay(100); | |
boxer(a[531][0]+100-j,a[531][1]-100+j, 400, 150+j, 10, 4); | |
boxer(a[14][0]-k*3,a[14][1]-10, 500, 450, 15, 1); | |
boxer(a[500][0]+k,a[500][1]+200-k, 350, 350+k, 10, 4); | |
boxer(a[531][0]-j,a[531][1]+100, 500, 150+j*2, 10, 4); | |
//boxer(circularArray(177,0)+2*j,circularArray(177,1)+k, 400, 250, 15, 4); | |
j+=5;k+=2; | |
//bgiout<<yoyo; | |
//outstreamxy(0,15); | |
yoyo++; | |
} | |
} | |
void scene3thread8(void *param8) //******************************* THREAD 8 ********************************************** | |
{ | |
int incr=*((int*)param8);int j=0,k=0; | |
while(!kbhit()) | |
{ | |
boxer(a[708][0]-j,a[708][1], 100, 100, 15, 4); | |
//boxer(circularArray(177,0)+2*j,circularArray(177,1)+k, 400, 250, 15, 4); | |
j+=5; | |
} | |
} | |
void scene3thread9(void *param9) //******************************* THREAD 9 ********************************************** | |
{ | |
int incr=*((int*)param9);int j=100,k=0,x,next,w,innr; | |
//HANDLE handle; | |
while(change!=2) | |
{ for(x=s/2;x<s/2+100*k&&change!=2;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=5; | |
next=x+j; | |
//if(x+2>568) | |
w=rand()%50; | |
Wiggle(circularArray(x,0),circularArray(x,1),circularArray(next,0),circularArray(next,1),w); | |
delay(70);//incr++; | |
} | |
for(x=s-1;x>s-100*k&&change!=2;x-=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=5; | |
next=x-j; | |
//if(x+2>568) | |
w=rand()%50; | |
Wiggle(circularArray(x,0),circularArray(x,1),circularArray(next,0),circularArray(next,1),w); | |
delay(70);//incr++; | |
} k++;} | |
//handle = (HANDLE) _beginthread( scene3thread8,0,&innr); | |
} | |
/* **************************************************************************************************************************************************************** | |
********************************************************** SCENE 4 ********************************************************************************************** */ | |
void scene4() | |
{ | |
int val,val1,rv; | |
HANDLE handle; | |
handle = (HANDLE) _beginthread( scene4thread5,0,&val); | |
// handle = (HANDLE) _beginthread( scene4thread6,0,&val); | |
for(int i=0;change!=2;i++) | |
{ val =5+rand()%20; | |
rv=rand()%4; | |
switch(rv+1) | |
{case 1: | |
handle = (HANDLE) _beginthread( scene4thread4,0,&val); | |
handle = (HANDLE) _beginthread( scene4thread1,0,&val);break; | |
case 2: | |
handle = (HANDLE) _beginthread( scene4thread3,0,&val); | |
handle = (HANDLE) _beginthread( scene4thread2,0,&val);break; | |
} | |
val1 =5+rand()%10; | |
rv=rand()%4; | |
switch(rv+1) | |
{case 2: | |
handle = (HANDLE) _beginthread( scene4thread1,0,&val); | |
handle = (HANDLE) _beginthread( scene4thread4,0,&val); | |
break; | |
case 1: | |
handle = (HANDLE) _beginthread( scene4thread2,0,&val); | |
handle = (HANDLE) _beginthread( scene4thread3,0,&val); | |
break; | |
} | |
WaitForSingleObject(handle,INFINITE); | |
} | |
//cleardevice(); | |
} | |
void scene4thread1(void *param1) //****************************** THREAD 1 ******************************************************** | |
{ | |
int h=*((int*)param1); | |
int next=0,w,x,y,i; | |
for(i=s/4;i>s/8;) // to the right from bottom | |
{ | |
next=i-h; | |
w=rand()%50; | |
Wiggle(a[i][0],a[i][1],a[next][0],a[next][1],w); | |
i=next; | |
delay(50); | |
} | |
x=a[next][0]; | |
y=a[next][1]; | |
while((x<maxx)&&(y>0)) | |
{ | |
w=rand()%50; | |
Wiggle(x,y,x+h,y-h,w); | |
x=x+h; | |
y=y-h; | |
delay(20); | |
// line(a[354][0],a[354][1],maxx,0); | |
// line(a[885][0],a[885][1],0,maxy); | |
} | |
for(i=3*s/4;i>s/2+s/8;) // to the left from top | |
{ | |
next=i-h; | |
w=rand()%50; | |
Wiggle(a[i][0],a[i][1],a[next][0],a[next][1],w); | |
i=next; | |
delay(20); | |
} | |
x=a[next][0]; | |
y=a[next][1]; | |
while((x>0)&&(y<maxy)) | |
{ | |
w=rand()%40; | |
Wiggle(x,y,x-h,y+h,w); | |
x=x-h; | |
y=y+h; | |
delay(20); | |
// line(a[354][0],a[354][1],maxx,0); | |
// line(a[885][0],a[885][1],0,maxy); | |
} | |
} | |
void scene4thread2(void *param2) //****************************** THREAD 2 ******************************************************** | |
{ | |
int h=*((int*)param2); | |
int next=0,w,x,y,i; | |
for(i=0;i<s/8+1;) // to the right from top | |
{ | |
next=i+h; | |
w=rand()%50; | |
Wiggle(a[i][0],a[i][1],a[next][0],a[next][1],w); | |
i=next; | |
delay(20); | |
} | |
x=a[next][0]; | |
y=a[next][1]; | |
while((x<maxx)&&(y>0)) | |
{ | |
w=rand()%50; | |
Wiggle(x,y,x+h,y-h,w); | |
x=x+h; | |
y=y-h; | |
delay(20); | |
// line(a[354][0],a[354][1],maxx,0); | |
// line(a[885][0],a[885][1],0,maxy); | |
} | |
for(i=s/2;i<s/2+s/8;) // to the left from bottom | |
{ | |
next=i+h; | |
w=rand()%50; | |
Wiggle(a[i][0],a[i][1],a[next][0],a[next][1],w); | |
i=next; | |
delay(20); | |
} | |
x=a[next][0]; | |
y=a[next][1]; | |
while((x>0)&&(y<maxy)) | |
{ | |
w=rand()%50; | |
Wiggle(x,y,x-h,y+h,w); | |
x=x-h; | |
y=y+h; | |
delay(20); | |
// line(a[354][0],a[354][1],maxx,0); | |
// line(a[885][0],a[885][1],0,maxy); | |
} | |
} | |
void scene4thread3(void *param3) //****************************** THREAD 3 ******************************************************** | |
{ | |
int h=*((int*)param3); | |
int next=0,w,x,y,i,k=100; | |
for(i=3*s/4;i>s/2+s/8;) // to the left from top | |
{ | |
next=i-h; | |
w=rand()%50; | |
Wiggle(a[i][0],a[i][1],a[next][0],a[next][1],w); | |
i=next; | |
delay(20); | |
} | |
x=a[next][0]; | |
y=a[next][1]; | |
while((x>0)&&(y<maxy)) | |
{ | |
w=rand()%40; | |
Wiggle(x,y,x-h,y+h,w); | |
x=x-h; | |
y=y+h; | |
delay(20); | |
// line(a[354][0],a[354][1],maxx,0); | |
// line(a[885][0],a[885][1],0,maxy); | |
} | |
for(i=s/4;i>s/8;) // to the right from bottom | |
{ | |
next=i-h; | |
w=rand()%50; | |
Wiggle(a[i][0],a[i][1],a[next][0],a[next][1],w); | |
i=next; | |
delay(20); | |
} | |
x=a[next][0]; | |
y=a[next][1]; | |
while((x<maxx)&&(y>0)) | |
{ | |
w=rand()%50; | |
Wiggle(x,y,x+h,y-h,w); | |
x=x+h; | |
y=y-h; | |
delay(20); | |
// line(a[354][0],a[354][1],maxx,0); | |
// line(a[885][0],a[885][1],0,maxy); | |
} | |
} | |
void scene4thread4(void *param4) //****************************** THREAD 4 ******************************************************** | |
{ | |
int h=*((int*)param4); | |
int next=0,w,x,y,i; | |
for(i=s/2;i<s/2+s/8;) // to the left from bottom | |
{ | |
next=i+h; | |
w=rand()%50; | |
Wiggle(a[i][0],a[i][1],a[next][0],a[next][1],w); | |
i=next; | |
delay(20); | |
} | |
x=a[next][0]; | |
y=a[next][1]; | |
while((x>0)&&(y<maxy)) | |
{ | |
w=rand()%50; | |
Wiggle(x,y,x-h,y+h,w); | |
x=x-h; | |
y=y+h; | |
delay(20); | |
// line(a[354][0],a[354][1],maxx,0); | |
// line(a[885][0],a[885][1],0,maxy); | |
} | |
for(i=0;i<s/8+1;) // to the right from top | |
{ | |
next=i+h; | |
w=rand()%50; | |
Wiggle(a[i][0],a[i][1],a[next][0],a[next][1],w); | |
i=next; | |
delay(20); | |
} | |
x=a[next][0]; | |
y=a[next][1]; | |
while((x<maxx)&&(y>0)) | |
{ | |
w=rand()%50; | |
Wiggle(x,y,x+h,y-h,w); | |
x=x+h; | |
y=y-h; | |
delay(20); | |
// line(a[354][0],a[354][1],maxx,0); | |
// line(a[885][0],a[885][1],0,maxy); | |
} | |
} | |
void scene4thread5(void *param5) //****************************** THREAD 5 ******************************************************** | |
{ | |
int h=*((int*)param5); | |
int i,w,val;float j=0; | |
HANDLE handle; | |
setcolor(BLACK); | |
setfillstyle(1,BLACK); | |
for( i=0;i<250;i++) | |
{setfillstyle(1,BLACK); | |
fillellipse(maxx/2,maxy/2,i,i); | |
if(i>100) | |
{ | |
setfillstyle(1,WHITE); | |
fillellipse(maxx/2,maxy/2,i-100,i-100);delay(10); | |
} | |
} | |
setfillstyle(1,BLACK); | |
setcolor(WHITE); | |
fillellipse(maxx/2,maxy/2,i-100,i-100); | |
setfillstyle(1,GREEN); | |
handle = (HANDLE) _beginthread( scene4thread7,0,&val); | |
for(i=5;i<s*5;i+=15) | |
{ | |
w=rand()%80; | |
Wiggle(circularArray(i,0),circularArray(i,1),circularArray(i+15,0),circularArray(i+15,1),w); | |
delay(20); | |
} | |
change=1; | |
// setcolor(5); | |
for(i=5;i<s*5;i+=15) | |
{ | |
w=rand()%80; | |
Wiggle(circularArray(i,0),circularArray(i,1),circularArray(i+15,0),circularArray(i+15,1),w); | |
delay(20); | |
} | |
change=2; | |
} | |
void scene4thread6(void *param6) //****************************** THREAD 6 ******************************************************** | |
{ | |
int h=*((int*)param6); | |
int i; | |
int r=rand()%8; | |
while(1) | |
{if(change==3) | |
{switch(r+1) | |
{case 1:for(i=0;i<maxy/2+50;i+=3) | |
{fillellipse(maxx/2,maxy/2+5+i,25,25);delay(3);//cleardevice(); | |
}break; | |
case 2:for(i=0;i<maxy/2+50;i+=3) | |
{fillellipse(maxx/2+5,maxy/2+5+i,25,25);delay(3);//cleardevice(); | |
}break; | |
case 3:for(i=0;i<maxy/2+50;i+=3) | |
{fillellipse(maxx/2,maxy/2+5+i,25,25);delay(3);//cleardevice(); | |
}break; | |
case 4:for(i=0;i<maxy/2+50;i+=3) | |
{fillellipse(maxx/2-5,maxy/2+5+i,25,25);delay(3);//cleardevice(); | |
}break; | |
case 5:for(i=0;i<maxy/2+50;i+=3) | |
{fillellipse(maxx/2-5,maxy/2+i,25,25);delay(3);//cleardevice(); | |
}break; | |
}}} | |
} | |
void scene4thread7(void *param7) //****************************** THREAD 7 ******************************************************** | |
{ | |
int h=*((int*)param7); | |
pieslice( maxx/2,maxy/2, 10, 80, 150 ); | |
pieslice( maxx/2,maxy/2, 190, 260, 150 ); | |
} | |
/* **************************************************************************************************************************************************************** | |
********************************************************** SCENE 5 ********************************************************************************************** */ | |
void scene5() | |
{ | |
HANDLE handle; | |
int val; | |
handle = (HANDLE) _beginthread( scene5thread3,0,&val); | |
handle = (HANDLE) _beginthread( scene5thread2,0,&val); //SCENE 5 | |
handle = (HANDLE) _beginthread( scene5thread1,0,&val); //SCENE 5 | |
WaitForSingleObject(handle,INFINITE); | |
cleardevice(); | |
} | |
void scene5thread1(void *param1) //****************************** THREAD 1 ******************************************************** | |
{ | |
int h=*((int*)param1); | |
int i=0,r;float j=0; | |
// HANDLE handle; | |
for( i=0;i<250;i++) | |
{setfillstyle(1,WHITE); | |
fillellipse(maxx/2,maxy/2,i,i);delay(10);} | |
for( i=0;i<250;i++) | |
{setfillstyle(1,BLACK); | |
fillellipse(maxx/2,maxy/2,i,i);delay(5);} | |
for( i=0;i<250;i++) | |
{setfillstyle(1,WHITE); | |
fillellipse(maxx/2,maxy/2,i,i);delay(2);} | |
// change=2; | |
for( i=0;i<250;i++) | |
{setfillstyle(1,BLACK); | |
fillellipse(maxx/2,maxy/2,i,i);delay(1);} | |
for( i=0;i<125;i++) | |
{setfillstyle(1,WHITE); | |
fillellipse(maxx/2,maxy/2,i,i);delay(1);} | |
delay(1000); | |
setcolor(WHITE); | |
while(j<100) | |
{int r=rand()%8; | |
cleardevice(); | |
switch(r+1) | |
{case 1:fillellipse(maxx/2,maxy/2-5,125-j,125-j);break; | |
case 2:fillellipse(maxx/2+5,maxy/2-5,125-j,125-j);break; | |
case 3:fillellipse(maxx/2+5,maxy/2,125-j,125-j);break; | |
case 4:fillellipse(maxx/2+5,maxy/2+5,125-j,125-j);break; | |
case 5:fillellipse(maxx/2,maxy/2+5,125-j,125-j);break; | |
case 6:fillellipse(maxx/2-5,maxy/2+5,125-j,125-j);break; | |
case 7:fillellipse(maxx/2-5,maxy/2,125-j,125-j);break; | |
case 8:fillellipse(maxx/2-5,maxy/2-5,125-j,125-j);break; | |
} | |
change=3; | |
circle(maxx/2,maxy/2,250-j-i-25); | |
// if(j>70) | |
delay(35); | |
j+=.4; | |
// WaitForSingleObject(handle,INFINITE); | |
}delay(3); change=2; | |
cleardevice(); | |
for(i=0;i<maxy/2;i+=5) | |
{ | |
fillellipse(maxx/2,maxy/2+i,25,25); | |
delay(3); | |
cleardevice();} } | |
//***************************************************************************** | |
// while(1) | |
// {//if(change==3) | |
//{ | |
void scene5thread2(void *param2) //****************************** THREAD 2 ******************************************************** | |
{ | |
int h=*((int*)param2); | |
int i,r,flag=0; | |
r=rand()%5; | |
while(1) | |
{ | |
while(change==3) | |
{//if() | |
switch(r+1) | |
{case 1:for(i=0;i<maxy/2;i+=5) | |
{fillellipse(maxx/2,maxy/2+5+i,25,25);delay(3);//cleardevice(); | |
}break; | |
case 2:for(i=0;i<maxy/2;i+=5) | |
{fillellipse(maxx/2+5,maxy/2+5+i,25,25);delay(3);//cleardevice(); | |
}break; | |
case 3:for(i=0;i<maxy/2;i+=5) | |
{fillellipse(maxx/2,maxy/2+5+i,25,25);delay(3);//cleardevice(); | |
}break; | |
case 4:for(i=0;i<maxy/2;i+=5) | |
{fillellipse(maxx/2-5,maxy/2+5+i,25,25);delay(3);//cleardevice(); | |
}break; | |
case 5:for(i=0;i<maxy/2;i+=5) | |
{fillellipse(maxx/2-5,maxy/2+i,25,25);delay(4);//cleardevice(); | |
}break; | |
}}if(change==3) | |
flag=1; | |
if(change==2&&flag==1) | |
break;}} | |
//} | |
void scene5thread3(void *param3) //****************************** THREAD 3 ******************************************************** | |
{ | |
int h=*((int*)param3); | |
int i,r,flag=0; | |
r=rand()%5; | |
while(1) | |
{ | |
while(change==3) | |
{//if() | |
switch(r+1) | |
{case 1:for(i=0;i<maxy/2;i+=5) | |
{fillellipse(maxx/2,maxy/2+10+i,25,25);delay(3);//cleardevice(); | |
}break; | |
case 2:for(i=0;i<maxy/2;i+=5) | |
{fillellipse(maxx/2+10,maxy/2+10+i,25,25);delay(3);//cleardevice(); | |
}break; | |
case 3:for(i=0;i<maxy/2;i+=5) | |
{fillellipse(maxx/2,maxy/2+10+i,25,25);delay(3);//cleardevice(); | |
}break; | |
case 4:for(i=0;i<maxy/2;i+=5) | |
{fillellipse(maxx/2-10,maxy/2+10+i,25,25);delay(3);//cleardevice(); | |
}break; | |
case 5:for(i=0;i<maxy/2;i+=5) | |
{fillellipse(maxx/2-10,maxy/2+i,25,25);delay(4);//cleardevice(); | |
}break; | |
}}if(change==3) | |
flag=1; | |
if(change==2&&flag==1) | |
break;}} | |
/* **************************************************************************************************************************************************************** | |
********************************************************** SCENE 6 ********************************************************************************************** */ | |
void scene6() | |
{ | |
int val,val1,rv; | |
HANDLE handle; | |
for(int i=1;i<550;i+=2) | |
{ | |
//cleardevice(); | |
setcolor(BLACK); | |
setfillstyle(1,WHITE); | |
fillellipse(maxx/2,maxy/2,250,250); | |
setfillstyle(1,BLACK); | |
fillellipse(maxx/2+i,maxy/2,300,300); | |
delay(10); | |
} | |
} | |
/* **************************************************************************************************************************************************************** | |
********************************************************** SCENE 7 ********************************************************************************************** */ | |
void scene7() | |
{ | |
int val,i; | |
HANDLE handle; | |
delay(1000); | |
setfillstyle(1,WHITE); | |
bar(0,0,maxx/2-2,maxy);//delay(10); | |
setfillstyle(1,BLACK); | |
bar(maxx/2,maxy,maxx,maxy); | |
sector( maxx/2,maxy/2,90,270,250,250); | |
setfillstyle(1,WHITE); | |
sector( maxx/2,maxy/2,270,90,250,250); | |
delay(500); | |
setfillstyle(1,BLACK); | |
bar(0,0,maxx/2,maxy);//delay(10); | |
setfillstyle(1,WHITE); | |
bar(maxx/2,0,maxx,maxy); | |
sector( maxx/2,maxy/2,90,270,250,250); | |
setfillstyle(1,BLACK); | |
sector( maxx/2,maxy/2,270,90,250,250); | |
delay(500); | |
setfillstyle(1,WHITE); | |
bar(0,0,maxx/2-2,maxy);//delay(10); | |
setfillstyle(1,BLACK); | |
bar(maxx/2,0,maxx,maxy); | |
sector( maxx/2,maxy/2,90,270,250,250); | |
setfillstyle(1,WHITE); | |
sector( maxx/2,maxy/2,270,90,250,250); | |
delay(500); | |
setfillstyle(1,BLACK); | |
bar(0,0,maxx/2,maxy);//delay(10); | |
setfillstyle(1,WHITE); | |
bar(maxx/2,0,maxx,maxy); | |
sector( maxx/2,maxy/2,90,270,250,250); | |
setfillstyle(1,BLACK); | |
sector( maxx/2,maxy/2,270,90,250,250); | |
delay(500); | |
setfillstyle(1,WHITE); | |
bar(0,0,maxx/2-2,maxy);//delay(10); | |
setfillstyle(1,BLACK); | |
bar(maxx/2,0,maxx,maxy); | |
sector( maxx/2,maxy/2,90,270,250,250); | |
setfillstyle(1,WHITE); | |
sector( maxx/2,maxy/2,270,90,250,250); | |
delay(500); | |
setfillstyle(1,BLACK); | |
bar(0,0,maxx/2,maxy);//delay(10); | |
setfillstyle(1,WHITE); | |
bar(maxx/2,0,maxx,maxy); | |
sector( maxx/2,maxy/2,90,270,250,250); | |
setfillstyle(1,BLACK); | |
sector( maxx/2,maxy/2,270,90,250,250); | |
delay(500); | |
setfillstyle(1,WHITE); | |
bar(0,0,maxx/2-2,maxy);//delay(10); | |
setfillstyle(1,BLACK); | |
bar(maxx/2,0,maxx,maxy); | |
sector( maxx/2,maxy/2,90,270,250,250); | |
setfillstyle(1,WHITE); | |
sector( maxx/2,maxy/2,270,90,250,250); | |
delay(500); | |
setfillstyle(1,BLACK); | |
bar(0,0,maxx/2,maxy);//delay(10); | |
setfillstyle(1,WHITE); | |
bar(maxx/2,0,maxx,maxy); | |
sector( maxx/2,maxy/2,90,270,250,250); | |
setfillstyle(1,BLACK); | |
sector( maxx/2,maxy/2,270,90,250,250); | |
delay(500); | |
//************************************************************************************************* | |
for(i=0;i<252;i++) | |
{setfillstyle(1,BLACK); | |
setcolor(BLACK); | |
sector( maxx/2,maxy/2,90,270,i,i); | |
setfillstyle(1,WHITE); | |
setcolor(WHITE); | |
sector( maxx/2,maxy/2,270,90,i,i); | |
delay(10); | |
} | |
for(i=0;maxx/2-i>=0;i+=3) | |
{bar(maxx/2,maxy,maxx/2-i,-1); | |
delay(2);} | |
setcolor(BLACK); | |
} | |
/* **************************************************************************************************************************************************************** | |
********************************************************** SCENE 8 ********************************************************************************************** */ | |
void scene8() | |
{ | |
int val,i,sk=15,r,c=1; | |
HANDLE handle; | |
delay(1000); | |
//setcolor(BLACK); | |
for(i=0;i<s/3-1;i++) | |
{ | |
line(circularArray(sk,0),circularArray(sk,1),circularArray(sk+s/3,0),circularArray(sk+s/3,1));//delay(50); | |
line(circularArray(sk+s/3,0),circularArray(sk+s/3,1),circularArray(sk+2*s/3,0),circularArray(sk+2*s/3,1));//delay(50); | |
line(circularArray(sk+2*s/3,0),circularArray(sk+2*s/3,1),circularArray(sk+s,0),circularArray(sk+s,1));delay(50); | |
sk+=15; | |
} | |
setcolor(WHITE); | |
for(i=0;i<s/2;i++) | |
{ r=rand()%300; | |
/* switch(c) | |
{ | |
case 1: r*=-1;c=2;break; | |
case 2: c=1;break; | |
} */ | |
line(circularArray(sk,0)+r,circularArray(sk,1)+r,circularArray(sk+s/3,0)-r,circularArray(sk+s/3,1)+r);//delay(50); | |
line(circularArray(sk+s/3,0)+r,circularArray(sk+s/3,1)-r,circularArray(sk+2*s/3,0)-r,circularArray(sk+2*s/3,1)-r);//delay(50); | |
line(circularArray(sk+2*s/3,0)-r,circularArray(sk+2*s/3,1)-r,circularArray(sk+s,0)-r,circularArray(sk+s,1)-r);delay(50); | |
sk+=15; | |
} | |
setcolor(BLACK); | |
for(i=0;i<s*20;i++) | |
{ r=rand()%1000; | |
/* switch(c) | |
{ | |
case 1: r*=-1;c=2;break; | |
case 2: c=1;break; | |
} */ | |
line(circularArray(sk,0)+r,circularArray(sk,1)+r,circularArray(sk+s/3,0)-r,circularArray(sk+s/3,1)+r);//delay(50); | |
line(circularArray(sk+s/3,0)+r,circularArray(sk+s/3,1)-r,circularArray(sk+2*s/3,0)-r,circularArray(sk+2*s/3,1)-r);//delay(50); | |
line(circularArray(sk+2*s/3,0)-r,circularArray(sk+2*s/3,1)-r,circularArray(sk+s,0)-r,circularArray(sk+s,1)-r); | |
if(i<s)delay(1); | |
sk+=15; | |
} | |
} | |
/* **************************************************************************************************************************************************************** | |
********************************************************** SCENE 9 ********************************************************************************************** */ | |
void scene9() | |
{ | |
// HANDLE handle; | |
int val,rx=200,ry=0,cas=1,r=250,i,d1,d2,d,sp,ep,w=50,c1,k=0; | |
cleardevice(); | |
/// rx=rand()%maxx; | |
while(k<1000){ | |
cas=rand()%2; | |
switch(cas+1) | |
{ | |
case 1: | |
ry=rand()%maxy; | |
if(ry<=maxy/2-r || ry>=maxy/2+r) | |
{ | |
for(i=0;i<=maxx;i++) | |
{putpixel(i,ry,WHITE);}} | |
// line(0,ry,200,ry); | |
else | |
{for(i=0;i<=maxx;i++) | |
{d1=(maxx/2-i); | |
d1*=d1; | |
d2=(maxy/2-ry); | |
d2*=d2; | |
d=sqrt(d1+d2); | |
if(d<=r) | |
{ | |
if(d==r && i<maxx/2) | |
{ | |
sp=i;} | |
if(d==r && i>maxx/2) | |
{ | |
ep=i; | |
c1=change; | |
change=10; | |
bezierCurve(sp,ry,maxx/2,maxy/2+w,ep,ry); | |
change=c1;} | |
continue;} | |
putpixel(i,ry,WHITE); | |
}} | |
case 2: | |
rx=rand()%maxx; | |
if(rx<=maxx/2-r || rx>=maxx/2+r) | |
{ | |
for(i=0;i<=maxy;i++) | |
{putpixel(rx,i,WHITE);}} | |
// line(0,ry,200,ry); | |
else | |
{for(i=0;i<=maxy;i++) | |
{d1=(maxx/2-rx); | |
d1*=d1; | |
d2=(maxy/2-i); | |
d2*=d2; | |
d=sqrt(d1+d2); | |
if(d<=r) | |
{ | |
if(d==r && i<maxy/2) | |
{ | |
sp=i;} | |
if(d==r && i>maxy/2) | |
{ | |
ep=i; | |
c1=change; | |
change=10; | |
bezierCurve(rx,sp,maxx/2+w,maxy/2,rx,ep); | |
change=c1;} | |
continue;} | |
putpixel(rx,i,WHITE); | |
}} delay(30);} | |
k++;}delay(1000);cleardevice(); } | |
/* **************************************************************************************************************************************************************** | |
********************************************************** SCENE 10 ********************************************************************************************** */ | |
void scene10() | |
{ | |
HANDLE handle; | |
int val=10,val1=25,val2=50,val3=90,val4=70,val5=80,i; | |
setfillstyle(1,WHITE); | |
bar(0,0,maxx+10,maxy+10);//cleardevice(); | |
setfillstyle(1,BLACK); | |
// | |
setcolor(BLACK); | |
// handle = (HANDLE) _beginthread( scene10thread10,0,&val); | |
handle = (HANDLE) _beginthread( scene10thread7,0,&val); | |
handle = (HANDLE) _beginthread( scene10thread1,0,&val4); | |
handle = (HANDLE) _beginthread( scene10thread2,0,&val1); | |
handle = (HANDLE) _beginthread( scene10thread3,0,&val2); | |
handle = (HANDLE) _beginthread( scene10thread4,0,&val3); | |
handle = (HANDLE) _beginthread( scene10thread5,0,&val4); | |
handle = (HANDLE) _beginthread( scene10thread6,0,&val5); | |
handle = (HANDLE) _beginthread( scene10thread1,0,&val5); | |
handle = (HANDLE) _beginthread( scene10thread2,0,&val4); | |
handle = (HANDLE) _beginthread( scene10thread3,0,&val3); | |
handle = (HANDLE) _beginthread( scene10thread4,0,&val2); | |
handle = (HANDLE) _beginthread( scene10thread5,0,&val1); | |
handle = (HANDLE) _beginthread( scene10thread6,0,&val); | |
WaitForSingleObject(handle,INFINITE); | |
for(i=0;i<250;i++){ | |
fillellipse(maxx/2,maxy/2,i,i);delay(10);} | |
dl=100; | |
handle = (HANDLE) _beginthread( scene10thread7,0,&val); | |
for(i=0;i<5;i++) | |
handle = (HANDLE) _beginthread( scene10thread8,0,&i); | |
WaitForSingleObject(handle,INFINITE); | |
delay(1000); | |
cleardevice(); | |
} | |
void scene10thread1(void *param1) //****************************** THREAD 1 ******************************************************** | |
{ | |
int h=*((int*)param1); | |
int val,x=0,y=0,d,r=250,flag=0,limit=10000,i=0,cas,skip=15; | |
//for(int j=0;j<h;j++) | |
// { | |
while(flag!=h) | |
{ | |
x=rand()%maxx; | |
y=rand()%maxy; | |
d=dist(x,y); | |
if(d<=r) | |
continue; | |
flag++; | |
}//} | |
while(i<limit) | |
{ | |
cas=rand()%8; | |
switch(cas) | |
{ | |
case 2: d=dist(x+skip,y); | |
if(d<=r || x+skip>maxx) | |
continue; | |
line(x,y,x+skip,y); | |
i++; | |
x+=skip; | |
break; | |
case 1: d=dist(x-skip,y); | |
if(d<=r || x-skip<0) | |
continue; | |
line(x,y,x-skip,y); | |
i++; | |
x-=skip; | |
break; | |
case 8: d=dist(x,y+skip); | |
if(d<=r || y+skip>maxy) | |
continue; | |
line(x,y,x,y+skip); | |
i++; | |
y+=skip; | |
break; | |
case 7: d=dist(x,y-skip); | |
if(d<=r || y-skip<0) | |
continue; | |
line(x,y,x,y-skip); | |
i++; | |
y-=skip; | |
break; | |
case 6: d=dist(x+skip,y-skip); | |
if(d<=r || x+skip>maxx || y-skip<0) | |
continue; | |
line(x,y,x+skip,y-skip); | |
i++; | |
x+=skip; | |
y-=skip; | |
break; | |
case 5: d=dist(x+skip,y+skip); | |
if(d<=r || x+skip>maxx || y+skip>maxy) | |
continue; | |
line(x,y,x+skip,y+skip); | |
i++; | |
x+=skip; | |
y+=skip; | |
break; | |
case 4: d=dist(x-skip,y+skip); | |
if(d<=r || x-skip<0 || y+skip>maxy) | |
continue; | |
line(x,y,x-skip,y+skip); | |
i++; | |
x-=skip; | |
y+=skip; | |
break; | |
case 3: d=dist(x-skip,y-skip); | |
if(d<=r || x-skip<0 || y-skip<0) | |
continue; | |
line(x,y,x-skip,y-skip); | |
i++; | |
x-=skip; | |
y-=skip; | |
break; | |
}delay(dl); | |
}} | |
void scene10thread2(void *param2) //****************************** THREAD 2 ******************************************************** | |
{ | |
int h=*((int*)param2); | |
int val,x=0,y=0,d,r=250,flag=0,limit=10000,i=0,cas,skip=15; | |
//for(int j=0;j<h;j++) | |
// { | |
while(flag!=h) | |
{ | |
x=rand()%maxx; | |
y=rand()%maxy; | |
d=dist(x,y); | |
if(d<=r) | |
continue; | |
flag++; | |
}//} | |
while(i<limit) | |
{ | |
cas=rand()%8; | |
switch(cas) | |
{ | |
case 2: d=dist(x+skip,y); | |
if(d<=r || x+skip>maxx) | |
continue; | |
line(x,y,x+skip,y); | |
i++; | |
x+=skip; | |
break; | |
case 1: d=dist(x-skip,y); | |
if(d<=r || x-skip<0) | |
continue; | |
line(x,y,x-skip,y); | |
i++; | |
x-=skip; | |
break; | |
case 3: d=dist(x,y+skip); | |
if(d<=r || y+skip>maxy) | |
continue; | |
line(x,y,x,y+skip); | |
i++; | |
y+=skip; | |
break; | |
case 4: d=dist(x,y-skip); | |
if(d<=r || y-skip<0) | |
continue; | |
line(x,y,x,y-skip); | |
i++; | |
y-=skip; | |
break; | |
case 5: d=dist(x+skip,y-skip); | |
if(d<=r || x+skip>maxx || y-skip<0) | |
continue; | |
line(x,y,x+skip,y-skip); | |
i++; | |
x+=skip; | |
y-=skip; | |
break; | |
case 8: d=dist(x+skip,y+skip); | |
if(d<=r || x+skip>maxx || y+skip>maxy) | |
continue; | |
line(x,y,x+skip,y+skip); | |
i++; | |
x+=skip; | |
y+=skip; | |
break; | |
case 7: d=dist(x-skip,y+skip); | |
if(d<=r || x-skip<0 || y+skip>maxy) | |
continue; | |
line(x,y,x-skip,y+skip); | |
i++; | |
x-=skip; | |
y+=skip; | |
break; | |
case 6: d=dist(x-skip,y-skip); | |
if(d<=r || x-skip<0 || y-skip<0) | |
continue; | |
line(x,y,x-skip,y-skip); | |
i++; | |
x-=skip; | |
y-=skip; | |
break; | |
}delay(dl); | |
}} | |
void scene10thread3(void *param3) //****************************** THREAD 3 ******************************************************** | |
{ | |
int h=*((int*)param3); | |
int val,x=0,y=0,d,r=250,flag=0,limit=10000,i=0,cas,skip=15; | |
//for(int j=0;j<h;j++) | |
// { | |
while(flag!=h) | |
{ | |
x=rand()%maxx; | |
y=rand()%maxy; | |
d=dist(x,y); | |
if(d<=r) | |
continue; | |
flag++; | |
}//} | |
while(i<limit) | |
{ | |
cas=rand()%8; | |
switch(cas) | |
{ | |
case 2: d=dist(x+skip,y); | |
if(d<=r || x+skip>maxx) | |
continue; | |
line(x,y,x+skip,y); | |
i++; | |
x+=skip; | |
break; | |
case 1: d=dist(x-skip,y); | |
if(d<=r || x-skip<0) | |
continue; | |
line(x,y,x-skip,y); | |
i++; | |
x-=skip; | |
break; | |
case 3: d=dist(x,y+skip); | |
if(d<=r || y+skip>maxy) | |
continue; | |
line(x,y,x,y+skip); | |
i++; | |
y+=skip; | |
break; | |
case 4: d=dist(x,y-skip); | |
if(d<=r || y-skip<0) | |
continue; | |
line(x,y,x,y-skip); | |
i++; | |
y-=skip; | |
break; | |
case 5: d=dist(x+skip,y-skip); | |
if(d<=r || x+skip>maxx || y-skip<0) | |
continue; | |
line(x,y,x+skip,y-skip); | |
i++; | |
x+=skip; | |
y-=skip; | |
break; | |
case 7: d=dist(x+skip,y+skip); | |
if(d<=r || x+skip>maxx || y+skip>maxy) | |
continue; | |
line(x,y,x+skip,y+skip); | |
i++; | |
x+=skip; | |
y+=skip; | |
break; | |
case 6: d=dist(x-skip,y+skip); | |
if(d<=r || x-skip<0 || y+skip>maxy) | |
continue; | |
line(x,y,x-skip,y+skip); | |
i++; | |
x-=skip; | |
y+=skip; | |
break; | |
case 8: d=dist(x-skip,y-skip); | |
if(d<=r || x-skip<0 || y-skip<0) | |
continue; | |
line(x,y,x-skip,y-skip); | |
i++; | |
x-=skip; | |
y-=skip; | |
break; | |
}delay(dl); | |
}} | |
void scene10thread4(void *param4) //****************************** THREAD 4 ******************************************************** | |
{ | |
int h=*((int*)param4); | |
int val,x=0,y=0,d,r=250,flag=0,limit=10000,i=0,cas,skip=15; | |
//for(int j=0;j<h;j++) | |
// { | |
while(flag!=h) | |
{ | |
x=rand()%maxx; | |
y=rand()%maxy; | |
d=dist(x,y); | |
if(d<=r) | |
continue; | |
flag++; | |
}//} | |
while(i<limit) | |
{ | |
cas=rand()%8; | |
switch(cas) | |
{ | |
case 2: d=dist(x+skip,y); | |
if(d<=r || x+skip>maxx) | |
continue; | |
line(x,y,x+skip,y); | |
i++; | |
x+=skip; | |
break; | |
case 1: d=dist(x-skip,y); | |
if(d<=r || x-skip<0) | |
continue; | |
line(x,y,x-skip,y); | |
i++; | |
x-=skip; | |
break; | |
case 3: d=dist(x,y+skip); | |
if(d<=r || y+skip>maxy) | |
continue; | |
line(x,y,x,y+skip); | |
i++; | |
y+=skip; | |
break; | |
case 4: d=dist(x,y-skip); | |
if(d<=r || y-skip<0) | |
continue; | |
line(x,y,x,y-skip); | |
i++; | |
y-=skip; | |
break; | |
case 7: d=dist(x+skip,y-skip); | |
if(d<=r || x+skip>maxx || y-skip<0) | |
continue; | |
line(x,y,x+skip,y-skip); | |
i++; | |
x+=skip; | |
y-=skip; | |
break; | |
case 6: d=dist(x+skip,y+skip); | |
if(d<=r || x+skip>maxx || y+skip>maxy) | |
continue; | |
line(x,y,x+skip,y+skip); | |
i++; | |
x+=skip; | |
y+=skip; | |
break; | |
case 5: d=dist(x-skip,y+skip); | |
if(d<=r || x-skip<0 || y+skip>maxy) | |
continue; | |
line(x,y,x-skip,y+skip); | |
i++; | |
x-=skip; | |
y+=skip; | |
break; | |
case 8: d=dist(x-skip,y-skip); | |
if(d<=r || x-skip<0 || y-skip<0) | |
continue; | |
line(x,y,x-skip,y-skip); | |
i++; | |
x-=skip; | |
y-=skip; | |
break; | |
}delay(dl); | |
}} | |
void scene10thread5(void *param5) //****************************** THREAD 5 ******************************************************** | |
{ | |
int h=*((int*)param5); | |
int val,x=0,y=0,d,r=250,flag=0,limit=10000,i=0,cas,skip=15; | |
//for(int j=0;j<h;j++) | |
// { | |
while(flag!=h) | |
{ | |
x=rand()%maxx; | |
y=rand()%maxy; | |
d=dist(x,y); | |
if(d<=r) | |
continue; | |
flag++; | |
}//} | |
while(i<limit) | |
{ | |
cas=rand()%8; | |
switch(cas) | |
{ | |
case 2: d=dist(x+skip,y); | |
if(d<=r || x+skip>maxx) | |
continue; | |
line(x,y,x+skip,y); | |
i++; | |
x+=skip; | |
break; | |
case 1: d=dist(x-skip,y); | |
if(d<=r || x-skip<0) | |
continue; | |
line(x,y,x-skip,y); | |
i++; | |
x-=skip; | |
break; | |
case 3: d=dist(x,y+skip); | |
if(d<=r || y+skip>maxy) | |
continue; | |
line(x,y,x,y+skip); | |
i++; | |
y+=skip; | |
break; | |
case 4: d=dist(x,y-skip); | |
if(d<=r || y-skip<0) | |
continue; | |
line(x,y,x,y-skip); | |
i++; | |
y-=skip; | |
break; | |
case 8: d=dist(x+skip,y-skip); | |
if(d<=r || x+skip>maxx || y-skip<0) | |
continue; | |
line(x,y,x+skip,y-skip); | |
i++; | |
x+=skip; | |
y-=skip; | |
break; | |
case 5: d=dist(x+skip,y+skip); | |
if(d<=r || x+skip>maxx || y+skip>maxy) | |
continue; | |
line(x,y,x+skip,y+skip); | |
i++; | |
x+=skip; | |
y+=skip; | |
break; | |
case 6: d=dist(x-skip,y+skip); | |
if(d<=r || x-skip<0 || y+skip>maxy) | |
continue; | |
line(x,y,x-skip,y+skip); | |
i++; | |
x-=skip; | |
y+=skip; | |
break; | |
case 7: d=dist(x-skip,y-skip); | |
if(d<=r || x-skip<0 || y-skip<0) | |
continue; | |
line(x,y,x-skip,y-skip); | |
i++; | |
x-=skip; | |
y-=skip; | |
break; | |
}delay(dl); | |
}} | |
void scene10thread6(void *param6) //****************************** THREAD 6 ******************************************************** | |
{ | |
int h=*((int*)param6); | |
int val,x=0,y=0,d,r=250,flag=0,limit=10000,i=0,cas,skip=15; | |
//for(int j=0;j<h;j++) | |
// { | |
// while(flag!=h) | |
// { | |
x=maxx-100; | |
y=maxy-200; | |
// d=dist(x,y); | |
// if(d<=r) | |
// continue; | |
// flag++; | |
// }//} | |
while(i<limit) | |
{ | |
cas=rand()%8; | |
switch(cas) | |
{ | |
case 1: d=dist(x+skip,y); | |
if(d<=r || x+skip>maxx) | |
continue; | |
line(x,y,x+skip,y); | |
i++; | |
x+=skip; | |
break; | |
case 2: d=dist(x-skip,y); | |
if(d<=r || x-skip<0) | |
continue; | |
line(x,y,x-skip,y); | |
i++; | |
x-=skip; | |
break; | |
case 3: d=dist(x,y+skip); | |
if(d<=r || y+skip>maxy) | |
continue; | |
line(x,y,x,y+skip); | |
i++; | |
y+=skip; | |
break; | |
case 4: d=dist(x,y-skip); | |
if(d<=r || y-skip<0) | |
continue; | |
line(x,y,x,y-skip); | |
i++; | |
y-=skip; | |
break; | |
case 5: d=dist(x+skip,y-skip); | |
if(d<=r || x+skip>maxx || y-skip<0) | |
continue; | |
line(x,y,x+skip,y-skip); | |
i++; | |
x+=skip; | |
y-=skip; | |
break; | |
case 6: d=dist(x+skip,y+skip); | |
if(d<=r || x+skip>maxx || y+skip>maxy) | |
continue; | |
line(x,y,x+skip,y+skip); | |
i++; | |
x+=skip; | |
y+=skip; | |
break; | |
case 7: d=dist(x-skip,y+skip); | |
if(d<=r || x-skip<0 || y+skip>maxy) | |
continue; | |
line(x,y,x-skip,y+skip); | |
i++; | |
x-=skip; | |
y+=skip; | |
break; | |
case 8: d=dist(x-skip,y-skip); | |
if(d<=r || x-skip<0 || y-skip<0) | |
continue; | |
line(x,y,x-skip,y-skip); | |
i++; | |
x-=skip; | |
y-=skip; | |
break; | |
}delay(dl); | |
}} | |
void scene10thread7(void *param7) //****************************** THREAD 7 ******************************************************** | |
{ | |
int h=*((int*)param7); | |
delay(5000); | |
dl=50; | |
delay(5000); | |
dl=20; | |
delay(5000); | |
dl=10; | |
delay(5000); | |
dl=0; | |
} | |
void scene10thread8(void *param8) //****************************** THREAD 8 ******************************************************** | |
{ | |
int h=*((int*)param8); | |
int val,x=0,y=0,d,r=250,flag=0,limit=10000,i=0,cas,skip=15,ran; | |
//for(int j=0;j<h;j++) | |
// { | |
setcolor(WHITE); | |
while(flag!=h) | |
{ | |
ran=rand()%s; | |
x=a[ran][0]; | |
y=a[ran][1]; | |
d=dist(x,y); | |
if(d>=r) | |
continue; | |
flag++; | |
}//} | |
while(i<limit) | |
{ | |
cas=rand()%8; | |
switch(cas) | |
{ | |
case 8: d=dist(x+skip,y); | |
if(d>=r) | |
continue; | |
line(x,y,x+skip,y); | |
i++; | |
x+=skip; | |
break; | |
case 2: d=dist(x-skip,y); | |
if(d>=r) | |
continue; | |
line(x,y,x-skip,y); | |
i++; | |
x-=skip; | |
break; | |
case 4: d=dist(x,y+skip); | |
if(d>=r) | |
continue; | |
line(x,y,x,y+skip); | |
i++; | |
y+=skip; | |
break; | |
case 3: d=dist(x,y-skip); | |
if(d>=r) | |
continue; | |
line(x,y,x,y-skip); | |
i++; | |
y-=skip; | |
break; | |
case 7: d=dist(x+skip,y-skip); | |
if(d>=r) | |
continue; | |
line(x,y,x+skip,y-skip); | |
i++; | |
x+=skip; | |
y-=skip; | |
break; | |
case 6: d=dist(x+skip,y+skip); | |
if(d>=r) | |
continue; | |
line(x,y,x+skip,y+skip); | |
i++; | |
x+=skip; | |
y+=skip; | |
break; | |
case 5: d=dist(x-skip,y+skip); | |
if(d>=r) | |
continue; | |
line(x,y,x-skip,y+skip); | |
i++; | |
x-=skip; | |
y+=skip; | |
break; | |
case 1: d=dist(x-skip,y-skip); | |
if(d>=r) | |
continue; | |
line(x,y,x-skip,y-skip); | |
i++; | |
x-=skip; | |
y-=skip; | |
break; | |
}delay(dl); | |
}} | |
void scene11() //******************************************** SCENE 11 ******************************************************************* | |
{ | |
int val,val1,rv; | |
HANDLE handle; | |
for(int i=550;i>0;i-=2) | |
{ | |
//cleardevice(); | |
setcolor(BLACK); | |
setfillstyle(1,WHITE); | |
fillellipse(maxx/2,maxy/2,250,250); | |
setfillstyle(1,BLACK); | |
fillellipse(maxx/2+i,maxy/2,300,300); | |
delay(10); | |
} | |
delay(1000); | |
} | |
void scene12() //***************************************** SCENE 12 ****************************************************************************** | |
{ int j=0,next=0,w=0,x; | |
double decay=0; | |
int i; | |
int val,val1,innr=20; | |
HANDLE handle; | |
val =71; | |
val1=100; | |
// setfillstyle(1,WHITE); | |
// bar(0,0,maxx+10,maxy+10); | |
//FIRST ANIMATION STARTS: | |
color=4; | |
for(x=s/4;x>j;x-=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
w=rand()%50; | |
decay+=1; | |
j=5; | |
next=x-j; | |
//if(x+2>568) | |
//color=7; | |
Wiggle1(circularArray(x,0),circularArray(x,1),circularArray(next,0),circularArray(next,1),w-decay); | |
delay(50); | |
} | |
//SECOND ANIMATION STARTS HERE: | |
color=2; | |
for(x=s/4;x<s/2;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
//w=rand()%50; | |
decay=0; | |
w=rand()%50; | |
decay+=1; | |
j=5; | |
next=x+j; | |
//if(x==3*s/8) | |
Wiggle1(a[x%s][0],a[x%s][1],a[next%s][0],a[next%s][1],w-decay); | |
delay(30); | |
} | |
//THIRD ANIMATION STARTS HERE: | |
//color=6; | |
handle = (HANDLE) _beginthread( scene12thread10,0,&innr); | |
handle = (HANDLE) _beginthread( scene12thread1,0,&val); // create thread | |
handle = (HANDLE) _beginthread( scene12thread2,0,&val1); | |
WaitForSingleObject(handle,INFINITE); | |
handle = (HANDLE) _beginthread( scene12thread3,0,&val1); | |
handle = (HANDLE) _beginthread( scene12thread5,0,&innr); | |
handle = (HANDLE) _beginthread( scene12thread6,0,&innr); | |
// handle = (HANDLE) _beginthread( scene12thread9,0,&innr); | |
handle = (HANDLE) _beginthread( scene12thread4,0,&val1); | |
WaitForSingleObject(handle,INFINITE); | |
handle = (HANDLE) _beginthread( scene12thread7,0,&innr); | |
WaitForSingleObject(handle,INFINITE); | |
// handle = (HANDLE) _beginthread( scene3thread8,0,&innr); | |
delay(1000); | |
} | |
//THREAD DEFENITIONS: | |
void scene12thread1(void *param1) //****************************** THREAD 1 ******************************************************** | |
{ | |
int h=*((int*)param1); | |
int x=0,j=0,next=0,w; | |
for(x=3*s/8;x>=j;x-=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=5; | |
next=x-j; | |
//if(x+2>568) | |
w=rand()%50; | |
Wiggle1(a[x%s][0],a[x%s][1],a[next%s][0],a[next%s][1],w); | |
delay(50); | |
} | |
//setcolor(RED); | |
for(x=s/8;x<s/2+100;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=8; | |
next=x+j; | |
//if(x+2>568) | |
w=rand()%100; | |
Wiggle1(a[x%s][0],a[x%s][1],a[next%s][0],a[next%s][1],w); | |
delay(20); | |
} | |
} | |
void scene12thread2(void *param2) //******************************* THREAD 2 ********************************************** | |
{ | |
int h=*((int*)param2); | |
int x,j=0,next,w; | |
for(x=s/4;x<s/2;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=8; | |
next=x+j; | |
//if(x+2>568) | |
w=rand()%100; | |
Wiggle1(a[x%s][0],a[x%s][1],a[next%s][0],a[next%s][1],w); | |
delay(20); | |
} | |
j=5; | |
for(x=s/4;;x-=j) | |
{ | |
next=x-j; | |
w=rand()%80; | |
Wiggle1(circularArray(x,0),circularArray(x,1),circularArray(next,0),circularArray(next,1),w); | |
delay(20); | |
if(next<=x/2-10) | |
break; | |
} | |
} | |
void scene12thread3(void *param3) //******************************* THREAD 3 ********************************************** | |
{ | |
int h=*((int*)param3); | |
int x,j=0,next,w;float k=0; | |
for(x=0;x<s/2-10;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=10; | |
next=x+j; | |
//if(x+2>568) | |
w=rand()%100; | |
Wiggle1(a[x][0]-k,a[x][1],a[next][0]-k,a[next][1],w); | |
k+=.4; | |
delay(50); | |
}k=0; | |
for(x=0;x<s/2-100;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=10; | |
next=x+j; | |
//if(x+2>568) | |
w=rand()%200; | |
Wiggle1(a[x][0]-k,a[x][1],a[next][0]-k,a[next][1],w); | |
k+=1; | |
delay(20); | |
} | |
k=0; | |
for(x=100;x<s/2;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=15; | |
next=x-j; | |
//if(x+2>568) | |
w=rand()%40; | |
Wiggle1(a[x][0]-k,a[x][1],a[next][0]-k,a[next][1],w); | |
k++; | |
delay(20); | |
} | |
boxer1(a[14][0],a[14][1]-10, 400, 250, 15, 1); | |
delay(100); | |
boxer1(a[800][0]+200,a[800][1]+10, 350, 100, 10, 2); | |
} | |
void scene12thread4(void *param4) //******************************* THREAD 4 ********************************************** | |
{ | |
int h=*((int*)param4); | |
int x,j=0,next,w;float k=0; | |
for(x=s/4+200;x>j;x-=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=6; | |
next=x-j; | |
//if(x+2>568) | |
w=rand()%50; | |
Wiggle1(circularArray(x,0)-k,circularArray(x,1),circularArray(next,0)-k,circularArray(next,1),w); | |
k+=.4; | |
delay(50); | |
}k=0; | |
for(x=s/4;x>j;x-=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=10; | |
next=x-j; | |
//if(x+2>568) | |
w=rand()%200; | |
Wiggle1(a[x][0]-k,a[x][1],a[next][0]-k,a[next][1],w); | |
k+=.1; | |
delay(20); | |
} | |
k=0; | |
for(x=s/4;x<s/2;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=5; | |
next=x+j; | |
//if(x+2>568) | |
w=rand()%40; | |
Wiggle1(a[x][0]-k,a[x][1],a[next][0]-k,a[next][1],w); | |
k++; | |
delay(20); | |
}j=0; | |
boxer1(a[14][0],a[14][1]-10, 400, 250, 15, 1); | |
boxer1(a[500][0],a[500][1]+200, 350, 150, 10, 4); | |
} | |
void scene12thread5(void *param5) //******************************* THREAD 5 ********************************************** | |
{ | |
int incr=*((int*)param5); | |
int x,j=0,next,w,l=0,m=0;float k=incr,shift=1; | |
while(m<10) | |
{ | |
for(x=1+l;x<=s/2-l;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=10; | |
next=x-j; | |
//if(x+2>568) | |
w=rand()%100; | |
Wiggle1(circularArray(x,0)-k-shift,circularArray(x,1),circularArray(next,0)-k-shift,circularArray(next,1),w); | |
k+=.1; | |
if(circularArray(next,1)<=maxy/2&&circularArray(next,1)>=maxy/4) | |
shift+=2; | |
if(circularArray(next,1)>=maxy/2&&circularArray(next,1)<=3*maxy/4) | |
shift-=2; | |
delay(30);//incr++; | |
}l+=17;j++;m++;}} | |
void scene12thread6(void *param6) //******************************* THREAD 6 ********************************************** | |
{ | |
int incr=*((int*)param6); | |
int x,j=0,next,w,l=0,m=0;float k=incr; | |
// delay(10000); | |
while(m<10) | |
{ | |
for(x=s/2-l;x>=l+j;x-=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=10; | |
next=x-j; | |
//if(x+2>568) | |
w=rand()%100; | |
Wiggle1(circularArray(x,0)-k,circularArray(x,1),circularArray(next,0)-k,circularArray(next,1),w); | |
k+=.1; | |
delay(30);//incr++; | |
}l+=17;j--;m++;}} | |
void scene12thread7(void *param7) //******************************* THREAD 7 ********************************************** | |
{ | |
int incr=*((int*)param7);int j=100,k=0,yoyo=0; | |
while(yoyo<=50) | |
{ | |
//boxer(a[177][0]+j,a[177][1]+j+100, 400, 800, 15, 3); | |
delay(100); | |
boxer1(a[531][0]+100-j,a[531][1]-100+j, 400, 150+j, 10, 4); | |
boxer1(a[14][0]-k*3,a[14][1]-10, 500, 450, 15, 1); | |
boxer1(a[500][0]+k,a[500][1]+200-k, 350, 350+k, 10, 4); | |
boxer1(a[531][0]-j,a[531][1]+100, 500, 150+j*2, 10, 4); | |
//boxer(circularArray(177,0)+2*j,circularArray(177,1)+k, 400, 250, 15, 4); | |
j+=5;k+=2; | |
//bgiout<<yoyo; | |
//outstreamxy(0,15); | |
yoyo++; | |
} | |
} | |
void scene12thread8(void *param8) //******************************* THREAD 8 ********************************************** | |
{ | |
int incr=*((int*)param8);int j=0,k=0; | |
while(!kbhit()) | |
{ | |
boxer1(a[708][0]-j,a[708][1], 100, 100, 15, 4); | |
//boxer(circularArray(177,0)+2*j,circularArray(177,1)+k, 400, 250, 15, 4); | |
j+=5; | |
} | |
} | |
void scene12thread9(void *param9) //******************************* THREAD 9 ********************************************** | |
{ | |
int incr=*((int*)param9);int j=100,k=0,x,next,w,innr; | |
//HANDLE handle; | |
while(change!=2) | |
{ for(x=s/2;x<s/2+100*k&&change!=2;x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=5; | |
next=x+j; | |
//if(x+2>568) | |
w=rand()%50; | |
Wiggle1(circularArray(x,0),circularArray(x,1),circularArray(next,0),circularArray(next,1),w); | |
delay(70);//incr++; | |
} | |
for(x=s-1;x>s-100*k&&change!=2;x-=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=5; | |
next=x-j; | |
//if(x+2>568) | |
w=rand()%50; | |
Wiggle1(circularArray(x,0),circularArray(x,1),circularArray(next,0),circularArray(next,1),w); | |
delay(70);//incr++; | |
} k++;} | |
//handle = (HANDLE) _beginthread( scene3thread8,0,&innr); | |
} | |
void scene12thread10(void *param10) //******************************* THREAD 10 ********************************************** | |
{ | |
int incr=*((int*)param10);int i=0,rr; | |
while(ex!=1) | |
{rr=rand()%16; | |
color=rr;delay(100); | |
i++; | |
}} | |
/* **************************************************************************************************************************************************************** | |
********************************************************** SCENE 14 ********************************************************************************************** */ | |
void scene14() | |
{ | |
HANDLE handle; | |
int r,i,limit=26,val;//float val=0.097; | |
char eclipse[26]={'Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M'}; | |
// val=maxx | |
setcolor(WHITE);ex=0; | |
settextstyle(2,4,20); | |
for(i=0;i<limit;i++) | |
{r=rand()%26; | |
bgiout<<eclipse[r]; | |
outstreamxy(maxx/2+133,maxy/2); | |
delay(50); | |
cleardevice(); | |
} | |
bgiout<<"E"; | |
outstreamxy(maxx/2+133,maxy/2); | |
delay(10); | |
for(i=0;i<limit;i++) | |
{r=rand()%26; | |
bgiout<<"E"<<" "<<eclipse[r]; | |
outstreamxy(maxx/2+133,maxy/2); | |
delay(50); | |
cleardevice(); | |
} | |
bgiout<<"E"<<" "<<"C"; | |
outstreamxy(maxx/2+133,maxy/2); | |
delay(10); | |
for(i=0;i<limit;i++) | |
{r=rand()%26; | |
bgiout<<"E"<<" "<<"C"<<" "<<eclipse[r]; | |
outstreamxy(maxx/2+133,maxy/2); | |
delay(50); | |
cleardevice(); | |
} | |
bgiout<<"E"<<" "<<"C"<<" "<<"L"; | |
outstreamxy(maxx/2+133,maxy/2); | |
delay(10); | |
for(i=0;i<limit;i++) | |
{r=rand()%26; | |
bgiout<<"E"<<" "<<"C"<<" "<<"L"<<" "<<eclipse[r]; | |
outstreamxy(maxx/2+133,maxy/2); | |
delay(50); | |
cleardevice(); | |
} | |
bgiout<<"E"<<" "<<"C"<<" "<<"L"<<" "<<"I"; | |
outstreamxy(maxx/2+133,maxy/2); | |
delay(10); | |
for(i=0;i<limit;i++) | |
{r=rand()%26; | |
bgiout<<"E"<<" "<<"C"<<" "<<"L"<<" "<<"I"<<" "<<eclipse[r]; | |
outstreamxy(maxx/2+133,maxy/2); | |
delay(50); | |
cleardevice(); | |
} | |
bgiout<<"E"<<" "<<"C"<<" "<<"L"<<" "<<"I"<<" "<<"P"; | |
outstreamxy(maxx/2+133,maxy/2); | |
delay(10); | |
for(i=0;i<limit;i++) | |
{r=rand()%26; | |
bgiout<<"E"<<" "<<"C"<<" "<<"L"<<" "<<"I"<<" "<<"P"<<" "<<eclipse[r]; | |
outstreamxy(maxx/2+133,maxy/2); | |
delay(50); | |
cleardevice(); | |
} | |
bgiout<<"E"<<" "<<"C"<<" "<<"L"<<" "<<"I"<<" "<<"P"<<" "<<"S"; | |
outstreamxy(maxx/2+133,maxy/2); | |
delay(10); | |
for(i=0;i<limit;i++) | |
{r=rand()%26; | |
bgiout<<"E"<<" "<<"C"<<" "<<"L"<<" "<<"I"<<" "<<"P"<<" "<<"S"<<" "<<eclipse[r]; | |
outstreamxy(maxx/2+133,maxy/2); | |
delay(50); | |
cleardevice(); | |
} ex=1; | |
bgiout<<"E"<<" "<<"C"<<" "<<"L"<<" "<<"I"<<" "<<"P"<<" "<<"S"<<" "<<"E"; | |
outstreamxy(maxx/2+133,maxy/2); | |
settextstyle(7,4,2); | |
delay(200); | |
bgiout<<"Jubin Jose.. PixVfx"; | |
outstreamxy(maxx/2+200,maxy/2+20); | |
handle = (HANDLE) _beginthread( scene10thread8,0,&val); | |
handle = (HANDLE) _beginthread( scene10thread7,0,&val); | |
delay(10); | |
// line(maxx/2,0,maxx/2,maxy); | |
/*while(1) | |
{ | |
int ry=rand()%30; | |
int rr=rand()%2; | |
if(rr==1)ry*=-1; | |
for(i=0;i<=maxx;i+=100) | |
{Wiggle(i,maxy/2+ry-57,i+100,maxy/2+ry-57,200);} | |
delay(100); | |
}*/ | |
} | |
/******************************************************************************************************************************************** | |
*************************************************************** COMMON FUNCTION DEFINITIONS *******************************************************************************************/ | |
//******************************************************************DRAWING FUNCTIONS: ********************************************* | |
void drawcCircle(int xc,int yc,int r) | |
{int j,x,k=0,y,p,w,next; | |
//initwindow( 640 , 480 , "WinBGIm" ); | |
x=0; | |
y=r; | |
p=3-(2*r); | |
for(x=0;x<=y;x++) | |
{ | |
if (p<0) | |
{ | |
y=y; | |
p=(p+(4*x)+6); | |
} | |
else | |
{ | |
y=y-1; | |
p=p+((4*(x-y)+10)); | |
} | |
a[k][0]=xc+x;a[k][1]=yc-y; | |
a[1415-k][0]=xc-x;a[1415-k][1]=yc-y; | |
a[707-k][0]=xc+x;a[707-k][1]=yc+y; | |
a[708+k][0]=xc-x;a[708+k][1]=yc+y; | |
a[353-k][0]=xc+y;a[353-k][1]=yc-x; | |
a[1062+k][0]=xc-y;a[1062+k][1]=yc-x; | |
a[354+k][0]=xc+y;a[354+k][1]=yc+x; | |
a[1061-k][0]=xc-y;a[1061-k][1]=yc+x; | |
k++; | |
//bgiout <<k; | |
// outstreamxy( 0 , 15 ); | |
} | |
//color=8; | |
for( int i=0;i<2;i++) | |
{ | |
for(x=0;x<=s+1;x++) | |
{ //setcolor(1); | |
putpixel(circularArray(x,0),circularArray(x,1),color); | |
delay(5); | |
}color=15;} | |
/* **********TO DRAW FULL WIGGLE CIRCLE************* | |
for(x=0;!kbhit();x+=j) | |
{ | |
// putpixel(a[x][0],a[x][1],8-j); | |
j=5; | |
next=x+j; | |
//if(x+2>568) | |
w=rand()%100; | |
Wiggle(a[x%568][0],a[x%568][1],a[next%568][0],a[next%568][1],w); | |
delay(100); | |
} */ | |
} | |
void Wiggle(int x1,int y1,int x2,int y2,double d) | |
{ double m,c,c1; | |
int mx,my,p,q,p1,q1; | |
// while( !kbhit() ) | |
// { | |
//x1++; | |
//x2++; | |
// y1+=2; | |
// y2-=2; | |
if(y2-y1==0) | |
m=x1-x2; | |
else | |
m=(x1-x2)/(y2-y1); | |
mx=int((x1+x2)/2); | |
my=int((y1+y2)/2); | |
c=d*d-mx*mx-m*m*mx*mx; | |
c1=c/(1+m*m); | |
p=int(sqrt(c1+mx*mx)+mx); | |
p1=int(mx-sqrt(c1+mx*mx)); | |
// bgiout<<p<<" "<<p1; | |
// outstreamxy(100, 100); | |
q=int(m*(p-mx)+my); | |
q1=int(m*(p1-mx)+my); | |
setcolor(WHITE); | |
/* line(x1,y1,x2,y2); | |
line(x1,y1,p,q); | |
line(x2,y2,p,q); | |
line(x1,y1,p1,q1); | |
line(x2,y2,p1,q1); */ | |
// delay(50); | |
// cleardevice(); | |
switch(cas) | |
{ case 1: | |
bezierCurve(x1,y1,p,q,x2,y2);cas=2;break; | |
case 2: | |
bezierCurve(x1,y1,p1,q1,x2,y2);cas=1;break; | |
} | |
}//} | |
void bezierCurve(int p1x,int p1y,int p2x,int p2y,int p3x,int p3y) | |
{ | |
int i,j,e,itr=30; | |
// int b[200]; | |
double a[100][2],mx,my,pax,pay,pbx,pby; | |
a[0][0]=p1x; | |
a[0][1]=p1y; | |
a[1][0]=p2x; | |
a[1][1]=p2y; | |
a[2][0]=p3x; | |
a[2][1]=p3y; | |
for(i=0;i<=itr;i++) | |
{ | |
pax=a[0][0]; | |
pay=a[0][1]; | |
for(j=0;j<=i+1;j++) | |
{ | |
pbx=a[j+1][0]; | |
pby=a[j+1][1]; | |
mx=(pax+pbx)/2; | |
my=(pay+pby)/2; | |
a[j+1][0]=mx; | |
a[j+1][1]=my; | |
pax=pbx; | |
pay=pby; | |
} | |
a[j+1][0]=pbx; | |
a[j+1][1]=pby; | |
} | |
int k=0; | |
e=itr+4; | |
/* for(i=0;i<=e;i++) | |
{ | |
for(j=0;j<2;j++) | |
{ | |
b[k]=int(a[i][j]); | |
k++; | |
} | |
} | |
/* for(i=0;i<2*e;i++) | |
{ | |
// bgiout <<b[i]; | |
// outstreamxy(100, 100); | |
getch();cleardevice(); | |
} | |
*/ | |
// drawpoly(e,b); | |
if(change==1) | |
setcolor(GREEN); | |
if(change==10) | |
setcolor(7); | |
else | |
setcolor(WHITE); | |
for(i=0;i<e-1;i++) | |
{line(int(a[i][0]),int(a[i][1]),int(a[i+1][0]),int(a[i+1][1])); | |
//if(change==11) | |
//delay(1); | |
}} | |
void boxer(int spx, int spy, int length, int breadth, int skip, int option) | |
{ | |
int l1=0,random,i=0,nsx=spx,nsy=spy,cas=1,k=0,fx,fy,sx,sy; | |
long int dist1=0,dist2=0; | |
switch(option) | |
{ | |
/*************************************************** CASE 1 ************************************************************************/ | |
case 1: | |
while(k<4) | |
{ | |
switch(cas) | |
{ | |
case 1: while(l1<=(3*length/4)) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
//bgiout <<ar[i-1][0]<<" "<<ar[i-1][1]<<" "<<random<<" "<<i ; | |
// outstreamxy( 0 , 15 );delay(1000); | |
//cleardevice(); | |
nsy=nsy+skip; | |
l1=l1+skip; | |
} | |
cas=2; | |
break; | |
case 2: while(l1<=length) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
nsy=nsy+skip; | |
l1=l1+skip; | |
} | |
cas=3; | |
break; | |
case 3: | |
while(l1>length) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
nsy=nsy-skip; | |
l1=l1-skip; | |
} | |
cas=4;break; | |
case 4: | |
while(l1>=0) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
nsy=nsy-skip; | |
l1=l1-skip; | |
}break; | |
}k++;} | |
for(int j=0;j<i-1;j++) | |
{ | |
// line(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1]); | |
dist1=(maxx/2-ar[j+1][0])*(maxx/2-ar[j+1][0]); | |
dist2=(maxy/2-ar[j+1][1])*(maxy/2-ar[j+1][1]); | |
dist2=dist2+dist1; | |
//bgiout <<dist2; | |
dist1=sqrt(dist2); | |
// outstreamxy( 0 , 15 ); | |
if(dist1<250) | |
{ | |
Wiggle(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1],10); | |
delay(1);} | |
}break; | |
/*************************************************** CASE 2 ************************************************************************/ | |
case 2: | |
while(k<4) | |
{ | |
switch(cas) | |
{ | |
case 1: while(l1<=(3*length/4)) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
//bgiout <<ar[i-1][0]<<" "<<ar[i-1][1]<<" "<<random<<" "<<i ; | |
// outstreamxy( 0 , 15 );delay(1000); | |
//cleardevice(); | |
nsy=nsy-skip; | |
l1=l1+skip; | |
} | |
cas=2; | |
break; | |
case 2: while(l1<=length) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
nsy=nsy-skip; | |
l1=l1+skip; | |
} | |
cas=3; | |
break; | |
case 3: | |
while(l1>length) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
nsy=nsy+skip; | |
l1=l1-skip; | |
} | |
cas=4;break; | |
case 4: | |
while(l1>=0) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
nsy=nsy+skip; | |
l1=l1-skip; | |
}break; | |
}k++;} | |
for(int j=0;j<i-1;j++) | |
{ | |
// line(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1]); | |
dist1=(maxx/2-ar[j+1][0])*(maxx/2-ar[j+1][0]); | |
dist2=(maxy/2-ar[j+1][1])*(maxy/2-ar[j+1][1]); | |
dist2=dist2+dist1; | |
//bgiout <<dist2; | |
dist1=sqrt(dist2); | |
// outstreamxy( 0 , 15 ); | |
if(dist1<250) | |
{ | |
Wiggle(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1],10); | |
delay(1);} | |
}break; | |
/*************************************************** CASE 3 ************************************************************************/ | |
case 3: | |
while(k<4) | |
{ | |
switch(cas) | |
{ | |
case 1: while(l1<=(3*length/4)) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
//bgiout <<ar[i-1][0]<<" "<<ar[i-1][1]<<" "<<random<<" "<<i ; | |
// outstreamxy( 0 , 15 );delay(1000); | |
//cleardevice(); | |
nsy=nsy+skip; | |
l1=l1+skip; | |
} | |
cas=2; | |
break; | |
case 2: while(l1<=length) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
nsy=nsy+skip; | |
l1=l1+skip; | |
} | |
cas=3; | |
break; | |
case 3: | |
while(l1>length) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
nsy=nsy-skip; | |
l1=l1-skip; | |
} | |
cas=4;break; | |
case 4: | |
while(l1>=0) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
nsy=nsy-skip; | |
l1=l1-skip; | |
}break; | |
}k++;} | |
for(int j=0;j<i-1;j++) | |
{ | |
// line(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1]); | |
dist1=(maxx/2-ar[j+1][0])*(maxx/2-ar[j+1][0]); | |
dist2=(maxy/2-ar[j+1][1])*(maxy/2-ar[j+1][1]); | |
dist2=dist2+dist1; | |
//bgiout <<dist2; | |
dist1=sqrt(dist2); | |
// outstreamxy( 0 , 15 ); | |
if(dist1<250) | |
{ | |
Wiggle(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1],10); | |
delay(1);} | |
}break; | |
/*************************************************** CASE 4 ************************************************************************/ | |
case 4: | |
while(k<4) | |
{ | |
switch(cas) | |
{ | |
case 1: while(l1<=(3*length/4)) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
//bgiout <<ar[i-1][0]<<" "<<ar[i-1][1]<<" "<<random<<" "<<i ; | |
// outstreamxy( 0 , 15 );delay(1000); | |
//cleardevice(); | |
nsy=nsy-skip; | |
l1=l1+skip; | |
} | |
cas=2; | |
break; | |
case 2: while(l1<=length) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
nsy=nsy-skip; | |
l1=l1+skip; | |
} | |
cas=3; | |
break; | |
case 3: | |
while(l1>length) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
nsy=nsy+skip; | |
l1=l1-skip; | |
} | |
cas=4;break; | |
case 4: | |
while(l1>=0) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
nsy=nsy+skip; | |
l1=l1-skip; | |
}break; | |
}k++;} | |
for(int j=0;j<i-1;j++) | |
{ | |
// line(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1]); | |
dist1=(maxx/2-ar[j+1][0])*(maxx/2-ar[j+1][0]); | |
dist2=(maxy/2-ar[j+1][1])*(maxy/2-ar[j+1][1]); | |
dist2=dist2+dist1; | |
//bgiout <<dist2; | |
dist1=sqrt(dist2); | |
// outstreamxy( 0 , 15 ); | |
if(dist1<250) | |
{ | |
Wiggle(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1],10); | |
//delay(100); | |
} | |
}break;} | |
} | |
void grains(int thickness) //****************************************************** GRAINS *************************************************** | |
{ | |
int i,px=0,py=0,r,r1=1,j,k=0,l=0; | |
while(l<3) | |
{ | |
// setfillstyle(1,WHITE); | |
// floodfill(maxx/2,maxy/2,10); | |
while(py<maxy) | |
{ | |
r=rand()%20; | |
for(i=0;i<maxx;i+=r+1+j) | |
{ r1=rand()%5; | |
for(j=0;j<r1+1;j++) | |
{putpixel(px+i+j,py,WHITE); | |
} | |
//px+=j; | |
// delay(10); | |
}py++;px=0; | |
}px=0;py=0;k++; | |
if(k==thickness){ cleardevice();k=0;l++;} | |
}} | |
int dist(int a,int b) | |
{ | |
int d,d1,d2; | |
d1=maxx/2-a; | |
d1*=d1; | |
d2=maxy/2-b; | |
d2*=d2; | |
d=sqrt(d1+d2); | |
return d; | |
} | |
//************************************************************* REPEATING.. DonT CAre..***************************************************************** | |
void Wiggle1(int x1,int y1,int x2,int y2,double d) | |
{ double m,c,c1; | |
int mx,my,p,q,p1,q1; | |
// while( !kbhit() ) | |
// { | |
//x1++; | |
//x2++; | |
// y1+=2; | |
// y2-=2; | |
if(y2-y1==0) | |
m=x1-x2; | |
else | |
m=(x1-x2)/(y2-y1); | |
mx=int((x1+x2)/2); | |
my=int((y1+y2)/2); | |
c=d*d-mx*mx-m*m*mx*mx; | |
c1=c/(1+m*m); | |
p=int(sqrt(c1+mx*mx)+mx); | |
p1=int(mx-sqrt(c1+mx*mx)); | |
// bgiout<<p<<" "<<p1; | |
// outstreamxy(100, 100); | |
q=int(m*(p-mx)+my); | |
q1=int(m*(p1-mx)+my); | |
setcolor(WHITE); | |
/* line(x1,y1,x2,y2); | |
line(x1,y1,p,q); | |
line(x2,y2,p,q); | |
line(x1,y1,p1,q1); | |
line(x2,y2,p1,q1); */ | |
// delay(50); | |
// cleardevice(); | |
switch(cas) | |
{ case 1: | |
bezierCurve1(x1,y1,p,q,x2,y2);cas=2;break; | |
case 2: | |
bezierCurve1(x1,y1,p1,q1,x2,y2);cas=1;break; | |
} | |
}//} | |
void bezierCurve1(int p1x,int p1y,int p2x,int p2y,int p3x,int p3y) | |
{ | |
int i,j,e,itr=30; | |
// int b[200]; | |
double a[100][2],mx,my,pax,pay,pbx,pby; | |
a[0][0]=p1x; | |
a[0][1]=p1y; | |
a[1][0]=p2x; | |
a[1][1]=p2y; | |
a[2][0]=p3x; | |
a[2][1]=p3y; | |
for(i=0;i<=itr;i++) | |
{ | |
pax=a[0][0]; | |
pay=a[0][1]; | |
for(j=0;j<=i+1;j++) | |
{ | |
pbx=a[j+1][0]; | |
pby=a[j+1][1]; | |
mx=(pax+pbx)/2; | |
my=(pay+pby)/2; | |
a[j+1][0]=mx; | |
a[j+1][1]=my; | |
pax=pbx; | |
pay=pby; | |
} | |
a[j+1][0]=pbx; | |
a[j+1][1]=pby; | |
} | |
int k=0; | |
e=itr+4; | |
/* for(i=0;i<=e;i++) | |
{ | |
for(j=0;j<2;j++) | |
{ | |
b[k]=int(a[i][j]); | |
k++; | |
} | |
} | |
/* for(i=0;i<2*e;i++) | |
{ | |
// bgiout <<b[i]; | |
// outstreamxy(100, 100); | |
getch();cleardevice(); | |
} | |
*/ | |
// drawpoly(e,b); | |
setcolor(color); | |
for(i=0;i<e-1;i++) | |
{line(int(a[i][0]),int(a[i][1]),int(a[i+1][0]),int(a[i+1][1])); | |
//if(change==11) | |
//delay(1); | |
}} | |
int circularArray(int p1,int p2) | |
{ | |
int j; | |
// bgiout <<p1<<" "<<p2; | |
// outstreamxy( 0 , 15 ); | |
if(p1<0) | |
{j=(s-(-1*p1)%s); | |
return a[j][p2];} | |
else | |
{j=(p1%s)-1; | |
return a[j][p2];} | |
} | |
void boxer1(int spx, int spy, int length, int breadth, int skip, int option) | |
{ | |
int l1=0,random,i=0,nsx=spx,nsy=spy,cas=1,k=0,fx,fy,sx,sy; | |
long int dist1=0,dist2=0; | |
switch(option) | |
{ | |
/*************************************************** CASE 1 ************************************************************************/ | |
case 1: | |
while(k<4) | |
{ | |
switch(cas) | |
{ | |
case 1: while(l1<=(3*length/4)) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
//bgiout <<ar[i-1][0]<<" "<<ar[i-1][1]<<" "<<random<<" "<<i ; | |
// outstreamxy( 0 , 15 );delay(1000); | |
//cleardevice(); | |
nsy=nsy+skip; | |
l1=l1+skip; | |
} | |
cas=2; | |
break; | |
case 2: while(l1<=length) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
nsy=nsy+skip; | |
l1=l1+skip; | |
} | |
cas=3; | |
break; | |
case 3: | |
while(l1>length) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
nsy=nsy-skip; | |
l1=l1-skip; | |
} | |
cas=4;break; | |
case 4: | |
while(l1>=0) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
nsy=nsy-skip; | |
l1=l1-skip; | |
}break; | |
}k++;} | |
for(int j=0;j<i-1;j++) | |
{ | |
// line(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1]); | |
dist1=(maxx/2-ar[j+1][0])*(maxx/2-ar[j+1][0]); | |
dist2=(maxy/2-ar[j+1][1])*(maxy/2-ar[j+1][1]); | |
dist2=dist2+dist1; | |
//bgiout <<dist2; | |
dist1=sqrt(dist2); | |
// outstreamxy( 0 , 15 ); | |
if(dist1<250) | |
{ | |
Wiggle1(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1],10); | |
delay(1);} | |
}break; | |
/*************************************************** CASE 2 ************************************************************************/ | |
case 2: | |
while(k<4) | |
{ | |
switch(cas) | |
{ | |
case 1: while(l1<=(3*length/4)) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
//bgiout <<ar[i-1][0]<<" "<<ar[i-1][1]<<" "<<random<<" "<<i ; | |
// outstreamxy( 0 , 15 );delay(1000); | |
//cleardevice(); | |
nsy=nsy-skip; | |
l1=l1+skip; | |
} | |
cas=2; | |
break; | |
case 2: while(l1<=length) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
nsy=nsy-skip; | |
l1=l1+skip; | |
} | |
cas=3; | |
break; | |
case 3: | |
while(l1>length) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
nsy=nsy+skip; | |
l1=l1-skip; | |
} | |
cas=4;break; | |
case 4: | |
while(l1>=0) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
nsy=nsy+skip; | |
l1=l1-skip; | |
}break; | |
}k++;} | |
for(int j=0;j<i-1;j++) | |
{ | |
// line(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1]); | |
dist1=(maxx/2-ar[j+1][0])*(maxx/2-ar[j+1][0]); | |
dist2=(maxy/2-ar[j+1][1])*(maxy/2-ar[j+1][1]); | |
dist2=dist2+dist1; | |
//bgiout <<dist2; | |
dist1=sqrt(dist2); | |
// outstreamxy( 0 , 15 ); | |
if(dist1<250) | |
{ | |
Wiggle1(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1],10); | |
delay(1);} | |
}break; | |
/*************************************************** CASE 3 ************************************************************************/ | |
case 3: | |
while(k<4) | |
{ | |
switch(cas) | |
{ | |
case 1: while(l1<=(3*length/4)) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
//bgiout <<ar[i-1][0]<<" "<<ar[i-1][1]<<" "<<random<<" "<<i ; | |
// outstreamxy( 0 , 15 );delay(1000); | |
//cleardevice(); | |
nsy=nsy+skip; | |
l1=l1+skip; | |
} | |
cas=2; | |
break; | |
case 2: while(l1<=length) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
nsy=nsy+skip; | |
l1=l1+skip; | |
} | |
cas=3; | |
break; | |
case 3: | |
while(l1>length) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
nsy=nsy-skip; | |
l1=l1-skip; | |
} | |
cas=4;break; | |
case 4: | |
while(l1>=0) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
nsy=nsy-skip; | |
l1=l1-skip; | |
}break; | |
}k++;} | |
for(int j=0;j<i-1;j++) | |
{ | |
// line(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1]); | |
dist1=(maxx/2-ar[j+1][0])*(maxx/2-ar[j+1][0]); | |
dist2=(maxy/2-ar[j+1][1])*(maxy/2-ar[j+1][1]); | |
dist2=dist2+dist1; | |
//bgiout <<dist2; | |
dist1=sqrt(dist2); | |
// outstreamxy( 0 , 15 ); | |
if(dist1<250) | |
{ | |
Wiggle1(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1],10); | |
delay(1);} | |
}break; | |
/*************************************************** CASE 4 ************************************************************************/ | |
case 4: | |
while(k<4) | |
{ | |
switch(cas) | |
{ | |
case 1: while(l1<=(3*length/4)) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx+skip; | |
nsx=nsx+skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
//bgiout <<ar[i-1][0]<<" "<<ar[i-1][1]<<" "<<random<<" "<<i ; | |
// outstreamxy( 0 , 15 );delay(1000); | |
//cleardevice(); | |
nsy=nsy-skip; | |
l1=l1+skip; | |
} | |
cas=2; | |
break; | |
case 2: while(l1<=length) | |
{ | |
random=rand()%3; | |
switch(random+1) | |
{ | |
case 1: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy-skip; | |
break; | |
case 3: ar[i][0]=nsx; | |
ar[i][1]=nsy-skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy-skip; | |
break; | |
} | |
i++; | |
nsy=nsy-skip; | |
l1=l1+skip; | |
} | |
cas=3; | |
break; | |
case 3: | |
while(l1>length) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
nsy=nsy+skip; | |
l1=l1-skip; | |
} | |
cas=4;break; | |
case 4: | |
while(l1>=0) | |
{ | |
random=rand()%2; | |
switch(random+1) | |
{ | |
case 3: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1-skip; | |
ar[i][1]=nsy+skip; | |
break; | |
case 1: ar[i][0]=nsx; | |
ar[i][1]=nsy+skip; | |
break; | |
case 2: ar[i][0]=nsx-skip; | |
nsx=nsx-skip; | |
// b1=b1+skip; | |
ar[i][1]=nsy+skip; | |
break; | |
} | |
i++; | |
nsy=nsy+skip; | |
l1=l1-skip; | |
}break; | |
}k++;} | |
for(int j=0;j<i-1;j++) | |
{ | |
// line(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1]); | |
dist1=(maxx/2-ar[j+1][0])*(maxx/2-ar[j+1][0]); | |
dist2=(maxy/2-ar[j+1][1])*(maxy/2-ar[j+1][1]); | |
dist2=dist2+dist1; | |
//bgiout <<dist2; | |
dist1=sqrt(dist2); | |
// outstreamxy( 0 , 15 ); | |
if(dist1<250) | |
{ | |
Wiggle1(ar[j][0],ar[j][1],ar[j+1][0],ar[j+1][1],10); | |
//delay(100); | |
} | |
}break;} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment