fractale_de_lyapunov
Ceci est une ancienne révision du document !
Fractale de Lyapunov
C++
#include <fstream> #include <iostream> #include <cstdlib> #include <cmath> #include <ctime> #include <string> using namespace std; const int largeur = 200, hauteur = 200; const int iteration = 10000; const string sequence = "AAAABBBBBBBBBBBBBBBB"; float proportion(float valeur, float valeurMin, float valeurMax, float valeurOutMin, float valeurOutMax) { float valeurOut = (valeur - valeurMin) / (valeurMax - valeurMin); valeurOut = valeurOutMin + valeurOut * (valeurOutMax - valeurOutMin); return valeurOut; } int main() { time_t debut, fin; time(&debut); float tableau[iteration]; tableau[0]= 0.5; float a, b; float* sequenceTab[sequence.size()]; for (int i = 0; i < sequence.size(); i++) { sequenceTab[i] = (sequence[i] == 'A') ? &a : &b; } float aValeur[largeur]; float bValeur[hauteur]; for (int i = 0; i < largeur; i++) { aValeur[i] = proportion(i, 0, largeur, 1.8, 2.2); } for (int i = 0; i < hauteur; i++) { bValeur[i] = proportion(i, 0, hauteur, 3.6, 4); } ofstream image("Imago.pgm"); image << "P2" << endl; image << largeur << " " << hauteur << endl; image << "255" << endl; for (int y = 0; y < hauteur; y++) { b = bValeur[y]; for (int x = 0; x < largeur; x++) { a = aValeur[x]; for (int k = 1; k < iteration; k++) { tableau[k] = *sequenceTab[k % sequence.size()] * tableau[k - 1] * (1 - tableau[k - 1]); } float exposant = 0; for (int k = 1; k < iteration; k++) { exposant += log(abs(*sequenceTab[k % sequence.size()] * (1 - 2 * tableau[k]))); } exposant = exposant / iteration; int c; if ((exposant > 0) || (exposant < -1)) { c = 0; } else { c = floor(proportion(exposant, 0, -1, 255, 0)); } image << c << endl;; } } time(&fin); cout << "Durée = " << difftime(fin, debut) << endl; system("open Imago.pgm"); return 0; }
Liens
https://solarianprogrammer.com/2018/11/19/cpp-reading-writing-bmp-images/
https://danielbeard.wordpress.com/2011/06/06/image-saving-code-c/
PPM
fractale_de_lyapunov.1573916676.txt.gz · Dernière modification : 2019/11/16 15:04 de Mushussu