Graphics programming using c
Home
Question Paperz
Java Projectz
ASP Projectz
8086
Data structures
c++
8085
Monday, September 27, 2010
Bouncing Ball
#include<stdio.h> #include<graphics.h> #include<math.h> #define ROUND(a)((int)(a+0.5)) void paraCircle(int,int,int,int); int base=400; int color=15; void parabola() { int xo=70,x=0,yo=base,theta=0; float vh=10.0,vy=80.0; int vhit=0; int y=0; float t; int dly=40; int xmax=getmaxx(); outtextxy(20,50,"Press any key to throw"); paraCircle(xo,yo,10,theta); line(0,base+10,xmax-20,base+10); line(xmax-20,0,xmax-20,base+10); getch(); do { theta=0; paraCircle(xo,yo,10,theta); for(t=1;;t+=.2) { x=ROUND(xo+(vh*t)); y=ROUND(yo-(vy*t)+5*(t*t)); line(0,base+10,xmax-20,base+10); line(xmax-20,0,xmax-20,base+10); paraCircle(x,y,10,theta); delay(dly); cleardevice(); if(x==xmax-30) { vh=-vh; vhit=1; } if(vhit==0) theta+=10; else theta-=10; if(y==base) break; } vy-=5; if(vhit==0) vh-=1; else if(vhit==1) vh+=1; dly-=4; paraCircle(x,y,10,theta); xo=x; }while(vy>0&&vh!=0); line(0,base+10,xmax-20,base+10); line(xmax-20,0,xmax-20,base+10); } void paraCircle(int xc,int yc,int r,int t) { int i,x,y; for(i=0;i<90;i++) { x=xc+ROUND(r*cos(3.1412*(i+t)/180)); y=yc+ROUND(r*sin(3.1412*(i+t)/180)); putpixel(x,y,5); } for(i=90;i<180;i++) { x=xc+ROUND(r*cos(3.1412*(i+t)/180)); y=yc+ROUND(r*sin(3.1412*(i+t)/180)); putpixel(x,y,2); } for(i=180;i<270;i++) { x=xc+ROUND(r*cos(3.1412*(i+t)/180)); y=yc+ROUND(r*sin(3.1412*(i+t)/180)); putpixel(x,y,12); } for(i=270;i<360;i++) { x=xc+ROUND(r*cos(3.1412*(i+t)/180)); y=yc+ROUND(r*sin(3.1412*(i+t)/180)); putpixel(x,y,7); } } int main() { int gd=DETECT,gm=VGAMAX; initgraph(&gd,&gm,"NULL"); parabola(); while(!kbhit()); closegraph(); return 0; }
No comments:
Post a Comment
Newer Post
Older Post
Home
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment