/*
Source file: FraktaleMenge.java
Author: Markus Bautsch
Licence: public domain
Date: 9 April 2021
Version: 1.0
Programming language: Java
*/
/*
Steuert die graphische Ausgabe von Julia- und Mandelbrot-Mengen
*/
public class FraktaleMenge
{
// Die Konstanten der Klasse
public final static int maximaleAnzahlDerIterationen = 100; // Maximale Anzahl zur Ermittlung der Divergenz der Polynomfolge
private final static int schrankeZ2 = 4; // Schranke fuer das Betragsquadrat von z zur Ermittlung der Divergenz der Polynomfolge
/*
* Berechnung des nächsten Polynomglieds mit z(n+1) = z(n)^2 + c
* @param z: Variable z des Polynoms
* @param c: Variable c des Polynoms
*/
private static void berechneNaechstesPolynomglied (KomplexeZahl z, KomplexeZahl c)
{
KomplexeZahl.quadriere (z);
KomplexeZahl.addiereZu (z, c);
}
/*
* Ermittelt die Iterationszahl bis zum Erreichen einer Schranke oder einer maximalen Iterationszahl
* @param z: Variable z des Polynoms
* @param c: Variable c des Polynoms
* @return: Iterationszahl bis zum Erreichen von schrankeZ2 oder
* maximaleAnzahlDerIterationen, wenn schrankeZ2 nicht ueberschritten wurde
*/
public static int iterationszahlBisSchranke (KomplexeZahl z, KomplexeZahl c)
{
int zaehler = 0;
while ((zaehler < maximaleAnzahlDerIterationen) && (KomplexeZahl.betragsquadrat (z) < schrankeZ2))
{
berechneNaechstesPolynomglied (z, c);
zaehler++;
}
return zaehler;
}
}