您的位置:首页 > 其它

NYOJ 665 台球碰撞

2013-05-30 23:59 176 查看
 

#include<iostream>

#include<iomanip>

#include <cmath>

using namespace std;

int main()

{

  int t;

  int l, w, r, a, v, s;

  double x, y;

  double pi = acos( -1 );

  double vx, vy;

  while( cin>>l>>w>>x>>y>>r>>a>>v>>s )

 {

  if( l==0 ) break;

  vy=sin( a*pi/180 )*v;

  vx=cos( a*pi/180 )*v;

  t=0;

  while( t!=s )

  {

  x+=vx;

  y+=vy;

  while( (x-r<0) || (x+r>l) || (y-r<0) || (y+r>w) )

    {

     if( x-r<0 )

     {

         x=2*r-x;

          vx=-vx;

     }

     if( x+r>l )

     {

         x=2*l-2*r-x;

         vx=-vx;

     }

     if( y-r<0 )

     {

         y=2*r-y;

          vy =-vy;

     }

     if( y+r>w )

     {

       y=2*w-2*r-y;

       vy =-vy;

     }

    }

   t++;

   }

   cout<<setiosflags(ios::fixed)<<setprecision(2)<<x<<"  ";

   cout<<setiosflags(ios::fixed)<<setprecision(2)<<y<<endl;

 }

return 0;

}

       
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: