Halli Hallo...
[wens nich interessiert überspringen]
Ich weiß nicht ob ich hier in der richtigen Rubrik gelandet bin, aber wird schon irgendwie hinhaun.^^ Im Rahmen meines Studiums sollte ein Fraktalgenerator programmiert werden und zwar in C. Naja das hab ich zwar gemacht, aber da ich die Sprache nich gerade mag (geschmackssache), bin ich umgeschwenkt auf Java, genauergesagt J#. Die schönen Bilder haben mich einfach mitgerissen und ich habe das Programm recht gut ausgebaut. Da das setzen von Pixeln mittels GDI+ ziemlich langsam erfolgt, habe ich mich außerdem noch etwas in DirectX eingearbeitet. Das Zeichnen erfolgt nun darüber...
[und hier weiterlesen]
Nun aber zur Frage: Ich überlege schon die ganze Zeit wie ich diesen Code hier optimieren könnte:
Und zwar ist es so, dass sich der Wert der Variable typ innerhalb der Schleife nicht ändert. D.h. es wird verdammt oft geprüft ob typ true oder false ist, obwohl das Ergebnis längst feststeht.
Mir ist bewusst dass ich bereits vor der Schleife eine Verzweigung machen könnte. Somit würde die Abfrage nur einmal laufen. Da müsste die Schleife aber 2 mal im Code enthalten sein mit den jeweilig unterschiedlichen Aufrufen von GetItera, was ich ziemlich doof finde.
Kennt jemand eine Möglichkeit den Code zu optimieren? Oder gibt es irgendwie eine Möglichkeit in der Art:
Schleife: GetItera()
mit einer vorherigen Abfrage wird der Inhalt der Prozedur GetItera() geändert.
Danke schon mal.
[wens nich interessiert überspringen]
Ich weiß nicht ob ich hier in der richtigen Rubrik gelandet bin, aber wird schon irgendwie hinhaun.^^ Im Rahmen meines Studiums sollte ein Fraktalgenerator programmiert werden und zwar in C. Naja das hab ich zwar gemacht, aber da ich die Sprache nich gerade mag (geschmackssache), bin ich umgeschwenkt auf Java, genauergesagt J#. Die schönen Bilder haben mich einfach mitgerissen und ich habe das Programm recht gut ausgebaut. Da das setzen von Pixeln mittels GDI+ ziemlich langsam erfolgt, habe ich mich außerdem noch etwas in DirectX eingearbeitet. Das Zeichnen erfolgt nun darüber...
[und hier weiterlesen]
Nun aber zur Frage: Ich überlege schon die ganze Zeit wie ich diesen Code hier optimieren könnte:
Code:
for (i = 0; i < konstanten.Xpoints(); i++) { wx = ((double)i) * (konstanten.Xmax() - konstanten.Xmin()) / ((double)konstanten.Xpoints()) + konstanten.Xmin(); for (j = 0; j < konstanten.Ypoints(); j++) { wy = ((double)j) * (konstanten.Ymin() - konstanten.Ymax()) / ((double)konstanten.Ypoints()) + konstanten.Ymax(); if (typ) { it = GetItera(wx, wy, vx, vy); } else { it = GetItera(vx, vy, wx, wy); }
Mir ist bewusst dass ich bereits vor der Schleife eine Verzweigung machen könnte. Somit würde die Abfrage nur einmal laufen. Da müsste die Schleife aber 2 mal im Code enthalten sein mit den jeweilig unterschiedlichen Aufrufen von GetItera, was ich ziemlich doof finde.
Kennt jemand eine Möglichkeit den Code zu optimieren? Oder gibt es irgendwie eine Möglichkeit in der Art:
Schleife: GetItera()
mit einer vorherigen Abfrage wird der Inhalt der Prozedur GetItera() geändert.
Danke schon mal.
Comment