Wpis z mikrobloga

#programowanie #java Mam dziwny problem - napisałem generator zbioru Mandelbrota,a raczej przepisałem go z C++ do Javy, bo tak wcześniej go zrobiłem. W C++ działa dobrze dla rozdzielczości typu 16000x10000, a Javowy odwala- dla 1000x750 jest źle(zniekształcony obraz, podobny efekt miałem w wersji C++ gdy działałem na floatach), na 1440x900 jest ok, 2880x1800 już nie. Nie mogę odnaleźć błędu, więc może komuś się uda.

http://pastebin.com/QWV7c1zx

http://pastebin.com/S7z1NGV9

http://pastebin.com/e4ZdFapG

GUI nic do rzeczy nie ma, no ale niech będzie
  • 12
@Sebaall: ok, wg mnie problem leży w tym, że robisz pętlę po floatach i porównujesz je "<"

tam, gdzie jest zapisywanie obrazka do pliku. I dla niektórych szerokości ostatni piksel łąpie sięjako mniejszy niż 3./SZER a czasem nie i jak sięnie łapie, to każda kolejna linijka jest przesunięta w bok o ten jeden piksel.

Nie rób pętli po floatach, zrób po intach. I nie porównuj floatów == < > <= >=,
Obstawiam, że pixel ma 4 bajty, a nie 3 tak jak zakładasz. Wtedy cześć bajtów wpada na alfę i mamy takie przesunięcie. Po writer.write(Pixel.kolor(k));

spróbuj wpisac bajt 255 do writera.
@tell_me_more: sorry, chodziło mi o linijkę

for(x=-2.;x<1.;x=x+(3./SZER))
Tutaj zależnie od liczb czasem wyjdzie SZER pikseli, a czasem mniej z powodu niedokładności liczb zmiennoprzecinkowych. I analogicznie popraw fora z yekiem (chociaż akurat tam chyba się to nie zdarzało dla tych danych).