Mandelbrot mit BigDecimal erstellen und in der UI zeichnen, funktionierte nicht.

morry329

Mitglied
Hallo zusammen,

ich habe eine Aufgabe bekommen, in der man ein Mandelbrot mit BigDecimal einsetzen und viele komplexer Zeuge wie z.B. Iterator anwenden muss. Ich benötige wieder eure Hilfsstellung.
Leider hat es bei mir nicht geklappt. Mein Bigdecimal-Mandelbrot ist so schüchtern, lässt sich nicht in der UI anzeigen:
Bildschirmfoto 2023-12-23 um 00.12.16.png
Anbei mein Code. Ich habe stundenlang probiert um ImageView/Image umzusetzen oder neu schreiben usw, hat nichts mir geholfen. Wäre schön, wenn jemand mir Tipps geben kann.

Java:
Public class MainKlasse{
public void start(Stage stage) {
    BorderPane root = new BorderPane();
    /*
     Dazwischen gibt es Zeilen für UI-Komponenten wie z.B. Labels, Statusbar, Textfeld
     */
   
    //Mandelbrot-Image abrufen
    Image bigdecimalMandelbrotImage = createBigDecimalMandelBrot();
    ImageView imgView = new ImageView(bigdecimalMandelbrotImage);

    //Mandelbrot anzeigen lassen
    root.setCenter(imgView);
    root.setBottom(statusBar);
    Scene scene = new Scene(root, WIDTH, 1000);
    stage.setScene(scene);
   


    stage.setTitle("Mandelbrot Canvas");
        stage.show();
    stage.setOnCloseRequest(we -> System.out.println("Closing application!"));
    }

   }

  }

public class FractalTestResult{
    /*andere variablen, methoden usw*/
}

class MandelbrotIterator implements Iterator<FractalTestResult> {
    public static final int WIDTH = 640;
    public static final int HEIGHT = 480;
    public static final double MAX_ITERARIONS = 50;
    private static final double REAL_MIN = -2.0;
    private static final double REAL_MAX = 2.0;
    private static final double IMAGINARY_MIN = -2.0;
    private static final double IMAGINARY_MAX = 2.0;
    private final Complex min;
    private final Complex max;
    private final int maxIterations;
    private final Arithmetics arithmetic;

    private int currentX;
    private int currentY;

    public MandelbrotIterator(Complex min, Complex max, int maxIterations, Arithmetics arithmetic) {
        this.min = min;
        this.max = max;
        this.maxIterations = maxIterations;
        this.arithmetic = arithmetic;

        this.currentX = 0;
        this.currentY = 0;
    }

    @Override
    public boolean hasNext() {
        return currentX < WIDTH && currentY < HEIGHT;
    }

    @Override
    public FractalTestResult next() {
        double realStep = (REAL_MAX - REAL_MIN) / WIDTH;
        double imaginaryStep = (IMAGINARY_MAX - IMAGINARY_MIN) / HEIGHT;

        if (!hasNext()) {
            throw new NoSuchElementException("keine Elementen in der Iteration mehr");
        }

        BigDecimal real = BigDecimal.valueOf(REAL_MIN + currentX * realStep);
        BigDecimal imaginary = BigDecimal.valueOf(IMAGINARY_MIN + currentY * imaginaryStep);

        Complex c = new Complex(real, imaginary);

               boolean isPartOfMandelbrot = isPartOfMandelBrot(c);
        currentX++;

        if (currentX >= WIDTH) {
            currentX = 0;
            System.out.println("progress: " + String.valueOf(100.0* currentY / HEIGHT) + "%");
            currentY++;
        }

                return new FractalTestResult(isPartOfMandelbrot ? maxIterations : 0);
    }

    private boolean isPartOfMandelBrot(Complex c) {
        int maxIterations = 50;

        Complex z = new Complex(BigDecimal.valueOf(0), BigDecimal.valueOf(0));

        for (int i = 0; i < maxIterations; i++) {
            z = z.mul(z).add(c);          
          if (z.abs().compareTo(BigDecimal.valueOf(2)) >= 0) { //was z2 as an arg
                return false;  
            }
        }

        return true; 
    }

