AGB  ·  Datenschutz  ·  Impressum  







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

Programmierung eines Farbverlaufs

Ein Thema von DelphiUser7 · begonnen am 28. Okt 2003 · letzter Beitrag vom 2. Dez 2003
Antwort Antwort
Seite 1 von 2  1 2      
DelphiUser7

Registriert seit: 27. Aug 2003
179 Beiträge
 
#1

Programmierung eines Farbverlaufs

  Alt 28. Okt 2003, 22:26
Hi,
hat einer von euch ne Ahnung, wie ich einen Farbverlauf proggen kann; ich hab nämlich hier schon alles abgesucht, aber nirgendwo ist eine Anleitung oder ein Beitrag, wo drin steht, wie ich einen ganz normalen Farbverlauf, von einer Farbe in eine andere Farbe, proggen kann;

DelphiUser7
Shell...wieso musste ausgerechnet Shell Teil einer Programmiersprache werden...wieso nicht Esso, Aral oder Dea;

MfG
DelphiUser7
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Programmierung eines Farbverlaufs

  Alt 28. Okt 2003, 22:29
Überleg mal so: Farben werden als Kombination von roten, grünen und blauen Farbwerten dargestellt, jeweils als Zahlen zw. 0 und 255. Mit einer Schleife kannst du die Komponentenwerte erhöhen und dann die zugehörige Farbe anzeigen.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#3

Re: Programmierung eines Farbverlaufs

  Alt 28. Okt 2003, 22:32
nochmals

Delphi-Quellcode:
var
* i* : Integer;
* s : array[0..2] of Byte;
* e : array[0..2] of Byte;
* d : array[0..2] of single;
begin
* s[0] := GetRValue(Color1);
* s[1] := GetGValue(Color1);
* s[2] := GetBValue(Color1);
* e[0] := GetRValue(Color2);
* e[1] := GetGValue(Color2);
* e[2] := GetBValue(Color2);
* for i := low(s) to high(s) do d[i] := (e[i]-s[i]) / Width;
* for i := 0 to Width do
* begin
* * Canvas.Pen.Color := rgb( Round(s[0] + i * d[0]),
* * * * * * * * * * * * * * *Round(s[1] + i * d[1]),
* * * * * * * * * * * * * * *Round(s[2] + i * d[2]) );
* * Canvas.MoveTo(i,0);
* * Canvas.LineTo(i,Height);
* end;
end;
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
DelphiUser7

Registriert seit: 27. Aug 2003
179 Beiträge
 
#4

Re: Programmierung eines Farbverlaufs

  Alt 29. Okt 2003, 10:14
Vielen Dank;
habs gerade getestet, und es funzt!;

Gruss
DelphiUser7
Shell...wieso musste ausgerechnet Shell Teil einer Programmiersprache werden...wieso nicht Esso, Aral oder Dea;

MfG
DelphiUser7
  Mit Zitat antworten Zitat
DelphiUser7

Registriert seit: 27. Aug 2003
179 Beiträge
 
#5

Re: Programmierung eines Farbverlaufs

  Alt 30. Okt 2003, 13:24
Ja, das war jetzt horizontal, what about 'vertikal'?;
Ich hab schon mal probiert, was passiert, wenn ich einfach überall das Gegenteil, also anstatt Height 'Width' reinschreibe; dann zeigt er mir eine bunt colorierte Leiste an, aber keinen vertikalen Farbverlauf;

DelphiUser7
Shell...wieso musste ausgerechnet Shell Teil einer Programmiersprache werden...wieso nicht Esso, Aral oder Dea;

MfG
DelphiUser7
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#6

Re: Programmierung eines Farbverlaufs

  Alt 30. Okt 2003, 18:32


Delphi-Quellcode:
 for i := 0 to Height do
 begin
  Canvas.Pen.Color := rgb( Round(s[0] + i * d[0]), Round(s[1] + i * d[1]), Round(s[2] + i * d[2]) );
  Canvas.MoveTo(0,i);
  Canvas.LineTo(Width,i);
 end;
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#7

Re: Programmierung eines Farbverlaufs

  Alt 2. Dez 2003, 12:10
mal ne frage zu diesem source:
Delphi-Quellcode:
var
  i : Integer;
  s : array[0..2] of Byte;
  e : array[0..2] of Byte;
  d : array[0..2] of single;
begin
  s[0] := GetRValue(clred);
  s[1] := GetGValue(clgreen);
  s[2] := GetBValue(clblue);
  e[0] := GetRValue(clred);
  e[1] := GetGValue(clgreen);
  e[2] := GetBValue(clblue);
  for i := low(s) to high(s) do d[i] := (e[i]-s[i]) / Width;
  for i := 0 to Width do
  begin
    Form1.Canvas.Pen.Color := rgb( Round(s[0] + i * d[0]),
                             Round(s[1] + i * d[1]),
                             Round(s[2] + i * d[2]) );
    Form1.Canvas.MoveTo(i,0);
    Form1.Canvas.LineTo(i,Height);
  end;
und zwar hab ich den bei form.create reingebracht aber es passiert nix mit der farbe.was muss ich hier ändern?
danke alex
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Programmierung eines Farbverlaufs

  Alt 2. Dez 2003, 12:14
Gib es einfach in das OnPaint-Ereignis.
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#9

Re: Programmierung eines Farbverlaufs

  Alt 2. Dez 2003, 12:15
ok danke geht
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#10

Re: Programmierung eines Farbverlaufs

  Alt 2. Dez 2003, 12:17


Mal den Verluaf doch auf ein Bitmap, und kopiere dieses beim OnPaint der Form auf das Canvas der selbigen (oder male es jedesmal im onpaint).

was ähnliches gibts hier

mfg Tobias
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:05 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