我目前正想出一个解决方案,找到一个圆的点和中心的距离。
我必须将以下方法添加到我的Circle类中,该类给出了另一个点的x和y坐标,其中该方法返回该点是否在Circle的范围内。
我认为要完成具有中心点和半径的圆的绘制,我将必须绘制另外两个点,一个在圆内,一个在外。如何确定哪个点位于圆内,哪个点位于圆外?
我要求两点之间的距离和圆心。
这是我到目前为止编写的代码。
public bool Contains(float px, float py)
{
(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2)) < (d * d);
return mContains;
}
答案 0 :(得分:2)
好吧,如果你有一个属性x
和y
,radius
并且你给了一个点(x1, y1)
,你就可以轻松地测试它是否&# 39;在圈内:
bool IsInCircle(int x1, int y1)
{
return Math.Sqrt(Math.Pow(x1 - this.x, 2) + Math.Pow(y1 - this.y, 2)) <= this.radius;
}
然后检查两个点 - 一个会给true
,另一个false
如果你想得到一个获得两点的函数,你可以只返回一个int - 1如果第一个在里面,2个是第二个,0如果没有,3个如果两个:
int AreInCircle(int x1, int y1, int x2, int y2)
{
bool a = Math.Sqrt(Math.Pow(x1 - this.x, 2) + Math.Pow(y1 - this.y, 2)) <= this.radius;
bool b = Math.Sqrt(Math.Pow(x2 - this.x, 2) + Math.Pow(y2 - this.y, 2)) <= this.radius;
return a && b ? 3 : (!a && !b ? 0 : (a ? 1 : 2));
}