Есть несколько вариантов для этого. Один из них немного сложнее и включает в себя тот факт, что круг однозначно определяется 3 точками на его границе и вычислением определителя подходящей матрицы (включая координаты трех точек плюс ваша точка отсчета). Хотя это сложный подход, вы можете выйти намного проще:
Диск, окруженный кругом (с радиусом r
и центром c_x, c_y
), задается уравнением
{(p,q) | (p-c_x)^2 + (q-c_y)^2 < r^2}
(замените «меньше» на «меньше или равно», если вы тоже считаете границу внутри).
Это означает, что вы можете просто вычислить значение
(p-c_x)^2 + (q-c_y)^2
и сравните ее с r^2
, чтобы получить информацию, если точка (p,q)
находится внутри, снаружи или на окружности.
Обратите внимание, что из-за неточностей с плавающей запятой в компьютерных системах и в зависимости от вашего варианта использования вы можете не захотеть проверять точное равенство для границы, но проверить, близка ли разница обоих значений к 0.
редактировать: форматирование