Я пытаюсь написать базовый виджет для рисования, используя библиотеку Tkinter.
Самый базовый код, который я сейчас использую:
from Tkinter import *
master = Tk()
w = Canvas(master, width=1200, height=800)
w_centre = 600
h_centre = 400
w.pack()
w.create_oval(w_centre-50, h_centre-50, w_centre+50, h_centre+50)
mainloop()
Что действительно нужно сделать, так это начать с 3 переменных: x, y (центр круга) и размера. Оттуда я могу использовать простую математику для определения набора (x0, y0, x1, y1), необходимого для создания круга (http://docs.huihoo.com/tkinter/tkinter-reference-a-gui-for-python/create_oval.html)
Я хочу сделать это программно, введя размер как значение из набора данных, а x, y как зависимое значение (если мне нужен 1 круг, я бы использовал x1, y1, если мне нужно два круга, они будет х2, у2 и х3, у3 и т. д.). Цель состоит в том, чтобы попытаться создать базовый визуализатор для набора данных, который у меня есть. Я полагаю, что могу написать массив координат x, y, которые я могу искать по мере необходимости и по мере того, как значение размера будет извлекаться из списка - так что было бы лучше написать функцию, которая бы принимала размер, ищите x, y, как требуется, и подача create_circle вызывает соответствующие значения.
Я знаю, что мне нужно вызывать функцию create_oval со значениями x0, y0, x1, y1, и мне интересно, если бы я мог вызвать другую функцию, которая позволила бы мне каждый раз получать эти значения, передавая ее x, y (центр круга) и значение размера (радиуса), и для него верните мне соответствующие значения x0, y0, x1, y1.
Поскольку это математический предмет многократного использования, я думаю, что мне нужно создать класс, но я не могу найти учебник, который поможет мне понять, как определить функцию класса, а затем вызывать ее каждый раз, когда мне нужно Это.
Я ценю, что, возможно, я не очень хорошо сформулировал это, я пытаюсь выучить элементарный питон самостоятельно (без знания CS), поэтому, пожалуйста, простите меня, если я назвал что-то неправильно или пропустил что-то важное.
Может ли кто-нибудь подсказать мне подсказку или указатель на приличный ресурс?