#AEAI03008. 局部点云体素占用统计
局部点云体素占用统计
题目描述
机械臂在桌面附近规划动作时,需要知道局部空间里哪些体素被点云占用。具身智能部把点云裁剪、体素索引和计数合成了一个小任务。
给定 N 个三维点、体素网格原点 (ox, oy, oz)、体素边长 s 和网格尺寸 Nx, Ny, Nz。只统计落在网格范围内的点,输出所有被占用体素的索引和点数。
输入格式
- 第一行输入整数
N。 - 随后
N行,每行输入一个点x y z。 - 接着输入四个浮点数
ox oy oz s。 - 最后一行输入三个整数
Nx Ny Nz。
输出格式
- 第一行输出被占用体素数
K。 - 随后
K行,按(i,j,k)字典序输出i j k count。
判定规则
使用标准输出比较。
- 网格空间范围为
[ox, ox+Nx*s) x [oy, oy+Ny*s) x [oz, oz+Nz*s),下闭上开。 - 落在范围外的点忽略。
- 体素索引使用
floor((coord-origin)/s)计算。 - 同一体素内的点数累加。
样例
输入样例 1
5
0.1 0.1 0.1
0.9 0.9 0.9
1.0 0.0 0.0
2.0 0.0 0.0
-0.1 0 0
0 0 0 1
2 2 2
输出样例 1
2
0 0 0 2
1 0 0 1
样例解释 1
前两个点落入体素 (0,0,0),第三个点落入 (1,0,0);x=2.0 位于上边界,负坐标点在范围外。
输入样例 2
2
5 5 5
-1 -1 -1
0 0 0 1
2 2 2
输出样例 2
0
样例解释 2
两个点都不在网格范围内,因此没有被占用体素。