Найти пересечение двух окружностей - 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;
}