AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Prism Farbskala für eine Juliamenge ($1FFF)
Thema durchsuchen
Ansicht
Themen-Optionen

Farbskala für eine Juliamenge ($1FFF)

Ein Thema von SemolasP · begonnen am 2. Dez 2008 · letzter Beitrag vom 3. Dez 2008
Antwort Antwort
SemolasP

Registriert seit: 6. Okt 2008
4 Beiträge
 
#1

Farbskala für eine Juliamenge ($1FFF)

  Alt 2. Dez 2008, 20:41
[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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: $1FFF

  Alt 2. Dez 2008, 20:43
Handelt sich um eine Hexzahl
Markus Kinzler
  Mit Zitat antworten Zitat
SemolasP

Registriert seit: 6. Okt 2008
4 Beiträge
 
#3

Re: $1FFF

  Alt 2. Dez 2008, 20:48
Und was ist eine Hexzahl? Sorry, bin Anfänger ...
  Mit Zitat antworten Zitat
2. Dez 2008, 20:51
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...
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: $1FFF

  Alt 2. Dez 2008, 20:54
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
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#6

Re: $1FFF

  Alt 2. Dez 2008, 20:59
Hallo und herzlich Willkommen in der DP

Was eine Hexzahl ist, hätte Dir Google bei der Suche nach Bei Google suchenhexzahl im dritten Treffer im Detail verraten. Ein bisschen mehr Eigeninitiative darf hier schon verlangt werden.

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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
SemolasP

Registriert seit: 6. Okt 2008
4 Beiträge
 
#7

Re: $1FFF

  Alt 2. Dez 2008, 21:04
Und wie steht das in Zusammenhang mit meiner
Farbskala?

Hier ist mein Programmiertext der zutreffenden
Funktion:

Delphi-Quellcode:
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;
[edit=Phoenix]Delphi-Tag geschlossen Mfg, Phoenix[/edit]
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Farbskala für eine Juliamenge ($1FFF)

  Alt 3. Dez 2008, 01:54
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 Delphi-Referenz durchsuchenTColor, welcher erstmal nichts weiter als ein Integer ist. Dabei werden die 4 Bytes aus denen ein Integer zusammengesetzt ist jeweils als Helligkeitswert für eine der drei Grundfarben interpretiert (das höchste Byte bleibt zunächst einmal ungenutzt). $1FFF würde in diesem Fall als Blau = 0; Grün = $1F; Rot = $FF interpretiert, was einem ganz leicht orangenem Rot entsprechen dürfte. Das Multiplizieren mit (k+x) führt dann im Grunde nur noch dazu, dass für unterschiedliche Werte von k unterschiedliche Farben dabei heraus kommen.
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 Bei Google suchenBitoperationen zu einem einzigen Farbwert zusammen setzt. Es gibt aber keine Regel die das von dir gezeigte Vorgehen verbieten würde. Es ist eben eine von vielen Möglichen, und du bist nicht gezwungen es genau so zu machen.


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.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
SemolasP

Registriert seit: 6. Okt 2008
4 Beiträge
 
#9

Re: Farbskala für eine Juliamenge ($1FFF)

  Alt 3. Dez 2008, 16:30
Danke ...
  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 10:28 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