2d几何推送算法

问题描述 投票:-2回答:1

我有一个矩形板,其中有一些不相交的2D形状,如矩形,多边形和更复杂的几何形状,如带弧/线边的简单形状。通常它们是紧凑的,但对于某些形状,我们可能能够旋转或平移它们。如果我们根据给定方向移动一个几何体,则还应移动或旋转相邻几何体。看起来第一个几何体推动第二个几何体。第二个几何体可能会推动另外两个几何体。最后,我们可能会达到另一个稳定的状态,或者没有空间推动。

对此有任何调查吗?让我们首先关注简单的多边形,凸面和非凸面。推动可能是任何方向。 example image

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

只是纸张搜索的一些关键字也非常有用。

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

我想我可以在力学中使用一些概念,至少计算移动方向:如果多边形A和多边形B的连通部分是一个点,那么按一个方向推A然后沿法线方向向B产生一个力。但这股力量可能不会产生动作。我们需要循环所有部件或到达边界以检查它可以移动多少。让我们先忽略轮换。

algorithm geometry computational-geometry
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.