Farbkreis Ledsteuerung

Fragen zu Tkinter.
Antworten
schmoldo
User
Beiträge: 2
Registriert: Dienstag 18. Dezember 2018, 21:03

Dienstag 18. Dezember 2018, 21:13

Hey Leute,
ich bin neu hier im Forum und habe mich schon ein wenig mit Python beschäftigt.
Ich bastel gerade an einem GUI Programm, mit dem ich die Farben meiner LED-Leiste ändern kann. Bin jetzt auch so weit, dass ich die Farbe mit einem Schieberegler ändern kann.
Nun zu meiner Frage: ich würde gerne einen Farbkreis haben, mit dem man über ein touch-display oder mit der Maus die Farbe ändern kann, wie man es auch von machen Herstellern kennt.
Hat einer von euch eine Idee wie man so etwas Programmieren kann ?
Danke im vorraus für eure Antworten.

https://de.wikipedia.org/wiki/Farbkreis ... C3%A4r.png

^^^so soll das aussehen
NPC
User
Beiträge: 11
Registriert: Dienstag 8. Januar 2019, 17:51

Dienstag 8. Januar 2019, 21:22

Hey,

Ich würde versuchen das ganze in einem Canvas zu zeichen. Den Schieber kannst du mit tag_bind beweglich machen (bei Mausbewegung alten Löschen und Neuen erzeugen). Gleichzeitig kannst du aus seiner Position bei der Bewegung (du bekommst ein event zurück) mittels event.x und event.y seine Position (Mauszeigerposition) ermitteln.
Im RGB-System muss die Addition der Gegenüberliegenden Seiten immer (255, 255, 255) geben. Im Oberen Halbkreis alpha in [0°,180°[ müssen 3 der 6 Extremfälle liegen:

(255, 0, 0) <-> (0, 255, 255)
(0, 255, 0) <-> (255, 0, 255)
(0, 0, 255) <-> (255, 255, 0)

Daher müssen die Fälle im 60° Winkel zueinander stehen. Hierbei kannst du die entsprechende Bereiche entsprechen ansteigen/fallen lassen (glaube linear müsste gehen). Im Bild ist die Reihenfolge (Bei Gelb beginnend):
(255, 255, 0) -> (255, 0, 0) -> (255, 0, 255) -> (0, 0, 255) [Blau] -> (0, 255, 255) -> (0, 255, 0)

Zum Einfügen des Kreises:
Da du nur die Koordinaten des Zeigers brauchst, kannst du theoretisch ein Bild einfügen. Der Zeiger wird nach dem Bild erzeugt und sollte daher immer auf dem Bild liegen.
Alternativ kannst du auch Pixel für Pixel im Kreis anmalen (kann aber etwas dauern)

Leider fällt mir auch keine bessere Möglichkeit ein. Hoffe es hilft trotzdem
Benutzeravatar
__blackjack__
User
Beiträge: 2540
Registriert: Samstag 2. Juni 2018, 10:21

Dienstag 8. Januar 2019, 22:08

Was das umrechnen von Farbkreis/Grad in RGB-Werte angeht, ist das `colorsys`-Modul aus der Standardbibliothek vielleicht interessant.
“All tribal myths are true, for a given value of 'true'.” – Terry Pratchett, The Last Continent
schmoldo
User
Beiträge: 2
Registriert: Dienstag 18. Dezember 2018, 21:03

Mittwoch 16. Januar 2019, 10:45

vielen dank für die Antworten
muss mich dann wohl mal mit dem canvas beschäftigen. sieht alles so kompliziert aus
Antworten