Хочу обратить по точкам окружность так, без canvas.create_oval(), но с использованием формулы х^2 + у^2 = г. Круг также должен быть нарисован внутри квадрата.Tkinter: рисовать круг на холсте без create_oval
Это код:
center = (maxx - ((maxx - minx)/2), maxy - ((maxy - miny)/2))
radius = ((maxx - minx)/2 + (maxy - miny)/2)/2
for xc in range(0, x):
for yc in range(0, y):
if radius - 10 <= (xc - center[0]) ** 2 + (yc - center[1]) ** 2 <= radius + 10:
canvas.create_oval(xc + 50, yc + 50, xc + 50, yc + 50)
(Maxx, Maxy) и (шалунья, мин) используются, чтобы нарисовать прямоугольник (используя canvas.create_rectangle)
х и y - ширина и высота холста
canvas.create_oval (xc + 50, yc + 50, xc + 50, + 50 Ус) используется только для имитации POIN, потому что в Tkinter не существует что-то вроде canvas.create_point
Проблема заключается в том, что круг, который вышел совершенно отличается от того, Я ожидал. (Не волнует кружок ручной работы
x = 400, y = 300, minx = 103, maxx = 269, miny = 62, maxy = 212, center = (186,0, 137,0), радиус = 79,0
Как вы можете видеть круг действительно меньше, а центр не там, где я хочу? Что я делаю не так ??
'* Что я делаю не так ?? * - Начнем с того, что вы звоните 'canvas.create_oval()', несмотря на свой комментарий, "* Я не могу использовать' canvas.create_oval() '*". Вы можете это назвать или нет? Если нет, почему бы и нет? –
Извините, я забыл объяснить это. Я использую этот create_oval только для имитации точки (на самом деле, поскольку вы видите, что рисованные круги имеют размер 1 пиксель). Я не могу использовать use .create_oval, чтобы нарисовать главный круг, а не вообще –
Я знаю, что вы говорите, чтобы игнорировать рисованный круг, но откуда он взялся? Нарисован ли рисунок, чтобы показать, что это примерно желаемый результат? Кроме того, это поле является результатом 'create_rectangle', правильно? Кроме того, какой код нарисовал этот пункт в центре? –