Python: проверка, находятся ли координаты в пределах круга

Возможный дубликат:
Как я могу заставить Черепаху распознавать круг?

введите здесь описание изображенияУ меня есть функция, которая рисует несколько кругов, и я собираюсь разместить внутри них точки. В зависимости от того, попадает ли точка в круг, зависит, изменится ли цвет или нет.

Самая большая проблема, которую я нахожу, заключается в том, как проверить, находится ли точка в круге. Кто-нибудь знает, как вычислить координаты внутри круга, или это их метод, который может проверять координаты по кругу?


person MichaelH    schedule 04.09.2012    source источник
comment
это домашнее задание? это очень похоже на этот вопрос: stackoverflow.com/questions/12049536/   -  person zenpoy    schedule 04.09.2012


Ответы (3)


  1. Вычислите (евклидово) расстояние до центра круга,

    sqrt((x - center_x) ** 2 + (y - center_y) ** 2)
    
  2. Проверьте, меньше ли результат радиуса.

person Fred Foo    schedule 04.09.2012
comment
Мы попробовали это, но по какой-то причине доступ к Y был слишком низким. Я приложил изображение. - person MichaelH; 04.09.2012
comment
@MichaelH: это метод. У вас, должно быть, была ошибка в вашем коде, возможно, ошибка округления. - person Fred Foo; 04.09.2012

Для окружности с центром (x,y) и радиусом r точка (x1, y1) находится внутри окружности, если

(x1-x)² + (y1-y)² <= r²
person gefei    schedule 04.09.2012
comment
+1, эта формулировка на самом деле более элегантна, чем моя, и быстрее вычисляется, поскольку вы можете кэшировать r². - person Fred Foo; 04.09.2012

Чтобы проверить, лежит ли координата на окружности, вы можете использовать уравнение окружности

a² + b² = r²

Итак, чтобы проверить, находится ли точка внутри круга:

a² + b² <= r²
person Minion91    schedule 04.09.2012