解题思路:
注意事项:
参考代码:
#include<iostream>
using namespace std;
#include<math.h>//调用数学库函数
//使用三角函数注意事项:
//1、包含头文件
//2、角度转弧度:输入的角度*PI/180 (PI为:acos(-1.0))
//即:输入的角度*acos(-1.0)/180
//此时求出的即为弧度,可直接使用
int main()
{
double l, w, x, y, r, a, v, s;//定义出要输入的各值
l = w = x = y = r = a = v = s = 0;
double journeyx = 0;//定义x方向总路程
double journeyy = 0;//定义y方向总路程
double lx, vx, wy, vy;
while (cin >> l >> w >> x >> y >> r >> a >> v >> s)
{
if (l == 0 && w == 0 && x == 0 && y == 0 && r == 0 && a == 0 && v == 0 && s == 0)break;//满足退出条件时退出
//在x轴方向
lx = l - 2 * r;//变化后的长度
vx = v * cos(a * acos(-1.0) / 180);//变化后的速率
journeyx = fabs(vx * s + x - r);//变化后的路程(距原点)(绝对值)
//在y轴方向
wy = w - 2 * r;
vy = v * sin(a * acos(-1.0) / 180);
journeyy = fabs(vy * s + y - r);
//x轴方向上的坐标
for (; journeyx > lx * 2;)
journeyx -= lx * 2;
if (journeyx > lx)
journeyx = lx - (journeyx - lx);
else if (journeyx <= lx)
journeyx;
//y轴方向上的坐标
for (; journeyy > wy * 2;)
journeyy -= wy * 2;
if (journeyy > wy)
journeyy = wy - (journeyx - wy);
else if (journeyy <= wy)
journeyy;
//最终坐标
journeyx += r;
journeyy += r;
printf("%.2lf %.2lf\n", journeyx, journeyy);
}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复