2011-10-10 56 views
0

我需要啓發一下可能是一個簡單的問題。Wpf數學邊界邏輯

鑑於作爲邊界座標XNYN的一個圓,給控制中心在X1Y1座標。如何檢查控制是否位於邊界內?

我嘗試,

X2 X3 & =以X軸的術語的圓的左右&峯。
Y2 & Y3 = Y軸方向頂部的圓底峯值。

If(X1 > X2 && X1 < X3 && Y1 > Y2 && Y1 < Y3) 
    return true; 

然而,這顯然不爲四角圓的工作時,它不是假設將返回true。有任何想法嗎?

+0

你能解釋一下**座標Xn和Yn作爲邊界**的意思嗎? – Blender

+0

畫一個360點的圓,我有360點的座標。所以我希望這個圈子能夠起到廣告邊界的作用,所以我的控制,比如圖像,將永遠留在圈內,不能退出。這就是我想表達的意思。 – Sydnal

+0

這與[WPF](http://stackoverflow.com/tags/wpf/info)有什麼關係? –

回答

1

你可以使用類似r = sqrt(xn * xn + yn * yn)來確定圓的半徑嗎?當yn = 0時,更容易的是r = xn。然後你可以計算r1 = sqrt(x1 * x1 + y1 * y1)來確定是否r1 < r。如果是,那麼它在圈內。

+0

如何確定圓的半徑並控制幫助以確保控件在圓內? – Sydnal

+0

你有一個由(xn,yn)定義的圓的外部極限。如果你的點(x1,y1)在該半徑之外,那麼控制不在圓內。這假定圓的中心和控件的中心是相同的。或者我可能完全脫離基地。 – user973572

+0

沒有。 :( 控件的中心是不同的,它會動態地改變,所以我在做的是移動控件,並希望控件只能在圓內移動(: – Sydnal