题意:一个高H,宽W的地图,还有一个同样地图,按比例缩小,右下角在地图中的位置是
(x,y)
,长宽缩小到原来的s%,逆时针旋转r度
如图:
AM=hs100AN=ws100
AB=hs100∗bh=sb100
同理
AC=sa100
AB−→−=(−sb100sin(r),sb100cos(r))
AC−→−=(sa100cos(r),sa100sin(r))
AP−→−=(−sb100sin(r)+sa100cos(r),sb100cos(r)+sa100sin(r))
列方程组
{x−sb100sin(r)+sa100cos(r)=ay+sb100cos(r)+sa100sin(r)=b
求解出a,b即可。
using namespace std;
int main()
{
double w,h,x,y,s,r;
while(scanf("%lf%lf%lf%lf%lf%lf",&w,&h,&x,&y,&s,&r)&&(w+h+x+y+s+r)!=0) {
r=r/180.0*pi;
// cout << r << endl;
double x1=1.0-s/100*cos(r);
double x2=s/100*sin(r);
double x4=-s/100*sin(r);
double x5=1-s/100*cos(r);
double px=(x*x5-x2*y)/(x1*x5-x2*x4);
double py=(x1*y-x*x4)/(x1*x5-x2*x4);
printf("%.2f %.2f\n",px,py);
}
return 0;
}