簡體   English   中英

如何找到手繪多邊形的邊和頂點

[英]How to find Edges and Vertices of a hand drawn polygon

我想制作一個形狀識別程序,可以跟蹤鼠標並每 1/2 秒記錄一次鼠標的位置。 我如何使用這些點來找到一個粗糙的多邊形? 換句話說,如果你只是畫一個類似三角形或正方形的形狀,它很可能是 50-100 邊形,我怎樣才能簡化它以獲得我想要繪制的形狀? 我知道你可以做一個遺傳算法,但不知道它是如何工作的,我想知道任何替代方案。

編輯:凸包不起作用,需要保留凹面。

我會試一試。

  1. 當鼠標點擊事件發生點START時,讓我們調用 position
  2. 每個間隔采取另一個 position 稱為CURR
  3. 讓我們調用以前的 CURR, PREV
  4. 計算 CURR 和 PREV 之間的斜率 (delta y/delta x),
  5. 計算 CURR 和 START 之間的線的斜率
  6. 為兩個斜率之間的差異定義一些閾值
  7. 如果斜率超過閾值,
    1. 將 START 和 CURR 之間的線存儲為 SIDE
    2. 將 CURR 定義為新的 START
  8. 重復直到 CURR 在原始 START 的某個半徑內或穿過前面的一側

您也許可以通過計算邊數來確定形狀。

對於沿 100 邊形的每個點,找到由該點和兩側的點形成的小三角形的面積。 刪除創建最小三角形的點。 重復直到最小的三角形大於某個閾值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM