plug-ins/FractalExplorer/FractalExplorer.c Fixed bug #372671 and made

2006-11-15  Mukund Sivaraman  <muks@mukund.org>

        * plug-ins/FractalExplorer/FractalExplorer.c
        * plug-ins/FractalExplorer/Dialogs.c: Fixed bug #372671 and made
        loglog smoothing work again.
This commit is contained in:
Mukund Sivaraman 2006-11-14 19:44:21 +00:00 committed by Mukund Sivaraman
parent e2b4690f74
commit d89b396980
3 changed files with 33 additions and 8 deletions

View File

@ -1,3 +1,9 @@
2006-11-15 Mukund Sivaraman <muks@mukund.org>
* plug-ins/FractalExplorer/FractalExplorer.c
* plug-ins/FractalExplorer/Dialogs.c: Fixed bug #372671 and made
loglog smoothing work again.
2006-11-14 Simon Budig <simon@gimp.org>
* plug-ins/script-fu/scripts/grid-system.scm: don't register in the

View File

@ -1254,6 +1254,7 @@ dialog_update_preview (void)
gint counter;
gint color;
gint useloglog;
gdouble log2;
if (NULL == wint.preview)
return;
@ -1283,6 +1284,8 @@ dialog_update_preview (void)
p_ul = wint.wimage;
iteration = MAX (1, (int) wvals.iter);
useloglog = wvals.useloglog;
log2 = log (2.0);
for (ycoord = 0; ycoord < preview_height; ycoord++)
{
px = 0;
@ -1302,9 +1305,8 @@ dialog_update_preview (void)
x = 0;
y = 0;
}
for (counter = 0;
(counter < iteration) && ((x * x + y * y) < 4);
counter++)
for (counter = 0; counter < iteration; counter++)
{
oldx = x;
oldy = y;
@ -1414,11 +1416,19 @@ dialog_update_preview (void)
}
x = xx;
if (((x * x) + (y * y)) >= 4.0)
break;
}
if (useloglog)
{
adjust = log (log (x * x + y * y) / 2) / log (2);
gdouble modulus_square = (x * x) + (y * y);
if (modulus_square > (G_E * G_E))
adjust = log (log (modulus_square) / 2.0) / log2;
else
adjust = 0.0;
}
else
{

View File

@ -523,11 +523,13 @@ explorer_render_row (const guchar *src_row,
gint color;
gint iteration;
gint useloglog;
gdouble log2;
cx = wvals.cx;
cy = wvals.cy;
useloglog = wvals.useloglog;
iteration = wvals.iter;
log2 = log (2.0);
for (col = 0; col < row_width; col++)
{
@ -543,9 +545,8 @@ explorer_render_row (const guchar *src_row,
x = 0;
y = 0;
}
for (counter = 0;
(counter < iteration) && ((x * x + y * y) < 4);
counter++)
for (counter = 0; counter < iteration; counter++)
{
oldx=x;
oldy=y;
@ -657,11 +658,19 @@ explorer_render_row (const guchar *src_row,
xx = xx - 1;
}
x = xx;
if (((x * x) + (y * y)) >= 4.0)
break;
}
if (useloglog)
{
adjust = log (log (x * x + y * y) / 2) / log (2);
gdouble modulus_square = (x * x) + (y * y);
if (modulus_square > (G_E * G_E))
adjust = log (log (modulus_square) / 2.0) / log2;
else
adjust = 0.0;
}
else
{