Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Jul 22, 2025 07:40

Foren-Übersicht » Programmierung » Shader
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: atan fehlerhaft?
BeitragVerfasst: Di Feb 26, 2013 14:06 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 11, 2009 08:02
Beiträge: 532
Programmiersprache: pascal (Delphi 7)
ich versuche momentan mit GLSL Fraktale zu zeichnen, konkret: Mandelbrotmenge. Da ich nicht nur ^2 haben will, muss ich zwischen kartesischen und polarkoordinaten hin und her rechnen. mit
Code:
  1. vec2 ToPolar( vec2 x ) {
  2.   return vec2( sqrt( x.x*x.x + x.y*x.y ), atan( x.y/ x.x ) );
  3. }
funktioniert es einwandfrei, solange ich nur gerade, natürliche Exponenten benutze, sonst sieht es, wie zu erwarten, komisch aus, da atan nur das Intervall [-π/2, π/2] zurückgibt, was nunmal für ungerade oder nicht natürliche Exponenten doch einen gewaltigen Unterschied macht.

Dieses Problem wollte ich nun umgehen, indem ich atan(x.y, x.x) benutze, das laut specs einen Wert im Intervall [-π, π] zurückgiebt. Nur wird es nun in der Nähe von π aus irgendeinem Grund ziemlich chaotisch.

Dateianhang:
Mandelbug.jpg
Mandelbug.jpg [ 139.57 KiB | 5875-mal betrachtet ]

die zwei Antennen sollten eine sein, und mit dem anderen atan sind sie es auch. Weiß wer, woran das liegt, bzw, wie ich das Problem lösen kann?

edit: sieht ein wenig so aus, als sei das π dieses atan (aber nicht des anderen) ein wenig (bzw eben nicht so wenig) zu klein geraten.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: atan fehlerhaft?
BeitragVerfasst: Di Feb 26, 2013 15:12 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Wie sehen denn die Werte so aus, die du in den atan2 reinkippst? Ich stelle mir vor, dass die an der Genauigkeitsgrenze deines Datentyps sind (float, double?).

grüße

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: atan fehlerhaft?
BeitragVerfasst: Di Feb 26, 2013 16:35 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 11, 2009 08:02
Beiträge: 532
Programmiersprache: pascal (Delphi 7)
float (atan gibt’s nicht für double), aber von der Genauigkeitsgrenze bin ich noch weit entfernt. Außerdem würde das anders aussehen (eher pixelig als chaotisch; die Antenne kann dadurch zwar dicker werden (sie wird), aber nicht zweigeteilt). Und wie gesagt wäre es mit dem anderen atan dann genauso (bzw ähnlich).

Der Fehler ist tatsächlich bereits sichtbar, wenn ich nicht reinzoome, damit’s sofort auffallt, hab ich ein bisschen reingezoomt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: atan fehlerhaft?
BeitragVerfasst: Di Feb 26, 2013 17:26 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich hab leider keine so rechte ahnung, wovon du sprichst, wenn du Antenne sagst. Kannst du ein Vergleichsbild zeigen?

grüße

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: atan fehlerhaft?
BeitragVerfasst: Di Feb 26, 2013 20:10 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 11, 2009 08:02
Beiträge: 532
Programmiersprache: pascal (Delphi 7)
Das dünne gerade Ding an der Mandelbrotmenge.

Dateianhang:
Antenna.jpg
Antenna.jpg [ 99.57 KiB | 5852-mal betrachtet ]
(Hier hab ich übrigens weiter reingezoomt als beim anderen Bild)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » Shader


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 17 Queries | GZIP : On ]