在C#中,如何找到圆与圆心之间的距离?

时间:2016-06-10 21:44:45

标签: c#

我目前正想出一个解决方案,找到一个圆的点和中心的距离。

我必须将以下方法添加到我的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;
        }

1 个答案:

答案 0 :(得分:2)

好吧,如果你有一个属性xyradius并且你给了一个点(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));
    }