Bedankt voor de antwoorden! (Probleem opgelost, zie volgende post, deze laat ik dan maar staan voor de geïnteresseerden!)
@Lesly: Door de z buiten de method te definieren, kan ik inderdaad zoomen, maar gebeurt de coördinaten transformatie niet helemaal zoals het zou moeten. Ik besef nu hoe slecht ik het heb uitgelegd, dus hier komt een nieuwe poging:
MouseClicked is een method van een klasse die de mouseListener implementeert. Bovenaan deze klasse gebeurt dit:
Code: Select all
private JCanvas c = new JCanvas();
private JFrame f = new JFrame("Mandelbrot");
Broodje b = c.getBroodje();
Waar JCanvas de PaintComponent override van de JComponent en hierop een kleurfunctie aangestuurd door de klasse Broodje plaatst. (dit omdat Broodje een BufferedImage beschrijft). JFrame spreekt voor zich denk ik.
Broodje heeft een method
Code: Select all
setBroodje(xMin, xMax, yMin ,yMax)
. Deze method tekent op een BufferedImage een mandelbrot met als deze waarden als maximale/minimale y/x waarden in het complexe vlak. De pixels worden dus via een coördinaten transformatie naar overeenkomstige punten in het complexe vlak getranformeerd. Het idee is om bij het punt waar je klikt een deel
bij en af de x-waarde te tellen en deze als resp xMax en xMin met setBroodje mee te geven (vandaar dat z een constante waarde was) Bij y analoog en zo krijg je normaal gezien een mandelbrot die loopt van je nieuwe punt (xMin, yMin) tot (xMax,yMax), aangezien deze schaal nu kleiner is, is er gezoomd rond het geklikte punt.(=@Necrock)
Mijn probleem is nu dat wanneer ik via setBroodje mijn xMax ,... in het Broodje b aanpas, deze de klik erna weer de originele waarden aannemen in plaats van de bij de vorige klik ingevoerde xMax,.... Ik kreeg echter wanneer ik hetzelfde deed als wat lesly voorstelt, maar dan met een integer die bij iedere klik moest optellen, geen optellende integer, maar steeds de beginwaarde die vooraf was gedefinieerd. Nu wil dit wel werken dus ga ik eens proberen mijn xMax,... zo bij te houden.
@Pieter, sorry he ik ben een fysicus
@Robbe, bedankt om mij te verdedigen
en ook voor het verplaatsen van de topic.
@Tom, ik denk dat ik het voor nu nog even bij java ga houden, de prof moet ook nog meekunnen he
. Ik moet hier thuis alleen een beetje opletten met het aantal iteraties ik mijn zes jaar oud dingetje met een 1,6GHz athlon, laat doen, hij heeft het nu al zo warm!
Dan tot slot een triviavraagje, de link naar die mandelbrot set van Tom (
http://www.ozone3d.net/demos_projects/m ... ot_set.php)
Deze staat op een site die vooral uitpakt met coole en supersnelle gpu's. Nu dacht ik eigenlijk dat de meeste van die berekeningen (en dan zeker in java) door de cpu gebeuren of zit ik hier fout?
Soit, geniet nog van het weer!
Ben