tony


私信TA

用户名:a779610882

访问量:17495

签 名:

废物一个。

等  级
排  名 272
经  验 3384
参赛次数 1
文章发表 21
年  龄 20
在职情况 学生
学  校 大连交通大学
专  业 高达的制作和编辑

  自我简介:

别看了反正也没人看

题目分析

具体看代码吧

代码


#include<stdio.h>  
#include<math.h>  
int main()  
{  
    double L,W,x,y,R,a,v,s;  
    double dx,dy;  
    while(scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&L,&W,&x,&y,&R,&a,&v,&s)&&(L+W+x+y+R+a+v+s))  
    {  
        x-=R;    // 把台球看成一个点  
        y-=R;  
        L-=2*R;  
        W-=2*R;  
        a*=acos(0.0)/90.0;   // 把弧度数转化为角度数  
        // dx为x轴方向上的分量  
        dx=fmod(fmod(s*v*cos(a),2*L)+2*L,2*L);  //fmod函数 后面说
        // dy为y轴方向上的分量  
        dy=fmod(fmod(s*v*sin(a),2*W)+2*W,2*W);  
        if(x+dx<=L)      //画个图就差不多 就两个方向上下 左右
            x+=dx;  
        else if(x+dx<=2*L)  
            x=L-(x+dx-L);  
        else  
            x=x+dx-2*L;  
        if(y+dy<=W)  
            y+=dy;  
        else if(y+dy<=2*W)  
            y=W-(y+dy-W);  
        else  
            y=y+dy-2*W;  
        printf("%.2f %.2f\n",x+R,y+R);  
    }  
    return 0;  
}

fmod() 用来对浮点数进行取模(求余),其原型为:
    double fmod (double x);

 QAQ我下回写教程再也不去买西瓜了。。

 

0.0分

0 人评分

  评论区

dx=fmod(fmod(s*v*cos(a),2*L)+2*L,2*L);  关于这段能在讲解一下吗?不太能理解
2017-07-12 03:18:15 | |
a*=acos(0.0)/90.0;   // 把弧度数转化为角度数  
这个不是角度转化为弧度吗?
2017-07-11 17:49:35 | |
  • «
  • 1
  • »