![]() |
Farbskala für eine Juliamenge ($1FFF)
[delphi]
Ich programmiere gerade ein Programm das Julia-Mengen abbildet. Und bin bei der Abstimmung der Farbskalen beim Anschauen von anderen Programmiertexten auf folgenden Ausdruck gestossen: $1FFF. Könnte mir jemand bitte erklären um was es da geht. SemolasP |
Re: $1FFF
Handelt sich um eine Hexzahl
|
Re: $1FFF
Und was ist eine Hexzahl? Sorry, bin Anfänger ...
|
DP-Maintenance
Dieses Thema wurde von "Phoenix" von "Tutorials und Kurse" nach "Sonstige Fragen zu Delphi" verschoben.
Das ist unter Garantie weder ein Tutorial noch ein Kurs... |
Re: $1FFF
Eine andere Drastellung einer Zahl, wobei eine Stelle nun 16 Wertmöglichkeiten besitzt
Dual - 2 Möglichkeiten: 0, 1 Dezimal - 10 Möglichkeiten: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Oktal - 8 Möglichkeiten: 0, ..., 7 Hexadezimal - 16 Mögl. : 0, ..., 9, A, B, C, D, E, F Bsp: Zahl 11 16 Dual: 1011 10000 Dezimal: 11 16 Hex: B 10 |
Re: $1FFF
Hallo und herzlich Willkommen in der DP :dp:
Was eine Hexzahl ist, hätte Dir Google bei der Suche nach ![]() ![]() Dann solltest Du bitte zukünftig auch schauen, in welche Sparte zu postest. Diese Frage ist ganz sicher kein Tutorial. Zum anderen: Bist Du Dir 100% sicher, dass das eine Frage zu Delphi.NET ist, oder meinst Du normales Delphi (für Win32)? Zuguterletzt möchte ich Dich bitten, Deiner Frage noch einen etwas aussagekräftigeren Titel zu geben. Bitte klicke dazu rechts oben bei dem Beitrag auf 'Edit' und ändere den Titel so, dass man weiss um was es geht. Mit "$1FFF" (bzw. "8191") kann niemand etwas anfangen. |
Re: $1FFF
Und wie steht das in Zusammenhang mit meiner
Farbskala? Hier ist mein Programmiertext der zutreffenden Funktion:
Delphi-Quellcode:
[edit=Phoenix]Delphi-Tag geschlossen Mfg, Phoenix[/edit]
procedure iteriere(z:Complex) ;
var i,k : integer ; begin k:= 1 ; for i:=1 to 1001 do begin if ((z.re*z.re+z.im*z.im) > (c.im*c.im+c.re*c.re)) and ((z.re*z.re+z.im*z.im) > 4 ) then break; z:= f(z) ; k:= k+1 end; if k >= 1001 then Form1.Image1.Canvas.Pixels[xpix,ypix] := clBlack else Form1.Image1.canvas.pixels[xPix,yPix] := $1FFF*(k+x) ; //x steht für eine beliebige Zahl ; end; |
Re: Farbskala für eine Juliamenge ($1FFF)
Eigentlich hat es überhaupt nichts mit der Berechnung des Fraktals zu tun. Dies ist eine von ich würde behaupten unbegrenzt vielen Möglichkeiten Pixeln eine Farbe zuzuweisen, in diesem Fall abhängig davon wie viele Iterationen der Ausgangswert "überlebt" hat.
TCanvas.Pixels[] ist vom Typ ![]() Das Verfahren ist allerdings zugegebenermaßen ein wenig ungewöhnlich, da man in den meisten Fällen Rot, Grün und Blau separat berechnet, und anschließend mit ![]() Als genereller Tipp: Verabschiede dich von der Untrennbarkeit zwischen Wert und Darstellung. Ich kann z.B. den Wert von 12 auf beliebige Weise darstellen in dem ich einfach ein anderes System verwende. Das allgemein gebräuchliche ist das Dezimalsystem, in welchem dem (modernen) Menschen "12" sofort einleuchtet. Ich kann den selben Wert auch als "C" schreiben, sollte dann nur dazu sagen dass ich das Hexadezimalsystem verwende. In Delphi tut man dies, in dem man das Dollarzeichen der Zahl voran stellt, also "$C". Gemeint ist nach wie vor der Dezimalwert von 12. Man könnte auch ein ganz anderes System, etwa das der Maya verwenden. Dann sieht die Darstellung des Wertes wieder ganz anders aus, aber es ist noch immer der Wert von dezimal 12 gemeint. $1FFF ist also im Hexadezimalsystem dargestellt, und würde im Dezimalsystem 8191 lauten. Allerdings bietet sich gerade bei Farben die hexadezimale Darstellung an, da immer zwei Stellen der Zahl zu je einem Byte gehören, und somit die Helligkeit jeder der Farbkomponenten ganz gut ersichtlich ist. Im Dezimalsystem ist diese Zuordnung so einfach nicht möglich. Als Beispiel: $1FFF ist das gleiche wie $001FFF (einfach Nullen vorne auffüllen, tut im Dezimalsystem auch nicht weh). Je Farbkomponente habe ich 2 Stellen, also ist eine "00", eine "1F" und die letzte "FF". Welcher Wert zu welcher Farbe gehört ist eine Sache der Konvention, in diesem Falle ist es Blau, Grün, Rot. Also weiss ich ohne weiteres: Blau=00 -> ganz dunkel, kein Blau in der Farbe Grün=1F -> sehr dunkles Grün ist beteiligt Rot =FF -> volle Pulle Rot Jetzt ist es hilfreich zu wissen, dass das RGB-Farbsystem ein additives ist (Lichtfarben), und Rot+Grün=Gelb gilt. Da nur sehr wenig Grün dabei ist, wird hier ein sehr rotes Orange (oder auch gelbliches Rot) hinten raus kommen. |
Re: Farbskala für eine Juliamenge ($1FFF)
Danke ... :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz