Как инвертировать tkinter.canvas() по вертикали?

Пользователь

от guillermo , в категории: Python , 5 месяцев назад

Как инвертировать tkinter.canvas() по вертикали?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от camren , 5 месяцев назад

@guillermo 

Для инвертирования tkinter.canvas() по вертикали вам нужно изменить масштаб оси y на -1. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from tkinter import *

root = Tk()
canvas = Canvas(root, width=300, height=300)
canvas.pack()

# Создание объекта oval
oval = canvas.create_oval(50, 50, 250, 250, fill="blue")

# Инвертирование по вертикали
canvas.scale(oval, 0, 0, 1, -1)

root.mainloop()


В этом примере создается окно с полотном tkinter.canvas() размером 300x300 пикселей. Затем создается объект oval в виде овала с координатами (50, 50, 250, 250) и синим цветом заливки.


Далее применяется метод scale() к canvas, чтобы изменить масштаб объекта oval. Аргументы метода scale() описывают прямоугольник, в пределах которого происходит изменение масштаба, и новые значения масштаба по осям x и y. В данном случае мы используем нулевые координаты (0, 0) для определения прямоугольника, который полностью охватывает объект oval. Затем мы устанавливаем масштаб по оси y равным -1, чтобы инвертировать объект по вертикали.


И наконец, цикл обработки событий root.mainloop() запускает графический интерфейс и отображает инвертированный oval на полотне.