如何通过一系列鼠标点击找到形状?

时间:2012-10-24 18:22:48

标签: c# .net c#-4.0 shape shapes

我想知道在给定一组鼠标点击的X,Y坐标的情况下如何(如果有的话)确定形状?

我们在这里处理许多问题,可能存在与形状无关的点击(坐标)。下面是一个示例:http://tinypic.com/view.php?pic=286tlkx&s=6绿点代表鼠标点击,搜索的是高度/宽度至少为x的正方形,高度/宽度最多为y,四点受损,红线表示形状发现。我希望能够找到许多基本形状,例如正方形,矩形,三角形和理想的圆形。

我听说Least Squares对我有帮助,但我不清楚这对我有什么帮助。我正在使用C#,并且非常欢迎示例:)

1 个答案:

答案 0 :(得分:0)

您可以为要支持的每个形状创建探测器。如果一组点形成形状,这些探测器将告诉我们。

因此,例如,如果4个点以四边形对齐,则将4个点传递给四边形检测器并返回。四探测器可以像这样工作:

  • 表示每一点
    • 找到最近的邻居点
    • 计算内角
    • 计算到邻居的距离
  • 如果所有内角都是90°+ - 某个阈值 - >确定
  • 如果所有距离相等+ - 某个阈值(百分比) - >确定
  • 否则不是四。

使用这些探测器的一种天真的方法是将每个点子集传递给它们。如果你有足够的时间,那么这是最简单的方法。如果你想获得一些性能,你可以选择更聪明的点。

E.g。如果四边形总是轴对齐,你可以从任何一点开始,向右走,直到你到达另一个点(再次有一些thresold),向下走,向左走。

这些只是一些可能对您有所帮助的想法。我可以想象,AI中的算法能够以更实用的方式解决这个问题,也许是神经网络。