turtle
- это просто графическая библиотека - она не отслеживает объекты, которые вы нарисовали на экране. Таким образом, чтобы вычислить, если данная точка находится в одном из ваших диаграмм кругов Венна, вам необходимо выполнить следующие шаги:
- магазин координаты каждого круга, когда вы называете
circle()
(классы были бы полезны, но шансы вы еще не изучили их)
- Вызвать функцию, чтобы проверить, находится ли точка в сохраненном координатном пространстве круга. Это будет чисто математическая операция по декартовым координатам. Ссылка @Tim (Equation for testing if a point is inside a circle) поможет вам в этом.
мало указаний на шаге 1:
Когда вы рисуете круг, у вас есть свой центр (текущая позиция черепахи), и радиус. Оттуда, получение всех точек в этом круге - это просто геометрия (если вы не можете получить формулу, быстрый поиск поможет вам). Я предлагаю вам создать функцию, которая рисует круг диаграммы Венна, и тот, который возвращает точки в круге. Что-то вроде этого:
def venn_circle(circle_color, circle_radius):
""" Draws a colored circle, returns the points within. """
turtle.color(circle_color)
# <fill in: code to move, orient the turtle>
center = turtle.position()
# <fill in: code to draw the circle>
return circle_coords(center, circle_radius)
def circle_coords(center, radius):
""" Return the set of pixels within the circle. """
raise NotImplementedError()
И один быстрый Примечание- вы никогда не должны делать from package import *
. В некоторых случаях это нормально, но, как правило, это приводит к неприятностям. В моем примере кода я предположил, что вы заменили эту идиому на import turtle
.
[* Венна * схема] (http://en.wikipedia.org/wiki/Venn_diagram). –
Возможный дубликат [Уравнение для тестирования, если точка находится внутри круга] (http://stackoverflow.com/questions/481144/equation-for-testing-if-a-point-is-inside-a-circle) –
Добро пожаловать в StackOverflow! [«Что вы пробовали?»] (Http://whathaveyoutried.com) является общепринятой статьей здесь. Короче говоря, задавая свой вопрос, вы должны продемонстрировать, что вы приложили усилия для решения своей проблемы. В идеале у вас будет некоторый код для показа и конкретные проблемы с этим кодом. Если вы попытаетесь придерживаться этого, вы получите гораздо больше положительных отзывов! –