HI,請問有前輩撰寫過圖形的多邊形選取功能嗎?
因要讓使用者自由選定區域後取得區域的Pixels座標, 故有此需求。
目前只寫到將所選擇的點算斜率連線、並將這些線段轉化為XY table..
但是卻不知如何取得所選擇範圍的座標..
有想過要用一條條掃描的、因為是不規則多邊形(不一定都是凸多邊形)、
沒辦法利用單數點與雙數點的算法來填滿區域後取得座標值...
不曉得有沒有前輩有自行撰寫過該function?...
PS: 這個案子沒有要用到vision 所以沒有相關VI.. Orz...
而且 困難的是 斜邊會出現像是階梯的斜線 也使得掃描方法便的異加困難...

SurfersParadis40722.4377199074
可以寄出原始(布林)資料嗎?
這可以簡單用取代的方式處理~
以下模擬檔案,請服用
0628.vi
計算方式未最佳化,單純只是想法,需要增加執行效率可修改內容。
caeru40722.6673958333
[QUOTE=caeru] 可以寄出原始(布林)資料嗎?
這可以簡單用取代的方式處理~
以下模擬檔案,請服用
0628.vi
計算方式未最佳化,單純只是想法,需要增加執行效率可修改內容。
[/QUOTE]
感謝幫忙@@! 還真的沒想過這樣寫@@:
但是我在RUN的狀況下,在某些特定圖形會溢出、
可否開導一下! 小弟正在努力多測幾遍跟看懂中~
0628 with value.vi

這應該說是尋找非圈選區的方式
先將圖形變為0與1的矩陣
預設非圈選區0,0值為-1
接下來開始依序搜尋矩陣上所有點
當一個點的上下左右其中一個值為-1
則代表該點與非圈選區相鄰,將該點值改變為-1
搜尋完後,因為搜尋方向的問題,會有些點可能不會被搜尋到,
因此需要以旋轉的方式來改變搜尋方向,
轉四次後又回到原本的圖形,同時可以將所有非圈選區找出,此時只要值大於-1的皆為圈選區。
至於有溢出的問題,那部份應該是沒有被找到,所以值還是0,但是判斷條件是值大於-1,所以就被誤判了
這部份是因為我耍白痴把轉秩當作旋轉= =
以下更新後檔案:
0629.vi
感謝大大提供另一種方式、但是小弟駑鈍還沒搞懂
先借我收藏一下^^:"
目前寫了一個程式還算符合小弟需求、至於有沒有BUG則不得而知..
測試了很多複雜多邊形都還沒問題。
速度還不錯、240*240的陣列約2~3 ms可以處理完成。
一部分是利用公式計算所需填充長度之後用replace方式填值
(複數點per scan line)
另一部分是:
目標列=n 假設N列上有3點V1,V2,V3, 則V1~V2兩點位置段、
其上一列的相對位置必為填滿(範圍內),來做是否填滿的判別。
感謝提供想法的大大幫助


SurfersParadis40723.6472800926
=/////= 發現BUG 檔案連結已經更新~
!!!!!!!!!!!!!! 再次更新..
用了更複雜的圖形 發現還是有溢出@@
有需要者還是參考caeru大大的範例><!!
小弟不在此耽誤別人 故移除檔案連結><!!
再次感謝大大!!
SurfersParadis40723.9033101852