So ich würde gerne einen Farbübergang (KEINEN Farbverlauf) von einer Farbe beginnend über andere Farben zu einer Zielfarbe.
Dann mach das doch mit einem Timer:
geeignetes Timerintervall festlegen (vielleicht 10, musst du halt ausprobieren).
Im Timerevent setzt du die Farbe auf den nächsten Farbwert und malst du den Halbkreis komplett neu, solange bis die Zielfarbe erreicht ist. Du brauchst nur noch den Algorithmus für die Berechnung des nächsten Farbwertes. Vielleicht wirst du da bei den hier schon geposteten Codeschnipsel für Gradienten fündig.