FRACTALS

ѕ даРЪвРЫРе
іРЫХаХп ШЧЮСаРЦХЭШЩ даРЪвРЫЮТ
їаЮУаРЬЬл ФЫп ЯЮбваЮХЭШп даРЪвРЫЮТ
БблЫЪШ ЭР ФагУШХ бРЩвл Ю даРЪвРЫРе
ЅРЯШиШ бТЮШ ТЯХзРвЫХЭШп



 
 

LOGO
Предыдущая Следующая

if (!compute_ifs_probabilities (coeff__list)) { free_int__vector (p,l); f ree__int_yector (pi,l); return; >

for (i=l;i<=no_of_fns;i++)

pi[i] « (int)(((coeff_struct *)(coeff_list->at(i)))-> prob*MAX_INT) ;

for (i=l;i<=no__of__fns;i++) {

p[i] = int_sum + pi[i];

int__sum += pi[i] ;

} /* i */ p[no_of_fns] = MAXJENT;

free__int__vector (pi,l); x » 0; Y = 0;

/* bury first 10 iterations */ for (i=l;i<=10;i++) {

k = pick__random_jibr (p, no_of__f ns) ;

ifs = * (coeff_struet *) (coeff_list->at (k) ) ;

xnew = ifs.a*x + ifs.b*y + ifs.e;

ynew — ifs.c*x + ifs.d*y + ifs.f;

x = xnew;

y - ynew;

} /* i */

if (!graph^setup (gr)) /* free arrays before returning*/

goto exit_j?roc; draw_border (gr_setup,gr,1) ; set_graph__max__min (gr__setup, gr) ;

iter = 0; do {

k = pick__random_jibr (p, no_of__f ns) ;

ifs = * (coeff_struet *) (coeff_list->at(k));

xnew = ifs.a*x + ifs.b*y + ifs.e;

ynew - ifs.c*x + ifs.d*y + ifs.f;

62_Фракталы и вейвлеты для сжатия изображений в Дейс^

if (fabs(xnew) + fabs(ynew) > IFS_TOOJBlG) { message_puts (MB_EXCLAIM,"IFSPROC", "This system diverges!\r\n"

"Check to see that all transformations\r\n" "are contractions."); goto exit_proc; )

/* Plot the Х-У point in the window in color: */

xy__to_window_co lor ( gr, xnew, у new,

rgb_ifs^color (ifs));

x = xnew;

у = уnew;

iter++;

graph_i ter (gr_setup, gr, iter) ; } while ( ! terminating__proc ( ) ) ;

exit_proc:

release_dc (gr); free_int_vector (p,l); return;

} /* end proc */

2.5. Примеры

Мы завершим эту главу несколькими примерами систем итерируемых функций и соответствующих им изображений аттракторов. Все изображения в этом разделе были получены с использованием вероятностного алгоритма.

2.5.1. Треугольник Серпинского

Треугольник Серпинского (называемый также наконечником стрелы) - это один из самых ранних известных примеров фракталов. Существует несколько способов построения треугольника Серпинского, один из которых показан & Рис. 2.5.1. Мы начинаем со сплошного треугольника, как показано на рисунке слева. На первом шаге построения из его центра удаляется перевернутый треугольник, как показано # рисунке в центре. На втором шаге удаляются три переверну тых треугольника из трех оставшихся треугольников. Пр0, должая этот процесс, мы на шаге п удаляем З""1 перевернув треугольников из центров З""1 оставшихся треугольников. Т°! что остается (а что-то должно остаться!) - это и есть тр* угольник Серпинского.


Предыдущая Следующая


Галерея фракталов

 

Hosted by uCoz