#AEAI04001. 相机目标点到机械臂基座
相机目标点到机械臂基座
题目描述
自动化科协具身智能部在调试桌面机械臂时,相机会先在自己的二维坐标系中给出目标点。已知相机坐标系相对于机械臂基座坐标系的平移 (tx, ty) 和逆时针旋转角 theta,请把每个相机坐标点转换到基座坐标系。
对相机点 (x, y),转换公式为:
X = cos(theta) * x - sin(theta) * y + tx
Y = sin(theta) * x + cos(theta) * y + ty
其中 theta 的单位为度。
输入格式
第一行输入三个实数 tx ty theta。
第二行输入整数 N。
接下来 N 行,每行输入一个相机坐标点 x y。
输出格式
输出 N 行。每行输出转换后的基座坐标 X Y,保留 6 位小数。
判定规则
使用标准输出比较。若结果绝对值小于 5e-7,按 0.000000 输出。角度按度转弧度后参与三角函数计算。
数据范围与测试提示
- 正式测试会覆盖样例没有出现的边界输入,请不要依赖样例规模或样例顺序写特判。
- 输出只包含题目要求的字段,不要输出调试信息;浮点结果按题面要求保留 6 位小数。
- 点数可能取到很小或较大的规模,坐标、平移量和角度都可能为负数,角度也可能落在 0、90、180、270 等特殊位置。
- 旋转后非常接近 0 的结果需要按判定规则输出为
0.000000,隐藏数据会检查负零、整十角度和大坐标叠加后的精度。 - 隐藏数据会检查
abs(value) < 5e-7的归零、90/180/360 度旋转以及负坐标组合。
样例
输入样例 1
10 20 0
2
1 2
-10 -20
输出样例 1
11.000000 22.000000
0.000000 0.000000
输入样例 2
0 0 90
2
1 0
0 1
输出样例 2
0.000000 1.000000
-1.000000 0.000000