解题思路:
注意事项:解析请看这里: https://blog.dotcpp.com/a/63859
参考代码:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
int L, W; // 台球桌长宽
int x, y, R; // 初始球心位置和台球半径
int a, v, s; // 初始角度,速度,经过时间
double resX, resY; // 最终球心位置
while (cin >> L >> W >> x >> y >> R >> a >> v >> s)
{
if (!L) break;
//构造新的台球桌
L -= 2 * R;
W -= 2 * R;
x -= R;
y -= R;
double arc = a * acos(-1) / 180; // 正确的角度转弧度,公式
// 球距离原点的总位移,必须取绝对值
double length = abs(x + v * s * cos(arc));
double width = abs(y + v * s * sin(arc));
// 每移动2L实际坐标没变
while (length > 2 * L ) { length -= 2 * L; }
while (width > 2 * W) { width -= 2 * W; }
if (length <= L) { resX = length + R; }
else { resX = 2 * L - length + R; }
if (width <= W) { resY = width + R; }
else{ resY = 2 * W - width + R;}
cout << fixed << setprecision(2) << resX << " " << resY << endl;
}
return 0;
}
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:687 |
【排队买票】 (C语言代码)浏览:900 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:507 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:586 |
关于C语言变量位置的问题浏览:273 |
数对 (C语言代码)浏览:702 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:509 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:956 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:470 |
整除的尾数 (C语言代码)浏览:814 |