Будем считать, что точка принадлежит кругу, если находится внутри его или на его окружности.
Из любой точки координатной плоскости можно провести отрезок к началу координат. Если длина этого отрезка больше радиуса круга, то точка лежит за пределами круга и, следовательно, не принадлежит ему. Если же отрезок, соединяющий точку и начало координат, меньше радиуса круга с центром в начале координат или равен ему, то точка будет принадлежать кругу.
Отрезок между любой точкой и нулевой точкой (началом координат) является гипотенузой прямоугольного треугольника, катеты которого равны значениям x и y координаты данной точки.
Таким образом задача сводится по-сути к двум действия:
- Нахождение длины отрезка между точкой и началом координат по теореме Пифагора (квадрат длины гипотенузы равен сумме квадратов длин катетов).
- Сравнению полученного значения с радиусом круга.
Pascal
Определение принадлежности точки кругу с центром в начале координат паскаль
var x,y,r,h: real;
begin
write('координаты точки: ');
readln(x,y);
write('радиус круга: ');
readln(r);
h := sqrt(x*x + y*y);
if h > r then writeln('Точка не принадлежит кругу')
else writeln('Точка принадлежит кругу');
end.
координаты точки: -1 -2
радиус круга: 5
Точка принадлежит кругу
Язык Си
#include
#include
main() {
float x,y,r,h;
printf("Координаты точки: ");
scanf("%f%f", &x,&y);
printf("Радиус круга: ");
scanf("%f", &r);
h = sqrt(x*x + y*y);
printf("Гипотенуза равна %.2f. ", h);
if (h > r) printf("Точка не принадлежит кругу.\n");
else printf("Точка принадлежит кругу.\n");
}
Координаты точки: 4 5
Радиус круга: 10
Гипотенуза равна 6.40. Точка принадлежит кругу.
Для gcc компилировать с ключом -lm.
Python
Определение принадлежности точки кругу с центром в начале координат Python
from math import sqrt
x = float(input("x="))
y = float(input("y="))
r = float(input("r="))
h = sqrt(x**2 + y**2)
print("Расстояние до точки от начала координат равно %.2f" % h)
if h > r:
print("точка находится за пределами круга")
else:
print("точка принадлежит кругу")
x=10
y=-3
r=5
Расстояние до точки от начала координат равно 10.44
точка находится за пределами круга
КуМир
алг точка_круг
нач
вещ x,y,r,h
вывод "Координаты точки: "
ввод x,y
вывод "Радиус круга: "
ввод r
h := sqrt(x**2 + y**2)
если h > r то вывод "Не принадлежит"
иначе вывод "Принадлежит"
все
кон
Координаты точки: 1.6 -2.1
Радиус круга: 4
Принадлежит
Basic-256
input "x=", x
input "y=", y
input "r=", r
h = sqrt(x^2 + y^2)
if h > r then
print "Не принадлежит"
else
print "Принадлежит"
endif
# несложно (возвращает True или False)
def point_in_circle(x, y, r):
return r >= sqrt(pow(x, 2) + pow(y, 2)), sqrt(pow(x, 2)+pow(y, 2))