Python基础知识如何创建“类(”?)一组简单数学变量的函数

2024-10-01 19:31:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用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\u oval.html)你知道吗

我想通过编程的方式来实现这一点,将大小作为数据集的一个值输入,将x,y作为从属值(如果我需要一个圆,我将使用x1,y1如果我需要两个圆,它们将是x2,y2&x3,y3等等)。目的是尝试为我拥有的数据集构建一个基本的可视化工具。我想我可以写一个x,y坐标的数组,我可以根据需要查找,因为大小值将从一个列表中拉出来,所以最好写一个函数,接受大小,根据需要查找x,y,并给create\u循环调用适当的值。你知道吗

我知道我需要用x0,y0,x1,y1的值调用create\u oval函数,我想知道是否有一种方法可以调用另一个函数,让我每次都通过给它x,y(圆心)和size(半径)值来生成这些值,并为它返回相关的x0,y0,x1,y1值。你知道吗

由于这是一个可重用的数学部分,我想我需要创建一个类,但是我找不到一个教程来帮助我理解如何定义类函数,然后在每次需要时调用它。你知道吗

我很感激我的措辞可能不是很好,我正在努力学习我自己的初级python(没有CS背景),所以请原谅我,如果我命名错误的东西,或错过了一些重要的东西。你知道吗

有人能给我一个提示或一个指向一个好资源的指针吗?你知道吗


Tags: 数据函数master绘图部件tkintercreatex1
1条回答
网友
1楼 · 发布于 2024-10-01 19:31:58

Python允许您从函数返回任何类型的对象;特别是,您可以返回(x0,y0,x,1,y1)所需的元组create_oval

def enclosing_box(x, y, radius):
    """Given the coordinates of the circle center and its radius, return the top-left and bottom-right coordinates of the enclosing box."""
    return (x-radius, y-radius, x+radius, y+radius)

然后可以使用^{} syntax调用一个函数,该函数包含一组从序列(列表、元组等)中提取的参数。您可以用它来调用create_oval,方法如下:

coords = enclosing_box(x,y,radius)
w.create_oval(*coords)

相关问题 更多 >

    热门问题