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