#AEAI04009. 夹爪开度与接近方向匹配
夹爪开度与接近方向匹配
题目描述
夹爪抓取物体时,需要根据物体宽度预留两侧安全余量,并检查接近方向是否接近物体主轴的法向。给出夹爪开度范围、安全余量和最大角度误差,请逐个判断候选物体是否可抓。
对宽度为 width 的物体,所需开度为 opening = width + 2 * margin。接近方向 approach 必须与 axis + 90 或 axis - 90 中至少一个方向的角度差不超过 max_ang。
输入格式
第一行输入 gmin gmax margin max_ang。
第二行输入候选数量 N。
接下来 N 行,每行输入 id width axis approach。
输出格式
对每个候选按输入顺序输出一行:
- 若开度不在
[gmin, gmax]内,输出id WIDTH; - 否则若接近方向不满足要求,输出
id ANGLE; - 否则输出
id GRASPABLE opening。
opening 保留 6 位小数。
判定规则
使用标准输出比较。开度范围和角度阈值均包含边界;角度差按归一化到 (-180, 180] 后的绝对差计算。检查优先级为 WIDTH 再 ANGLE。
数据范围与测试提示
- 正式测试会覆盖样例没有出现的边界输入,请不要依赖样例规模或样例顺序写特判。
- 输出只包含题目要求的字段,不要输出调试信息;浮点结果按题面要求保留 6 位小数。
- 开度上下界和角度阈值都包含边界;若宽度已不合法,应优先输出宽度错误而不是角度错误。
- 角度差按归一化后的绝对差计算,隐藏数据会覆盖
-180/180附近的接近方向。 - 先判
WIDTH再判ANGLE;角度差要处理180/-180附近的归一化边界。
样例
输入样例 1
1 5 0.5 10
2
1 3 0 90
2 5 0 90
输出样例 1
1 GRASPABLE 4.000000
2 WIDTH
输入样例 2
1 5 0.5 10
1
1 3 0 0
输出样例 2
1 ANGLE