float v - d/(float)Num:
glColor3f(v * v. v*. v. 0.2):
// red & green at level v-squared
// красный и зеленый на уровне v в квадрате
Рис. 9.42. Присвоение цветов в зависимости от времени жизни орбиты
Последнее, что нам нужно сделать, - это определить, как связать пиксел с определенным комплексным значением с. На рис. 9.43 предлагается простой подход"images/tmp8E4A-642.png" alt="Установка окна над множеством М и соответствие между точками и пикселами">
Рис. 9.43. Установка окна над множеством М и соответствие между точками и пикселами Какой же комплексной величине с = сх + суі соответствует центр (г,У)-го пиксела? После преобразований компонентов мы видим, что оно должно быть равно"images/tmp8E4A-643.png">
(9.17)
ч
где i - 0.....cols -1 и; - 0,rows -1. (Проверьте это!)
Выбранная область множества Мандельброта рисуется пиксел за пикселом. Для каждого пиксела соответствующее ему значение с передается в подпрограмму dwel 1 ( ) и находится подходящий цвет, связанный с временем жизни. Затем пиксел окрашивается в этот цвет. В листинге 9.8 приведен алгоритм в форме псевдокода.
Листинг 9.8. Псевдокод для рисования части множества Мандельброта
for(j - 0: j < rows:
for(i - 0: i < cols: i++)
find the corresponding c-value in Equation 9.17 II находим соответствующее значение с по уравнению 9.17
estimate the dwell of the orbit II оцениваем время жизни орбиты