algorithm - body 在某个封闭空间中可以移动的所有可能方向

标签 algorithm 3d 2d computational-geometry

输入: body 和一些封闭空间。主体和空间表示为网格(或 BReps ,如果您愿意)。最初,主体不与空间的边界相交。

问题是找到 body 可以移动的所有可能方向。例如,在下图中, body 只能在(-1,0)到(0,1)方向移动。如果物体有圆形(或球体)表面 - 可以通过一些步骤返回方向(例如,对于下图,输出可以是 (-1,0), (-pi/4,pi/4), ( 0,1),步骤 = 3)。

enter image description here

输出: body 可以移动的方向集。

问题必须在 2d 和 3d 空间中解决。

最佳答案

您想在配置领域工作。基本上根据 body 的形状增加边界的大小,然后将 body 视为点对象。剩下的就是 body 的所有有效位置。当然,如果你的 body 不是圆形并且可以旋转,那么你的构形空间就不再是2D或3D了。它的维度与您 body 的自由度一样多,因此对于可以平移和旋转的刚体而言,维度为 6。

这是机器人运动规划中的一个众所周知的问题。 Google 搜索“配置空间”或“c 空间”以及“运动规划”。

这是卡内基梅隆大学类里面的一组很好的幻灯片: Configuration Space Lecture

关于algorithm - body 在某个封闭空间中可以移动的所有可能方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9829271/

相关文章:

algorithm - 这种找到 N 个数中最大的 K 个的方法的复杂性是什么

image - 确定图片的主色

java - 缩放 3D 对象会产生奇怪的结果

c - 为什么我不能让这个数组更大?

Java 2D ArrayList 和排序

c - 如何高效地使用2D指针而不是2D数组?

algorithm - 根据距离和方向创建坐标

java - Java集合栈数据结构的效率

Javascript 和 Canvas 3D 模型查看器

javascript - 乘以 css 矩阵会导致动画加速