Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   Java mandelbrotfiguur (https://forum.scholieren.com/showthread.php?t=1482216)

Kurogane 04-10-2006 01:26

Java mandelbrotfiguur
 
Oke ik moet dus voor mijn studie een mandelbrotfiguur maken en de kleuren moeten veranderen en die moeten afhangen van het mandelgetal. Bijv
zwart = oneven
wit = even

dus heb ik dit ergens vandaan gezien:

if (this.berekenMandelGetal(x * schaalFactor + middenX, y * schaalFactor + middenY) % 2 == 0) {
g.setColor(Color.BLACK); }
else {
g.setColor(Color.WHITE); }

maar wat ik niet snap wat doet x * schaalfactor en middenx etc daar?

waarom is niet hetResultaatvanMandelGetal % 2?

fosje 04-10-2006 20:29

mandelbrot ken ik niet, maar % geeft de rest van een deling. Wanneer je dus deelt door een even getal zal er bij een deling door 2 niets over blijven, bij een oneven getal blijft er 1 over.
In dit voorbeeld is zwart dus voor de even en wit voor de oneven getallen.

Guinevere03 04-10-2006 21:39

Ik heb net voor mijn studie de mandelbrot vandaag ingeleverd:P.

Eerst maar ff de eerste parameter:
x * schaalFactor + middenX

x staat er omdat je natuurlijk van een bepaald punt het mandelgetal wilt berekenen.
schaalFactor staat er omdat je niet in pixels wilt rekenen, maar in een bepaald gebied van x1 tot x2 (bijvoorbeeld van -2 tot 2. Dan maak je een applet van 400 breed en met schaalfactor 0.01. Je kan dan 4 maal x bestrijken met je mandelbrot en 400*0.01=4)
middenX staat er omdat je voor de verandering wilt dat Java in het midden begint met tekenen in plaats van linksboven. Door middenX (wat waarschijnlijk ergens gedeclareerd zal staan als: double middenX = this.getWidth()/2; ) erbij op te tellen ligt je x=0 in het midden en niet helemaal links.

Voor de tweede parameter gaat hetzelfde verhaal op (alleen is de breedte dan natuurlijk de hoogte).

Misschien had je het zelf al bedacht, maar je kan op deze manier dus ook meerdere kleuren geven aan je mandelbrot (voeg bijvoorbeeld na je else toe:
if (this.berekenMandelGetal(x * schaalFactor + middenX, y * schaalFactor + middenY)%3=0)
g.setColor(Color.YELLOW);

Ander iets wat misschien wel handig is om te doen: laat 'm 't mandelgetal eerst ff uitrekenen en sla dat op in een variabele. Je kan daarna je kleuren heel mooi af laten hangen van je mandelgetal. Probeer maar eens een nieuwe kleur te maken waarbij je de R, G en B waarden af laat hangen van je mandelgetal. Houd wel rekening met de max van 255 voor elke R, G en B. (Tip: de klasse Math heeft daar een heel handige optie voor, check de Library maar eens ;)).

Ik hoop dat je hier weer wat mee kan :)

Kurogane 04-10-2006 21:54

Doe je ook informatiekunde :p

Guinevere03 08-10-2006 10:12

Nee ik doe Informatica (in Utrecht, trouwens)

Kurogane 09-10-2006 01:35

me2, informatiekunde heeft ook imp helaas


Alle tijden zijn GMT +1. Het is nu 03:40.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.