AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Möglichkeit für Farbscala

Ein Thema von eroe · begonnen am 17. Jun 2004 · letzter Beitrag vom 22. Jun 2004
Antwort Antwort
eroe

Registriert seit: 15. Mai 2004
Ort: Brandenburg
31 Beiträge
 
#1

Möglichkeit für Farbscala

  Alt 17. Jun 2004, 19:58
Hallo Jungs

Ich möchte ein Programm schreiben, in der eine Farbscala bearbeitet wird, und zwar sollen dies "Bereiche" der Scala, also die Einteilung, vom User frei wählbar sein (1-100 Abstufungen).
Soweit so gut, jedoch hab ich leider nicht die geringste Idee mit was für einem Objekt ich das realisieren kann
Ich hoffe ihr könnt mir da einen Denkanstoß geben ..

So long

eroe
"Der ganze Rummel um die Emanzipation hat nichts daran geändert, dass Frauen sich hübsch machen um Männern zu gefallen"
  Mit Zitat antworten Zitat
hlohning

Registriert seit: 17. Jun 2004
2 Beiträge
 
#2

Re: Möglichkeit für Farbscala

  Alt 17. Jun 2004, 22:08
In der SDL Component Suite gibt es Funktionen zur Interpolation von RGB Farben und zur Konversion zwischen HSI, CYMK und RGB. Damit kannst du dann beliebige Farbskalen erzeugen:

http://www.lohninger.com/helpcsuite/..._sdlcolors.htm

Hier der Source-Code dazu:


Delphi-Quellcode:
(******************************************************************************)
function InterpolateColor (Cl1, Cl2: TColor; Level: double): TColor;
(******************************************************************************
  ENTRY:  Cl1 .... start color
          Cl2 .... end color
          Level ..... interpolation level (0..1)

  EXIT:  function returns mixed color which contains 100*Level percent of color1
          and 100(1-Level) percent of color2
******************************************************************************)


var
  r,g,b : integer;
  C1Blue,
  C1Green,
  C1Red,
  C2Blue,
  C2Green,
  C2Red : integer;

begin
if Level > 1 then
  Level := 1;
if Level < 0 then
  Level := 0;
C1Blue := (Cl1 and $00FF0000) shr 16;
C1Green := (Cl1 and $0000FF00) shr 8;
C1Red := Cl1 and $000000FF;
C2Blue := (Cl2 and $00FF0000) shr 16;
C2Green := (Cl2 and $0000FF00) shr 8;
C2Red := Cl2 and $000000FF;
b := trunc(C1Blue+Level*(C2Blue-C1Blue));
g := trunc(C1Green+Level*(C2Green-C1Green));
r := trunc(C1Red+Level*(C2Red-C1Red));
InterpolateColor := (RGB (r,g,b) and $00FFFFFF);
end;
[edit=sakura] [delphi]Tags Mfg, sakura[/edit]
  Mit Zitat antworten Zitat
eroe

Registriert seit: 15. Mai 2004
Ort: Brandenburg
31 Beiträge
 
#3

Re: Möglichkeit für Farbscala

  Alt 18. Jun 2004, 15:46
merci beaucoup
werd ich mich nachher gleich mal hinterklemmen ..
gott sei dir gnädig

so long

eroe
"Der ganze Rummel um die Emanzipation hat nichts daran geändert, dass Frauen sich hübsch machen um Männern zu gefallen"
  Mit Zitat antworten Zitat
eroe

Registriert seit: 15. Mai 2004
Ort: Brandenburg
31 Beiträge
 
#4

Re: Möglichkeit für Farbscala

  Alt 22. Jun 2004, 15:45
Huhu again

So, ich hab jetz n bissl mit der Funktion rumgespielt, funktioniert einwandfrei, genau das was ich suchte !
Meine nächste Frage wäre, welche Komponente kann man denn eurer Ansicht nach am besten nutzen, um eine solche - dynamisch einteilbare - Farbscala darzustellen ? Denn da bin ich immernoch komplett unsicher .. Ich hab mir gedacht es ganz simpel mit Canvas zu bauen (jaja, unschön ohne Ende, ich weiß ) aber da hat man ja, weil man auf die Integer-Werte angewiesen ist, extreme Ungenauigkeiten drin Wenn ich zB genau 73 Stufen haben will ist es nahezu unmöglich mit Integer-Werten eine möglichst genaue Einteilung zu machen, und soweit ich weiß arbeitet Canvas NUR mit Integer-Werten für Koordinaten, oder ?
Naja, jedenfalls wäre ich hier wiedermal für eure Hilfe dankbar
"Der ganze Rummel um die Emanzipation hat nichts daran geändert, dass Frauen sich hübsch machen um Männern zu gefallen"
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Möglichkeit für Farbscala

  Alt 22. Jun 2004, 15:58
Moin!

Du kannst dir doch einfach eine Komponente bauen, abgeleitet von einem TGraphicControl. Ansonsten benutzt Canvas immer nur ganze Pixelkoordinaten, weil halbe Pixel sind schlecht darstellbar. Somit wird bei solchen Einteilungen immer auf eine unterschiedliche Grösse der Bereiche hinauslaufen, aber dieser Unterschied von einem Pixel ist doch eigentlich vernachlääsigbar. Anonsten wenn du einen reinen Farbauswahl Dialog bauen willst (also alle Abstufen bzw. alle Farbwerte), so könnte dir das hier helfen.

MfG
Muetze1
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:56 Uhr.
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