Je pense que le problème est de savoir comment je convertis la coordonnée cartésienne en un nombre complexe, mais j'ai maintenant une idée de comment. Pouvez-vous s'il vous plaît expliquer comment devrais-je convertir? Voici ce que j'ai essayé bien:Mandelbrot Ne pas afficher au centre
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));
}
}
Je pense que c'est votre système de coordonnées. Je pense que votre fenêtre n'est pas mappée -1 à 1 mais plutôt (0,0) à (largeur, hauteur) – Makogan
Comment dois-je la mapper? Pouvez-vous s'il vous plaît expliquer? – Sparcsky
Votre valeur minimale pour les parties réelle et imaginaire doit être 0 lorsque vous la mappez à la fenêtre, et les valeurs maximales doivent être la largeur de la fenêtre et la hauteur de la fenêtre – Makogan