1
Ich denke, das Problem ist, wie ich die kartesische Koordinate in eine komplexe Zahl umwandeln, aber ich habe jetzt Idee, wie. Können Sie mir bitte erklären, wie ich konvertieren soll? Hier ist, was ich versuchte, aber:Mandelbrot Set nicht in der Mitte angezeigt
double c_Im = (y + (maxIm - minIm))/height;
double c_Re = (x + (maxRe - minRe))/width;
Code:
float minRe = -2.0;
float maxRe = 2.0;
double minIm = -2.0;
double maxIm = 2.0;
for (size_t y = 0; y < height; y++)
{
double c_Im = (y + (maxIm - minIm))/height;
for (size_t x = 0; x < width; x++)
{
double c_Re = (x + (maxRe - minRe))/width;
float dx = 0, dy = 0;
int z = 0;
while (dx * dx + dy * dy < 4 && z < maxIterator)
{
float temp = (dx * dx - dy * dy) + c_Re;
dy = 2 * dx * dy + c_Im;
dx = temp;
z++;
}
image.setPixel(x, y, Color(z % 255, z % 255, z % 255));
}
}
Ich glaube, dein Koordinatensystem ist es. Ich denke, dein Fenster ist nicht -1 zu 1 zugeordnet, sondern (0,0) zu (Breite, Höhe) – Makogan
Wie soll ich es zuordnen? Kannst du bitte Erklären? – Sparcsky
Der Mindestwert für Real- und Imaginärteil sollte 0 sein, wenn Sie ihn dem Fenster zuordnen, und die Maximalwerte sollten die Fensterbreite und die Fensterhöhe sein – Makogan