Как нарисовать квадрат по координатам? Получается нарисовать только две линии
import tkinter as tk
import tkinter.messagebox as tkmb
class MyWindow(tk.Frame):
def __init__(self):
self.root=tk.Tk()
super().__init__(self.root)
menu_main=tk.Menu(self.root)
self.root.config(menu=menu_main)
menu1=tk.Menu(menu_main)
menu_main.add_cascade(label="File",menu=menu1)
menu1.add_command(label="Quit",command=self.ext)
menu2=tk.Menu(menu_main)
menu_main.add_cascade(label="Edit",menu=menu2)
menu2.add_command(label="Input",command=self.inp)
self.canva=tk.Canvas(self.root,width=600,height=600,bg="white")
self.canva.pack()
self.xa=2
self.ya=0
self.xb=0
self.yb=0
self.xc=0
self.yc=2
self.xd=0
self.yd=0
self.show()
self.root.mainloop()
def show(self):
self.canva.create_line(self.scale(self.xa),self.scale(self.ya),
self.scale(self.xb),self.scale(self.yb))
self.canva.create_line(self.scale(self.xc),self.scale(self.yc),
self.scale(self.xd),self.scale(self.yd))
self.canva.create_line(self.scale(self.xa),self.scale(self.ya),
self.scale(self.xb),self.scale(self.yd))
self.canva.create_line(self.scale(self.xb),self.scale(self.yb),
self.scale(self.xd),self.scale(self.yd))
def scale(self,value):
return 300+60*value
def ext(self):
if tkmb.askyesno("Exit","Do you want to exit?"):
self.root.destroy()
def inp(self):
self.root.destroy()
MyWindow()
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
self.xb=0
self.yb=0
...
self.xd=0
self.yd=0
У квадрата все вершины - разные:
self.xd=2
self.yd=2
В линиях перепутаны координаты точек.