請問有無四邊行等份分割的演算法 |
缺席
|
jsjs2601
一般會員 發表:7 回覆:7 積分:2 註冊:2008-09-30 發送簡訊給我 |
目前小弟有一個問題,就是假設已知四個點的座標(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4),接著我要由使用者輸入相關函數,在此四點所圍成的大四邊形裡面,做切割小方塊且彼此間有間距,最後要得知每個小四邊形四個點的座標,其實從頭到尾都只是要得知點座標而已,跟算面積無關。
舉例如下圖所示: 假設我要切割2列(使用者定義)乘3行(使用者定義)總共6個的小四邊形,接著每個小方塊之間,間隔著d距離的間隔(使用者定義),最後要得知這A,B,C,E,D,F四個小四邊形各自的四點座標。 請問各位先進,有人知道有這種演算法嗎?還是說BCB其實有function可以用,亦或是有相關資料可以看嗎?我已經想到腦將都快沸騰了還想不出個好方法....orz |
jsjs2601
一般會員 發表:7 回覆:7 積分:2 註冊:2008-09-30 發送簡訊給我 |
想了好久終於自己想出來了,其實最主要是需要用到一些高中數學
如下所示: m n A(x1,y1) . ----------------.----------.B(x2,y2) P(x,y) (1)AB兩點間的距離為AB=sqrt(pow( x2-x1,2) pow( y2-y1,2)); (2)假設P(x,y)界在A(x1,y1),B(x2,y2)之間,且線段PA:PB=m:n 則x = (n*x1 m*x2) / (m n) y = (n*y1 m*y2) / (m n) 接著使用這些數學觀念,將所切割的點視為矩陣,以我貼的圖為例,如下所示: step1.將周遭四個點(x1,,y1),(x2,y2),(x3,,y3),(x4,,y4)扣除d距離,內縮成A1,D2,C4,F3點。舉例:A1=(X1 d,y1 d) step2.有了A1和D2點,就可求A1~D2的線長,然後A12和D12線段的長=(A1D2線段-d)/2,這樣A2和D1點也可求出。同理右邊C4,C3,F4,F3點都可求出 step3.有了A1和C4點,則利用step2的觀念,A1~C4之間的點座標也都能求出來,A2和C3之間,D1~F4,D2~F3之間的點座標也可求出來 如此依來所有點都有了,希望對各位網友有幫助~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |