Algorithm 多边形内移动多边形

Algorithm 多边形内移动多边形,algorithm,Algorithm,我很难找到解决以下问题的算法: 我希望用户能够将矩形(可以是任何类型的多边形)捕捉到多边形的4个角,以便它尽可能远离多边形 我目前正在尝试的是: 允许用户获取对象 找到多边形上与矩形最近的垂直 找到矩形上距离多边形最近的垂直度的最远垂直度 使用平面查找第一个交点,该交点的矩形点与多边形点的距离最远 根据最远点是否在x/y坐标中更远,使用相应的x/y平面上下移动 不断重复上述步骤,直到所有东西都在里面 只要封闭多边形是凸的,你就可以把它写成一个线性规划问题,然后应用它来寻找答案。你放进去的小多边

我很难找到解决以下问题的算法:

我希望用户能够将矩形(可以是任何类型的多边形)捕捉到多边形的4个角,以便它尽可能远离多边形

我目前正在尝试的是:

  • 允许用户获取对象
  • 找到多边形上与矩形最近的垂直
  • 找到矩形上距离多边形最近的垂直度的最远垂直度
  • 使用平面查找第一个交点,该交点的矩形点与多边形点的距离最远
  • 根据最远点是否在x/y坐标中更远,使用相应的x/y平面上下移动
  • 不断重复上述步骤,直到所有东西都在里面

  • 只要封闭多边形是凸的,你就可以把它写成一个线性规划问题,然后应用它来寻找答案。你放进去的小多边形可以是你想要的那样复杂

    不等式是确保较小多边形的每个顶点位于较大多边形内部的所有条件。在这里,你不必很聪明,不起作用的额外不平等不会带来任何代价

    要优化的函数构造如下。查看您试图接近的顶点的内角。在该点绘制坐标系,其中一个轴直接指向多边形(称该轴为
    y
    ),另一个轴与第一个轴成直角(称该轴为
    x
    )。您希望最小化所放入多边形上最近顶点的
    y
    值。(把你放在中间的多边形放进去,搜索最近的顶点。用这个。


    您找到的解决方案是将两个顶点尽可能紧密地放在一起,前提是较小的多边形必须位于较大多边形的内部。

    “(可以是任何类型的多边形)”该语句将一个微不足道的问题(凸四边形中的矩形)转化为一个(几乎)不可能的问题..因此我认为您需要进一步细化您的需求。也许我们可以假设它是一个简单的矩形,现在我不认为我需要说明的许多可能的形状将比矩形困难得多。您的示例的解决方案是两个步骤。1)确定矩形的哪些顶点接触四边形的边(一般情况下是两个顶点接触两条边)。2) 这导致了两个方程,其中一个点(x,y)需要在一条线上。结果是两个变量中的两个方程,可以用代数方法求解。对不起,我不能真正理解你提供的解。我需要矩形尽可能靠近多边形中的每个垂直面。请参阅。您已经描述了您的解决方案,但不是您试图解决的问题。您好@b很抱歉,我无法完全理解为此需要采取的步骤。它们是否在以下方面:1。将较小的多边形放置在较大多边形的中心。2.在较小的多边形上找到距离我们所在的垂直最近的垂直。3.将小多边形移动到垂直方向并旋转,直到我们完全进入?做了更多的工作,我有一些工作,但它非常粗糙。1.将较小的多边形移动到较大多边形的中间。2.基于较小多边形的最近垂直,在较大多边形上将较小多边形移动到用户的最近垂直。3.使用循环将多边形向右/向左或向上/向下移动,直到所有顶点都位于内部。(这不起作用,我们不在正常的x/y方向)@WonkaBear我不知道你可以旋转。我是说把小的放在大的中间。找到最近的顶点。将较小值的条件写成一系列线性方程组。使用单纯形法找到一个解决方案,使最近的顶点尽可能靠近要捕捉的顶点。