Thursday, August 26, 2021

Roulette Rotate Canvas











import tkinter as tk

from PIL import ImageTk, Image

from random import randint


win = tk.Tk()

win.geometry("452x485+0+0")


class SimpleApp(object):

  def __init__(self, master, filename):

    self.master = master

    self.filename = filename

    self.canvas = tk.Canvas(master, bg="black", width=450, height=500)

    self.canvas.place(x=0, y=10)

    self.angle = 0


  def draw(self):

    self.image = Image.open(self.filename)

    self.turn = randint(30, 390)

    self.canvas_obj = None

    self.master.after(100, self.rotate)

  

  def rotate(self):

    if self.turn > 0:

      if self.canvas_obj:

        self.canvas.delete(self.canvas_obj)

      self.tkimage = ImageTk.PhotoImage(self.image.rotate(self.angle))

      self.canvas_obj = self.canvas.create_image(227, 250, image=self.tkimage)

      self.angle = (self.angle - 1) % 360

      self.turn -= 1

      self.master.after_idle(self.rotate)


app = SimpleApp(win, '10C.png')


pic = ImageTk.PhotoImage(file="Stick.png")

lblStick = tk.Label(win, image=pic);    lblStick.place(x=0, y=0)


btn = tk.Button(win, text="Rotate", command=app.draw)

btn.place(x=400, y=450)


win.mainloop()


No comments:

Post a Comment