Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Hilfe bei Farbverlauf procedure (https://www.delphipraxis.net/138698-hilfe-bei-farbverlauf-procedure.html)

shmia 1. Apr 2011 10:40

AW: Hilfe bei Farbverlauf procedure
 
Zitat:

Zitat von Maik81ftl (Beitrag 1092276)
function ColorBetween(C1, C2 : TColor; blend:Real):TColor; da muß ich mind, 2 werte eingeben. bei dem Ausgang steht allerdings nur ein Wert zur verfühgung.

Dann schau nochmal genauer hin; die überladene Funktion gibt es in einer Variante, die beliebig viele Farben entgegen nimmt.
Wenn du 5 Farben übergibst, dann bekommst du den Verlauf in sagen wir mal 101 Schritten so:
Delphi-Quellcode:
for i:=0 to 100 do
begin
  blend := i * 0.01; // blend bewegt sich zwischen 0.0 bis 1.0 !!
  farbe := ColorsBetween([clBlack, clRed, clYellow, clWhite, clGreen], blend);
  // hier mit farbe etwas tun....
end;
Anstelle von clBlack, clRed,... übergibst du natürlich deine eigenen 5 Farben.

Maik81ftl 1. Apr 2011 11:20

AW: Hilfe bei Farbverlauf procedure
 
Delphi-Quellcode:
function Farbverlauf(bValue: Boolean; cValue: TColor):TProgSet;
Var H, S: Byte;
    L: Array[0..4] of Byte;
    Col: TProgSet;
begin
  if bValue then
    begin
    ColorToHLS(cValue, H, L[2], S);
    Col.Menst[4]:= HLStoColor(H, L[2]-38-38, S);
    Col.Menst[3]:= HLStoColor(H, L[2]  -38, S);
    Col.Menst[2]:= cValue;
    Col.Menst[1]:= HLStoColor(H, L[2]  +38, S);
    Col.Menst[0]:= HLStoColor(H, L[2]+38+38, S);
    Col.Periode:= Form3.Progset.Periode;
    end;
  if not bValue then
    begin
    ColorToHLS(cValue, H, L[2], S);
    Col.Periode[4]:= HLStoColor(H, L[2]-38-38, S);
    Col.Periode[3]:= HLStoColor(H, L[2]  -38, S);
    Col.Periode[2]:= cValue;
    Col.Periode[1]:= HLStoColor(H, L[2]  +38, S);
    Col.Periode[0]:= HLStoColor(H, L[2]+38+38, S);
    Col.Menst:= Form3.Progset.Menst;
    end;
  Result:= Col;
end;
Was haltet Ihr denne von der Variante???

shmia 1. Apr 2011 15:12

AW: Hilfe bei Farbverlauf procedure
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also irgendwie ist für dich ein Farbverlauf etwas anderes als für mich.
Meine Definition von Farbverlauf:
Ein Farbverlauf ermöglicht stufenloses Überblenden von 2 Farben.
Der Überblendungsfaktor bewegt sich dabei zwischen 0.0 (=0%) bis 1.0 (=100%).
Einen Farbverlauf zwischen mehreren Farben erreicht man dadurch, dass man hintereinander mehrere Farben überblendet.
Für dein Vorhaben brauchst du eigentlich nur 2 Randfarben:
2 stufen dunkler und 2 stufen heller als die Grundfarbe.
Genau in der Mitte also bei 50% liegt dann deine Grundfarbe im Verlauf.

Kleines Demo im Anhang.

Maik81ftl 1. Apr 2011 16:10

AW: Hilfe bei Farbverlauf procedure
 
Zitat:

Zitat von shmia (Beitrag 1092444)
Also irgendwie ist für dich ein Farbverlauf etwas anderes als für mich.
Meine Definition von Farbverlauf:
Ein Farbverlauf ermöglicht stufenloses Überblenden von 2 Farben.
Der Überblendungsfaktor bewegt sich dabei zwischen 0.0 (=0%) bis 1.0 (=100%).
Einen Farbverlauf zwischen mehreren Farben erreicht man dadurch, dass man hintereinander mehrere Farben überblendet.
Für dein Vorhaben brauchst du eigentlich nur 2 Randfarben:
2 stufen dunkler und 2 stufen heller als die Grundfarbe.
Genau in der Mitte also bei 50% liegt dann deine Grundfarbe im Verlauf.

Kleines Demo im Anhang.

Korektur. wie du es auch dem code entnehemn kannst recht ir das mit einer Farbe aus. und ja, bei mir ist es mehr eine Farbstufung als ein verlauf.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:22 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz