2012-10-24 40 views
0

我在想如何(如果有的話)有可能確定一個給定一組X,Y座標的鼠標點擊的形狀?如何在一系列鼠標點擊中找到形狀?

我們正在處理這裏的一些問題,可能會有與形狀無關的點擊(coords)。下面是一個例子:http://tinypic.com/view.php?pic=286tlkx&s=6綠色圓點代表鼠標點擊,搜索的高度/寬度至少爲x,高度/寬度最多爲y,四點損失爲紅色,紅色線表示找到的形狀。我希望能夠找到許多基本形狀,例如正方形,矩形,三角形和理想的圓形。

我聽說Least Squares可以幫助我,但是我不清楚這對我有什麼幫助。我正在使用C#,並且歡迎使用示例:)

+0

是否存在不相關點的限制?例如。兩個相關之間只有一個不相關的點?否則,檢測所有可能的形狀可能非常困難且耗時。 –

+0

好的,形狀的x單位(距離)內沒有不相關的點怎麼樣?那麼在一定距離內沒有任何內部和外部什麼都沒有 – Faraday

+0

好的,我希望得到一些關於點擊順序的信息。只是要清楚:你有點擊順序還是隻有結果?你想在每次點擊後計算形狀還是一次結束? –

回答

0

您可以爲想要支持的每種形狀創建探測器。這些探測器會告訴,如果一組點形成的形狀。

因此,例如,如果4個點在四邊形中對齊,則您將傳遞4個點到四個檢測器並返回。四探測器可以工作是這樣的:

  • 每個點
    • 找到最近的鄰居點
    • 計算內角
    • 計算到鄰居
  • 如果所有的距離內角爲90°+ - 某個閾值 - >確定
  • 如果所有距離相等+ - 某個閾值(百分比) - >確定
  • 否則它不是四方。

使用這些探測器的一種天真的方式是將每個點的子集傳遞給它們。如果你有足夠的時間,那麼這是最簡單的方法。如果你想獲得一些性能,你可以選擇更智能的點。

E.g.如果四邊形總是與軸線對齊,那麼您可以從任何點開始,直到您碰到另一個點(再次使用某個thresold),向下,向左走。

這些只是一些想法,可能會幫助你進一步。我可以想象,在AI中有算法可以以更實用的方式解決這個問題,也許可以是神經網絡。

相關問題