一個(gè)畫(huà)拋物線的程序

字號(hào):

/*這是一個(gè)畫(huà)拋物線的程序*/
    #include
    #define BKC 9
    #define COLOR 8 /* 拋物線顏色*/
    #define G 9.856
    main()
    {int gd=DETECT,gm,p=1,i;
    double Vx,Vy,x,y,x1,y1,t;
    char ch;
    initgraph(&gd,&gm,"");
    while(p==1) /*主循環(huán)體*/
    {
    setbkcolor(BKC);
    setcolor(14);
    setlinestyle(0,0,1);
    rectangle(0,0,639,479); /*畫(huà)邊框*/
    line(20,460,639,460); /*畫(huà)橫坐標(biāo)*/
    line(20,0,20,460); /*畫(huà)縱坐標(biāo)*/
    outtextxy(8,467,"0");
    setlinestyle(1,0,1);
    setcolor(15);
    for(i=20;i<640;i+=20)line(i,460,i,0);
    for(i=460;i>0;i-=20)line(20,i,640,i);
    gotoxy(1,1);
    printf("Please Enter Vx:" );
    scanf("%lf",&Vx);
    printf("Please Enter Vy:");
    scanf("%lf",&Vy);
    for(t=0.0;;t+=0.00002)
    {
    x=Vx*t;
    y=Vy*t-0.5*G*t*t;
    x1=2*x+20; /*畫(huà)筆定位在用戶坐標(biāo)原點(diǎn) (20,460) */
    y1=460-y*2;
    if(y1>460.0||x1>640.0) break;
    putpixel(x1,y1,COLOR);
    }
    setcolor(12);
    outtextxy(250,8,"Finished! Continue(Y/N)?");
    p=-1;
    while(p==-1)
    {
    ch=getch();
    if(ch=='y'||ch=='Y') { cleardevice();p=1;}
    else if(ch=='n'||ch=='N') p=0;
    else outtextxy(220,200,"ERROR! Please Press 'Y' or 'N'_" );
    }
    }
    closegraph();
    }