Найти пересечение двух окружностей - C#

Узнай цену своей работы

Формулировка задачи:

Объявить класс Circle, окружность, с открытыми свойствами двойной точности X и Y (координаты центра), R (радиус). В классе должен быть конструктор с тремя параметрами: x, y, r и открытый метод bool IsIntersect(Circle other), который получает другую окружность, и оперделяет, пересекается ли окружность this с окружностью other (касание тоже считать пересечением). понятно, что две окружности пересекаются, если расстояние между их центрами меньше суммы их радиусов. Скажите мне, пожалуйста, что не так в моём решении?
class Circle 
{
 
    public double X{get;set;}
    public double Y{get;set;}
    public double R{get;set;}
    
    public Circle(double x, double y, double r)
    {
        X = x;
        Y = y;
        R = r;
    }
 
    public bool IsIntersect(Circle other)
    {
        return Math.Sqrt(Math.Pow(other.X - this.X,2)+Math.Pow(other.Y-this.Y,2))<=(this.R+other.R);
    }
}

Решение задачи: «Найти пересечение двух окружностей»

textual
Листинг программы
public bool IsIntersect(Circle other)
{
    double dist = Math.Sqrt(Math.Pow(other.X - this.X,2)+Math.Pow(other.Y-this.Y,2));
    double D = this.R+other.R; 
    return Math.Abs(dist - D)<=1E-5;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.643 из 5
Похожие ответы