tkinter: заштриховать определенную область

Рейтинг: 0Ответов: 0Опубликовано: 15.05.2023

Моя программа строит сечение подшипника. Нужно закрасить определенную площадь фигуры. Не могу найти нужный метод. Подскажите пожалуйста, что лучше использовать?

import tkinter as tk

# Create the main window
win = tk.Tk()
win.geometry("400x400")

# Create a Canvas widget
c = tk.Canvas(win, width=410, height=410)
c.pack()

c.create_arc(10,10,20,20,
             start = 180, extent = -90,
             style=tk.ARC)

c.create_arc(100,20,90,10,
             start = 0,extent = 90,
             style=tk.ARC)

c.create_arc(10,400,20,410,
             start = 180, extent = 90,
             style=tk.ARC)

c.create_arc(90,400,100,410,
             start = 270, extent = 90,
             style=tk.ARC)

c.create_line(100,405,100,15)
c.create_line(15,410,95,410)
c.create_line(10,15,10,405)
c.create_line(95,10,15,10)

c.create_oval(23,28,87,93)

c.create_line(10,21,55,28)
c.create_line(80,39,100,39)
c.create_line(80,81,100,81)
c.create_line(10,81,30,81)
c.create_line(24,81,26,74)
c.create_line(87,81,84,74)

c.create_arc(90,100,100,110,
             start = 0,extent = -90,
             style=tk.ARC)

c.create_line(95,110,15,110)

c.create_arc(10,100,20,110,
             start = 270, extent = -90,
             style=tk.ARC)


#рисуем нижную часть
c.create_oval(23,327,87,392)
c.create_line(10,399,55,392)
c.create_line(10,339,30,339)
c.create_line(80,381,100,381)
c.create_line(80,339,100,339)
c.create_arc(90,310,100,320,
             start =0,extent = 90,
             style=tk.ARC)
c.create_line(95,310,15,310)
c.create_arc(10,310,20,320,
             start = 90,extent = 90,
             style=tk.ARC)
c.create_line(24,339,26,346)
c.create_line(87,339,84,346)


win.mainloop()

Сам разрез который нужен

Ответы

Ответов пока нет.