www.pudn.com > Tierazon-v29.zip > rsx_fdim_19.c
/////////////////////////////////////////////////////////////// // rsx_file.c // // By: stephen c. ferguson // http://home1.gte.net/itriazon/ // email: itriazon@gte.net // ///////////////////////////////////////////////////// /////////////////////////////////////////////////////////////// #define STRICT #define WIN32_LEAN_AND_MEAN #include#include #include "rsx_file.h" void FDimension() { maxit_save = maxit; if (bDimensionVariant) i = maxit = n_color - 2; else i = maxit = n_color; // Set up to Calculate the Fractal Dimension // Initialize the mean with zero x_mean = 0; y_mean = 0; __real__ z_mean = 0; __imag__ z_mean = 0; // Initialize the range with the first value x_rmin = pXTemp[0]; // x range min x_rmax = pXTemp[0]; // x range max y_rmin = pYTemp[0]; // y range min y_rmax = pYTemp[0]; // y range max __real__ z_rmin = x_rmin; __imag__ z_rmin = y_rmin; __real__ z_rmax = x_rmax; __imag__ z_rmax = y_rmax; switch(filter) { case 27: // Fractal Dimension case 33: case 35: case 37: case 38: if (i < 1) { rj = gj = bj = i = 0; maxit = maxit_save; return; } for (i2 = 0 ; i2 x_rmax) x_rmax = pXTemp[i2]; // Get min y if (pYTemp[i2] < y_rmin) y_rmin = pYTemp[i2]; // Get max y if (pYTemp[i2] > y_rmax) y_rmax = pYTemp[i2]; } x_mean = x_mean / maxit; y_mean = y_mean / maxit; x_std = 0; y_std = 0; for (i2 = 0 ; i2 x_rmax) x_rmax = pXTemp[i2]; // Get min y if (pYTemp[i2] < y_rmin) y_rmin = pYTemp[i2]; // Get max y if (pYTemp[i2] > y_rmax) y_rmax = pYTemp[i2]; } if (i != 0) { x_mean = x_mean / (double)i; y_mean = y_mean / (double)i; } x_std = 0; y_std = 0; for (i2 = 0 ; i21) { x_std = (x_std / i); y_std = (y_std / i); } else { x_std = 0; y_std = 0; } if (x_std == 0 && y_std == 0) { jrw = 0; rj = gj = bj = 0; } else { rj = (log((x_std)) * 30 * dFactor); // 10 gj = (log((y_std)) * 30 * dFactor); // 10 bj = (log((x_std + y_std)/2) * 30 * dFactor); // 10 } maxit = maxit_save; return; } }