我必须用Python类画一个星形;这是一个家庭作业问题。

from tkinter import*

class star:
    def _init_(self, w, h):
        root=Tk()
        root.title("Mercy Cybersecurity HWb")
        self.canvas=Canvas(root, bg="#1199ff", width=w, height=h)
        self.canvas.pack()
        self.draw(w,h)

    def draw(self,w,h):

        for i in range(0,2):
            self.canvas.create_rectangle(20+i*10, 30+i*10, w-20-i*20, h-30-i*20)
        #root.mainloop()

star(700,400)

我有几个问题
第一个错误是Object()不接受线星(700400)的参数。
第二个错误是,当我试图绘制多边形时,它不起作用。
创建多边形(10,40,40,40,50,10,60,40,90,40,65,60,75,90,50,70,25,90,35,60,fill=“#ff0000”,)
我要把这条星型线放在哪里?
另一个问题是如何在矩形中间显示星形?

最佳答案

我修改了你的代码,所以你得到了一些输出(我只做了一个三角形,你自己把它改成一个星星)。

from Tkinter import*

class star:
    def __init__(self, w, h):
        self.root=Tk()
        self.root.title("Mercy Cybersecurity HWb")
        self.canvas=Canvas(self.root, bg="#1199ff", width=w, height=h)
        self.canvas.pack()
        self.draw(w,h)

def draw(self,w,h):
    for i in range(0,2):
        self.canvas.create_rectangle(20+i*10, 30+i*10, w-20-i*20, h-30-i*20)
    self.canvas.create_polygon(100, 100, 300, 300, 400, 200)
    self.root.mainloop()

star(700,400)

你的错误是:
__init__拼写错误。
你忘了把它放在全班同学面前。
你忘了画星星的形状,在这个例子中,我画了三角形。使用self.

关于python - 使用类绘制星形?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42034728/

10-14 18:05