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
» 2014-06-06 18:12:04
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;
    {
        allegro_init();
        install_keyboard();
        set_color_depth( desktop_color_depth() );
        set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0 );
        acquire_screen();
       
       
       
        c = complex < float >( - 0.123, 0.745 );
        for( x = 0; x < 640; x++ )
        {
            for( y = 0; y < 480; y++ )
            {
                z = complex < float >(( 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 = complex < float >( - 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 = complex < float >( - 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-111575
pekfos
» 2014-06-06 18:13:45
Nie zerujesz i.
P-111576
raptor22
Temat założony przez niniejszego użytkownika
» 2014-06-06 18:18:32
wybacz,trochę średnio rozumiem już teraz. Możesz wskazać w którym miejscu zeruję i?
P-111578
pekfos
» 2014-06-06 18:21:21
W żadnym. "Nie zerujesz i.", co w tym niezrozumiałego..?
C/C++
i = 0;
while( i < 30 )
Przed każdą pętlą musi być i=0, bo inaczej wykona te 30 obiegów raz na cały program..
P-111579
raptor22
Temat założony przez niniejszego użytkownika
» 2014-06-06 18:27:31
Nadal coś nie chce zadziałać .

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;
    {
        allegro_init();
        install_keyboard();
        set_color_depth( desktop_color_depth() );
        set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0 );
        acquire_screen();
       
       
       
        c = complex < float >( - 0.123, 0.745 );
        for( x = 0; x < 640; x++ )
        {
            for( y = 1; y < 480; y++ )
            {
                z = complex < float >(( 3 * x ) / 640 - 1.5,( 480 - y ) / 160 - 1.5 );
                i = 0;
                while( i < 30 )
                { z = z * z + c;
                    i = i + 1;
                }
                if( abs( z ) < 2.0 )
                { putpixel( screen, x, y, makecol( 255, 211, 244 ) ); }
            }
        }
        c = complex < float >( - 0.75, 0.0 );
        for( x = 1; x < 640; y++ )
        {
            for( y = 1; y < 480; y++ )
            {
                z = complex < float >(( 3 * x ) / 640 - 1.5,( 480 - y ) / 160 - 1.5 );
                i = 0;
                while( i < 30 )
                {
                    z = z * z + c;
                    i = i + 1;
                }
                if( abs( z ) < 2.0 )
                { putpixel( screen, x, y, makecol( 145, 225, 211 ) ); }
            }
        }
        c = complex < float >( - 0.391, - 0.587 );
        for( x = 1; x < 640; y++ )
        {
            for( y = 1; y < 480; y++ )
            {
                z = complex < float >(( 3 * x ) / 640 - 1.5,( 480 - y ) / 160 - 1.5 );
                i = 0;
                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-111581
pekfos
» 2014-06-06 18:40:08
C/C++
for( x = 1; x < 640; y++ )
(w dwóch pętlach ten sam błąd)
P-111582
raptor22
Temat założony przez niniejszego użytkownika
» 2014-06-06 18:42:53
Faktycznie,ale i tak nic z tego po poprawieniu
P-111583
pekfos
» 2014-06-06 19:00:22
Spróbuj przebudować projekt, a jak i to nie zadziała, to wywal acquire_screen() i release_screen().
P-111585
1 2 « 3 » 4
Poprzednia strona Strona 3 z 4 Następna strona