我正在开发一个HTML地图制作工具,我希望为我们的用户提供通过单击区域来快速创建形状的功能,而不是让他们手动定义形状。
首先,让我们看看我们目前正在做什么。用户想要映射区域A。他需要做的是多次单击每个点以定义形状的边界。
我想知道的是是否有一种算法可以允许用户在A区域单击,并确定要放置哪些点以创建近似最优的形状,遵循形状边界 - 基于图像对比度。
我处理这个问题的第一个想法是确定从点击点最远的上、左、下、右四个点。将这四个点设置为我们的起始点。然后对于每个线段,使用新点将其细分,并沿着法向量移动新点,直到它碰到对比度边缘。
当然,这种方法有一些局限性,但以下是我能假设的:
- 形状可以是凸形、凹形等等。 - 对比度应该是黑色对白色,但为了处理可能的演变,对比度门槛应该是可配置的。 - 在上面考虑的示例中,显然应该限制细分深度,以避免卡死用户的机器。
如果您知道这样的算法,那就太好了。
首先,让我们看看我们目前正在做什么。用户想要映射区域A。他需要做的是多次单击每个点以定义形状的边界。
我想知道的是是否有一种算法可以允许用户在A区域单击,并确定要放置哪些点以创建近似最优的形状,遵循形状边界 - 基于图像对比度。
我处理这个问题的第一个想法是确定从点击点最远的上、左、下、右四个点。将这四个点设置为我们的起始点。然后对于每个线段,使用新点将其细分,并沿着法向量移动新点,直到它碰到对比度边缘。
当然,这种方法有一些局限性,但以下是我能假设的:
- 形状可以是凸形、凹形等等。 - 对比度应该是黑色对白色,但为了处理可能的演变,对比度门槛应该是可配置的。 - 在上面考虑的示例中,显然应该限制细分深度,以避免卡死用户的机器。
如果您知道这样的算法,那就太好了。