from tkinter import * root = Tk() root.geometry("300x200") def aktualizuj_kolor(wartosc_z_suwaka): v = float(wartosc_z_suwaka) if v > 0.4: b = "00" elif v < 0.38: b = "FF" else: procent = (v - 0.38) / 0.02 odwrocona_wartosc = int((1 - procent) * 255) odwrocona_wartosc = max(0, min(255, odwrocona_wartosc)) b = f"{odwrocona_wartosc:02X}" if v < 0.40 or v > 0.45: r = "00" else: if v <= 0.425: procent = (v - 0.40) / 0.025 else: procent = (0.45 - v) / 0.025 wartosc_r = int(procent * 255) wartosc_r = max(0, min(255, wartosc_r)) r = f"{wartosc_r:02X}" g = "00" if abs(v - 0.4) < 0.005: b = "FF" r = "FF" g = "FF" kolor = f"#{r}{g}{b}" canvas.itemconfig(c, fill=kolor) canvas = Canvas(root, bg="white", highlightthickness=0, width=150, height=150) canvas.pack(side=LEFT, padx=20) c = canvas.create_rectangle(20, 20, 120, 120, fill="#FF00FF") val = Scale(root, from_=0.0, to=1.0, resolution=0.01, command=aktualizuj_kolor) val.pack(side=RIGHT, padx=20) root.mainloop()