    public int getCurrentX() {
        return 50;
    }

    public int getCurrentY(){
        return 50;
    }


}
 

KonradN

Super-Moderator
Mitarbeiter
Also ich habe den Algorithmus nicht geprüft, aber was direkt auffällt ist natürlich:
Java:
    public int getCurrentX() {
        return 50;
    }

    public int getCurrentY(){
        return 50;
    }

Dürfte aber keine Auswirkungen haben, da Du auf den ersten Blick diese Methoden nie nutzt.

Die Abbruchbedingung im hasNext mit currentX <= WIDTH ist auch unnötig, weil es nie eintreten kann. Wenn currentX >= WIDTH ist, dann wird es auf 0 gesetzt.

Und zuletzt: boolean isPartOfMandelbrot = isPartOfMandelBrot(c); - da wird irgendwas geprüft, aber damit machst Du nichts. Das ist der einzig kritische Punkt, wobei ich das nicht wirklich bewerten kann.

Generell solltest Du Schritt für Schritt schauen, was er macht bzw. nicht macht.
a) Alles, was Du uns an Fehler Details gibst, ist das Bild, das nicht kommt. Das besagt nichts
b) Wir haben nur Ausschnitte. Wenn Du den Fehler bereits auf diese Ausschnitte zurück führen konntest, dann hast Du Informationen, die Du uns verschweigst. Wenn nicht, dann fehlen uns wichtige Dinge um das nachzuvollziehen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JavaFX Mandelbrot-bild noch nicht optimiert AWT, Swing, JavaFX & SWT 7
M eigene GUI Bibliothek erstellen. AWT, Swing, JavaFX & SWT 10
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
C Swing ImageIcon erstellen, skalieren und verwenden AWT, Swing, JavaFX & SWT 3
T src ordner erstellen AWT, Swing, JavaFX & SWT 6
M Javafx versuch Bibliothek zu erstellen AWT, Swing, JavaFX & SWT 0
melaniemueller Confirmation Dialog erstellen AWT, Swing, JavaFX & SWT 18
izoards Outlook Mail erstellen - Signatur wird nicht angezeigt. AWT, Swing, JavaFX & SWT 3
E Putzplan erstellen AWT, Swing, JavaFX & SWT 15
news2swen automatisches erstellen eines Languagefiles AWT, Swing, JavaFX & SWT 1
W Clear Canvas und anschließendes neues Erstellen von Objekten auf Canvas aus ArrayList AWT, Swing, JavaFX & SWT 4
P Swing Programm hängt sich bei Buttondruck auf? (GUI für "Chatbot" erstellen) AWT, Swing, JavaFX & SWT 15
D runnable Jar mit Javafx erstellen(Eclipse) AWT, Swing, JavaFX & SWT 10
N Kontextmenü (Popup-Fenster) erstellen AWT, Swing, JavaFX & SWT 3
L JavaFX PropertyView mit dynamischer EditCell erstellen? AWT, Swing, JavaFX & SWT 8
C Falschfarbenbild (lineare Grauwertspreizung)aus Grauwert-Bild erstellen AWT, Swing, JavaFX & SWT 15
H Beim JFrame erstellen ein anderes schließen AWT, Swing, JavaFX & SWT 0
Z Random Butten erstellen ohne Container AWT, Swing, JavaFX & SWT 15
F Verzeichnis über GUI erstellen AWT, Swing, JavaFX & SWT 2
J Exception beim JFrame erstellen AWT, Swing, JavaFX & SWT 6
S Labels in Panel erstellen AWT, Swing, JavaFX & SWT 1
B JavaFX RadioButtons erstellen AWT, Swing, JavaFX & SWT 7
N Ausführbare Datei aus JavaFX Projekt erstellen AWT, Swing, JavaFX & SWT 22
A Objekt von einem Window erstellen? AWT, Swing, JavaFX & SWT 8
K Buttons dynamisch erstellen (NetBeans) AWT, Swing, JavaFX & SWT 10
ralfb1105 JavaFX TreeView dynamisch aus Datenbank Tabelle erstellen AWT, Swing, JavaFX & SWT 22
ralfb1105 JavaFX Dynamisch TableView Spalten erstellen AWT, Swing, JavaFX & SWT 4
O Basics - Anwendung erstellen mit mehreren Szenen AWT, Swing, JavaFX & SWT 1
dereki2000 LookAndFeel Individuelles LAF erstellen AWT, Swing, JavaFX & SWT 9
C SWT Breadcrumb Zeile mit entsprechenden Hyperlinks erstellen AWT, Swing, JavaFX & SWT 0
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1
L Chat erstellen AWT, Swing, JavaFX & SWT 13
N "Automatisches" erstellen von jButtons AWT, Swing, JavaFX & SWT 1
K Aus 2 Arrays xy - Graph erstellen AWT, Swing, JavaFX & SWT 9
K Swing outerPanel und innerPanel erstellen AWT, Swing, JavaFX & SWT 4
N Eclipse - GUI - MacBook - Buttonsichtbarkeit beim Anlegen/Erstellen AWT, Swing, JavaFX & SWT 14
Timo_neu_in_java Buttons Erstellen AWT, Swing, JavaFX & SWT 6
P JList erstellen AWT, Swing, JavaFX & SWT 4
H Musik wird nach dem erstellen der .jar Datei nicht mehr abgespielt AWT, Swing, JavaFX & SWT 1
J Statistik erstellen AWT, Swing, JavaFX & SWT 3
H GUI erstellen um JUnit Tests auszuführen AWT, Swing, JavaFX & SWT 29
H JavaFX via .fxml einen abgeleiteten Button erstellen... AWT, Swing, JavaFX & SWT 4
D Swing JComboBox (DefaultComboBoxModel) überschreibt Eintrag beim erstellen AWT, Swing, JavaFX & SWT 0
Prafy Sich ändernde Farbverläufe erstellen AWT, Swing, JavaFX & SWT 4
Thallius Swing Mehrere tausend "Panels" erstellen AWT, Swing, JavaFX & SWT 3
O Swing JList beim Klicken in der GUI erstellen AWT, Swing, JavaFX & SWT 6
M JavaFX GUI-Elemente erstellen, nachdem die GUI geladen hat AWT, Swing, JavaFX & SWT 4
U dynamisches JTree erstellen AWT, Swing, JavaFX & SWT 2
A Mit dem Scene Builder eine Collage erstellen (Bilder beziehen aus Flickr) AWT, Swing, JavaFX & SWT 1
D JavaFX build.fxbuild error beim Erstellen einer exe AWT, Swing, JavaFX & SWT 2
T JavaFX Flexible Layouts dynamisch erstellen / Design-Inspirationen AWT, Swing, JavaFX & SWT 8
J JavaFX JavaFX exe erstellen AWT, Swing, JavaFX & SWT 5
E JavaFX JavaFX - MenuItem erstellen aus dem Inhalt einer HashMap AWT, Swing, JavaFX & SWT 1
G Programm GUI erstellen AWT, Swing, JavaFX & SWT 5
N Swing JTree Problem beim erstellen der Knoten AWT, Swing, JavaFX & SWT 0
G Anonyme Instanz von JXImageView erstellen und mit Bild initialisieren AWT, Swing, JavaFX & SWT 7
M "(Buch-)Seiten" erstellen AWT, Swing, JavaFX & SWT 2
R AWT AWT Textfeld durch Klick auf Button erstellen? AWT, Swing, JavaFX & SWT 3
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
Z Diagramm mit jfreechart quadratisch erstellen AWT, Swing, JavaFX & SWT 1
F JButtons erstellen lassen mit unterschiedlichen Funktionen AWT, Swing, JavaFX & SWT 3
T JPanel dynamisch erstellen AWT, Swing, JavaFX & SWT 4
J Logikfehler im erstellen eines GUI AWT, Swing, JavaFX & SWT 3
A Swing Frames richtig erstellen AWT, Swing, JavaFX & SWT 3
T Wizard mit NEXT Button erstellen AWT, Swing, JavaFX & SWT 11
D gerichteten Graph erstellen AWT, Swing, JavaFX & SWT 2
D Swing Ansichtstranformationsmatrix erstellen AWT, Swing, JavaFX & SWT 0
M JavaFX MSI oder EXE aus JavaFX Projekt erstellen? AWT, Swing, JavaFX & SWT 2
R Kästchen mit Zufallsfarben erstellen AWT, Swing, JavaFX & SWT 2
A Fehler bei erstellen eines JTextFields AWT, Swing, JavaFX & SWT 2
A Fenster erstellen AWT, Swing, JavaFX & SWT 2
G Label erstellen AWT, Swing, JavaFX & SWT 6
G Blöcke erstellen AWT, Swing, JavaFX & SWT 4
K Swing Terminplaner erstellen AWT, Swing, JavaFX & SWT 7
G JavaFX Neues Fenster erstellen AWT, Swing, JavaFX & SWT 3
M Wie kann ich eine an Apple Automator angelehnte GUI erstellen? AWT, Swing, JavaFX & SWT 1
T An/aus Button erstellen AWT, Swing, JavaFX & SWT 5
A Swing Transparenten JPanel erstellen AWT, Swing, JavaFX & SWT 5
D Jahreskalender erstellen AWT, Swing, JavaFX & SWT 2
R Int aus JSpinner auslesen und Tabelle erstellen AWT, Swing, JavaFX & SWT 3
W JTable erstellen und Spalten sortieren AWT, Swing, JavaFX & SWT 2
B Erstellen eigener Combobox ("CellFactory") AWT, Swing, JavaFX & SWT 4
K Swing SwingGUI - Erstellen für Anfänger AWT, Swing, JavaFX & SWT 15
B Eigenen Look&Feel erstellen?! AWT, Swing, JavaFX & SWT 2
S Swing Kopie eines JPanels inkl. aller objekte darin erstellen AWT, Swing, JavaFX & SWT 5
R SWT Eigene Events erstellen und werfen AWT, Swing, JavaFX & SWT 59
K JSpinner in passender Breite erstellen oder automatisch anpassen AWT, Swing, JavaFX & SWT 2
B 2D-Grafik Dynamisches Erstellen von Images und deren Animation AWT, Swing, JavaFX & SWT 4
C Border in JPanel erstellen AWT, Swing, JavaFX & SWT 4
P JTabbedPane per Menuitem erstellen AWT, Swing, JavaFX & SWT 20
B Swing invokeLater nötig beim GUI erstellen? AWT, Swing, JavaFX & SWT 10
V Swing Wochenplaner in Swing erstellen! Aber wie? AWT, Swing, JavaFX & SWT 13
J Frame mit Button erstellen - Warum ist es nötig, Frame über Unterklasse zu erstellen? (Reg Listener) AWT, Swing, JavaFX & SWT 2
P Neue Datei erstellen in JPanel AWT, Swing, JavaFX & SWT 5
V Guis erstellen mit FXML und javaFX gemischt AWT, Swing, JavaFX & SWT 5
B Swing JMenuButtons mit Funktionen aus Array erstellen AWT, Swing, JavaFX & SWT 4
B Bild direkt im Quelltext erstellen AWT, Swing, JavaFX & SWT 14
B Applet Aus Applet signiertes jar mit externen libs erstellen AWT, Swing, JavaFX & SWT 9
I Swing GUI "ordentlich" mit Guice erstellen AWT, Swing, JavaFX & SWT 2
B Java scatterplot mit Sticks effizient erstellen! AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben