Python – kreslenie textu do kruhu

Vytvorte program, v ktorom môžeme kresliť otočené texty na mieste kliknutie myši. V programe sú dve súčiastky entry. Do jednej zadávame text, ktorý sa má písať do canvasu, a do druhej zadávame počet jeho otočení. Texty sa nakreslia náhodnou farbou z vopred určených farieb

Autor tohoto programu je Marek Mak

Úvodné okno

Zadáme vstupné údaje

Riešenie

import math
import tkinter as tk
import random

colors = ['red', 'green', 'blue', 'purple','pink','orange','magenta','cyan']

def typeText(a, b, angle, text, colorPicker):
    x = math.cos(math.radians(angle)) * 50 + a
    y = math.sin(math.radians(angle)) * 50 + b
    obj = canvas.create_text(a, b, text=text, fill=colorPicker)
    canvas.itemconfig(obj, angle=-angle)
    canvas.coords(obj, x, y)
    return obj

root = tk.Tk()
canvas = tk.Canvas(root, width=500, height=500)

times_label = tk.Label(root, text="Zadajte počet otáčok")
times_label.pack()
times_entry = tk.Entry(root)
times_entry.pack(pady=3)

word_label = tk.Label(root, text="Zadajte slovo")
word_label.pack()
word_entry = tk.Entry(root)
word_entry.pack(pady=3)

def typingo(event):
    x = event.x
    y = event.y
    
    word_entry_value = word_entry.get()

    times_entry_value = times_entry.get()
    c = 360 / int(times_entry_value)

    colorPicker = random.choice(colors)

    for i in range(0,360,int(c)):
        typeText(x,y,i,word_entry_value,colorPicker)


canvas.bind("<Button-1>", typingo)



canvas.pack()
root.mainloop()
naspäť