Вопрос о круговом расстоянии - PullRequest
0 голосов
/ 28 апреля 2011

Это мой домашний вопрос:

Расширьте класс Circle, добавив метод с именем точно dist (), который принимает значения точки x и y и возвращает расстояние до точкив координатном пространстве снаружи круга (или ноль, если точка находится на или внутри круга).

Следующий код:

myCircle = Circle(1,1,1)
print myCircle.dist(3,4)

Должен напечатать выводпримерно:

2.6055512754639891

Однако я не могу понять вопрос.Что значит вернуть точку в координатном пространстве снаружи круга?Не могли бы вы объяснить это?

Ответы [ 4 ]

4 голосов
/ 28 апреля 2011

Найти расстояние между центром круга и заданной точкой.Вычтите радиус из расстояния.Отрицательные значения находятся внутри круга.

2 голосов
/ 28 апреля 2011

Вы можете легко проверить, находится ли точка внутри круга на нет.После того, как вы это сделали и определили, что это снаружи, вам нужно найти линию normal к кругу и проходящую через точку.Длина линии от окружности круга дает вам ответ.

Подсказка : любая линия, проходящая через центр круга, является нормальной для него.

Таким образом, у вас есть точка (x,y), радиус r и центр (x0,y0).Я думаю, у вас достаточно информации, чтобы решить эту проблему:)

0 голосов
/ 28 апреля 2011
>>> from math import hypot
>>> hypot(3-1,4-1)    # How far is the point from the centre of the circle?
3.6055512754639891
>>> hypot(3-1,4-1)-1  # Now subtract the radius
2.6055512754639891
>>> 
0 голосов
/ 28 апреля 2011

Это, вероятно, означает расстояние до ближайшей точки на окружности, поэтому проблема минимума-максимума, когда вы минимизируете расстояние от точки до окружности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...