48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
#include "knjiznica/bitmap.h"
|
|
#include "cplxlib.h"
|
|
#include "stdio.h"
|
|
#include "math.h"
|
|
|
|
#define resolution 3400
|
|
const double dimension = 1.7;
|
|
const double orbit = 2.0;
|
|
|
|
unsigned char canvas[resolution][resolution]; // platno za risanje
|
|
|
|
unsigned char iteratePolynomial(cplx z0, cplx c)
|
|
{
|
|
cplx z = z0;
|
|
for (unsigned i = 0; i<255; i++)
|
|
{
|
|
z = cprod(z, z);
|
|
z = csum(z, c);
|
|
if (sqrt((z.re*z.re)+(z.im*z.im)) > orbit) return i+1;
|
|
}
|
|
return 255;
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
cplx c;
|
|
double a,b;
|
|
printf("Vnesi adicijsko konstanto polinoma: ");
|
|
scanf("%lf%lfi", &a, &b);
|
|
puts("Iteriram:");
|
|
c.re = a;
|
|
c.im = b;
|
|
for(unsigned p = 0; p < resolution; p++)
|
|
{
|
|
printf(".");
|
|
for(unsigned q = 0; q < resolution; q++)
|
|
{
|
|
cplx z0;
|
|
z0.re = ((dimension/resolution) * p * 2) - dimension;
|
|
z0.im = -(((dimension/resolution) * q * 2) - dimension);
|
|
canvas[p][q] = iteratePolynomial(z0, c);
|
|
}
|
|
}
|
|
shraniBMP(canvas, resolution, resolution, "julia.bmp");
|
|
printf("\n\n Končano. Slika shranjena\n");
|
|
}
|
|
|