Как нарисовать квадрат по координатам? Получается нарисовать только две линии

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

В линиях перепутаны координаты точек.

→ Ссылка