Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Fraktale.Problem z rysowaniem.

Ostatnio zmodyfikowano 2014-06-06 21:07
Autor Wiadomość
raptor22
Temat założony przez niniejszego użytkownika
Fraktale.Problem z rysowaniem.
» 2014-06-04 00:00:36
Witam.

Mam problem z napisaniem programu do rysowania fraktali. Mam już cały kod,ale po uruchomieniu wyświetla mi się czarny ekran.Czy mógłby ktoś znaleźć błąd w kodzie?

Treść polecenia :

Rozważmy następujące
odwzorowanie na płaszczyźnie:

zn+1 = zn^2 +c
gdzie: c jest stałą liczbą zespoloną. Jeżeli c = - 0.123 + j 0.745, a z0(z zero) = 0.5 + j 0.5,
to z1 = - 0.123 + j 1.245.
Zbiory Julia tworzą te punkty na płaszczyźnie zespolonej, których odległość od
początku układu współrzędnych jest skończona.
Napisz program, który generuje nMax = 30 iteracji powyższego odwzorowania.
Generuj kolejne iteracje dopóki ich odległość od początku układu współrzędnych będzie mniejsza od 2. Punkt początkowy z0(z zero)= x0 + j y0 wybierz arbitralnie ale tak, aby -1.5<x0 <1.5 i -1.5<y0 <1.5. Jeśli po nMax =30 iteracjach odległość jest wciąż mniejsza od 2 to na wykresie w punkcie o współrzędnych x0 i y0 rysujemy piksel. Do obliczeń, dla dostatecznie dużej liczby punktów, wykorzystaj zagnieżdżone pętle for. Obliczenia przeprowadź dla:
c = - 0.75, c = - 0.391 – j 0.587, c = - 0.123 + j 0.745

mój kod:

C/C++
#include <iostream>
#include <complex>
#define  USE_CONSOLE
#include<vector>
#include <allegro.h>
#define _USE_MATH_DEFINES
#include<cmath>
using namespace std;
int main()
{
    complex < float > c;
    double x;
    double y;
    complex < float > z;
    int i = 0;
    {
        allegro_init();
        install_keyboard();
        set_color_depth( desktop_color_depth() );
        set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0 );
        acquire_screen();
       
       
       
        c =( - 0.123, 0.745 );
        for( x = 0; x < 640; x++ )
        {
            for( y = 0; y < 480; y++ )
            {
                z =(( 3 * x ) / 640 - 1.5,( 480 - y ) / 160 - 1.5 );
                while( i < 30 )
                { z = z * z + c;
                    i = i + 1;
                }
                if( abs( z ) < 2.0 )
                { putpixel( screen, x, y, makecol( 255, 211, 244 ) ); }
            }
        }
        c =( - 0.75, 0.0 );
        for( x = 0; x < 640; y++ )
        {
            for( y = 0; y < 480; y++ )
            {
                z =(( 3 * x ) / 640 - 1.5,( 480 - y ) / 160 - 1.5 );
                while( i < 30 )
                {
                    z = z * z + c;
                    i = i + 1;
                }
                if( abs( z ) < 2.0 )
                { putpixel( screen, x, y, makecol( 145, 225, 211 ) ); }
            }
        }
        c =( - 0.391, - 0, 587 );
        for( x = 0; x < 640; y++ )
        {
            for( y = 0; y < 480; y++ )
            {
                z =(( 3 * x ) / 640 - 1.5,( 480 - y ) / 160 - 1.5 );
                while( i < 30 )
                {
                    z = z * z + c;
                    i = i + 1;
                }
                if( abs( z ) < 2.0 )
                { putpixel( screen, x, y, makecol( 155, 200, 255 ) ); }
            }
        }
        release_screen();
        readkey();
        return 0;
    }
}
END_OF_MAIN();
P-111393
michal11
» 2014-06-04 14:01:33
Wstaw kod w odpowiednie znaczniki, łatwiej będzie to odczytać.
P-111402
raptor22
Temat założony przez niniejszego użytkownika
» 2014-06-06 09:09:33
Proszę o pomoc,ponieważ od tego zależy moje zaliczenie .
P-111549
pekfos
» 2014-06-06 12:56:05
C/C++
c =( - 0.123, 0.745 );
Co to?
P-111554
raptor22
Temat założony przez niniejszego użytkownika
» 2014-06-06 15:12:18
to wartości przyjmowane przez zmienną 'c' przy danej pętli i danym fraktalu.
P-111556
pekfos
» 2014-06-06 16:33:20
To tak nie działa.
P-111559
raptor22
Temat założony przez niniejszego użytkownika
» 2014-06-06 17:27:50
to już niestety nie mam pomysłów jak to dalej ruszyć :(
P-111563
pekfos
» 2014-06-06 17:29:48
C/C++
c = std::complex < float >( - 0.123, 0.745 );

P-111564
« 1 » 2 3 4
  Strona 1 z 4 Następna strona