Algorithm 二维几何推送算法

Algorithm 二维几何推送算法,algorithm,geometry,computational-geometry,Algorithm,Geometry,Computational Geometry,我有一个矩形板,其中有一些不相交的2D形状,如矩形、多边形和更复杂的几何图形,如带有弧/线边的简单形状。 通常它们很紧凑,但对于某些形状,我们可以旋转或平移它们。 如果我们按照给定的方向移动一个几何体,相邻的几何体也应该移动或旋转。看起来第一个几何体推动了第二个几何体。第二个几何体可能会推动其他两个几何体。最后,我们可能会达到另一个稳定状态,否则就没有推进的余地 目前有没有关于这方面的调查? 让我们首先关注简单多边形,凸多边形和非凸多边形。 推动可能是任何方向。 我正在做一些调查,但找不到关于

我有一个矩形板,其中有一些不相交的2D形状,如矩形、多边形和更复杂的几何图形,如带有弧/线边的简单形状。 通常它们很紧凑,但对于某些形状,我们可以旋转或平移它们。 如果我们按照给定的方向移动一个几何体,相邻的几何体也应该移动或旋转。看起来第一个几何体推动了第二个几何体。第二个几何体可能会推动其他两个几何体。最后,我们可能会达到另一个稳定状态,否则就没有推进的余地

目前有没有关于这方面的调查? 让我们首先关注简单多边形,凸多边形和非凸多边形。 推动可能是任何方向。

我正在做一些调查,但找不到关于这个主题的现有论文。 我们能用力学或动力学来模拟它吗?还是纯几何算法

只是一些关键词对于论文搜索也是非常有用的

这与EDA的自动推送概念类似。用户可以移动电路的一个元件(引脚/导线),然后软件自动推送相邻元件,以保持拓扑结构并满足设计规则

我想我可以用力学中的一些概念来计算运动方向,至少: 如果多边形A和多边形B的连接部分是一个点,则按一个方向推动A,然后沿法线方向向B产生力。但原力可能不会产生移动。我们需要把所有的部分都圈起来或者到达边界来检查它能移动多少。
让我们先忽略轮换。

我发布了一个答案,因为我没有足够的声誉发表评论。如果我没有误解这个问题,从几何学上讲,这听起来像是一个碰撞检测问题。必须对几何体应用变换(平移、旋转),并检查此新位置是否与其他几何体重叠。如果是这种情况,您必须对第二个应用另一个转换。碰撞检测是游戏和仿真中的一个重要课题

欢迎来到堆栈溢出。(Not do my homography.com)请展示您在解决此问题时最新的非工作尝试。查看代码的修复通常比阅读其他人的解决方案更有启发性。再见,谢谢。事实上,我正在做一些调查,只是想知道是否有人知道这个问题的当前状态,如果需要的话,做一些数学讨论。在你提供的例子中应该发生什么?你在考虑某种物理模拟吗?到目前为止你的研究结果是什么?分享你的发现。