2016-04-27 27 views
-1

我一直在嘗試創建一條曲線,並且我已經創建了它。但事情是如果我添加一個點,它將被添加到數組[最後一點-1],但如果我在第一和第二點之間添加一個點,曲線將它作爲最後一點-1,這是我的編碼,我需要找到我在哪裏添加,曲線的索引enter image description here如何找到點之間是否存在這些點

上面的imnage是一個例子,在這裏我有一個三點曲線,點的編號,以便您可以看到點如何存儲在陣列中,我將添加紫色點到第th陣列,但我需要知道我應該粘貼哪個索引,請幫助

+0

如果新點不在曲線上,該怎麼辦? – MBo

+0

新點將始終在曲線上,我已確保 – Jeffin

回答

0

我剛剛爲每條曲線創建了新的獨立子畫面,並在點擊事件發出時找到了點,感謝您的建議。

0

1-您創建的任何曲線都會有一個等式。例如X^2 + Y -3 = 0如果你的點在那條曲線上,它應該滿足這個方程。

+0

沒有我沒有方程,這是一個bezeir曲線 – Jeffin

0

對於位於貝塞爾曲線上的每個點,可以找到範圍爲0..1的參數t。 因此,根據它的t值在列表中插入新點。

大約T t發現:

- 如果你的曲線是沿X座標單調(用於Y類似的),只是解決了在t三次方程:

P0.X*(1-t)^3 + 3*P1.X*t*(1-t)^2 +3*P2.X*t^2*(1-t) +P3.X*t^3 = NewPoint.X 

- 如果沒有,你可以解決類似方程式無論是X和Y和取得一致的解決方案(自相交的曲線可以有兩種解決方法)

- 因爲不準確的座標,你可以從點建立歐氏距離平方表達曲線,並發現它是最小的(最接近點)

相關問題