Вверх ↑
Администрация
Ответов: 15295
Рейтинг: 1519
#1: 2009-07-11 18:13:15 ЛС | профиль | цитата
andrestudio писал(а):
мы же понимаем что этот код участвует в расчётах, причём 200*300 раз

andrestudio, вашей карьере начинающего программиста ЯВУ еще только предстоит пройти через знание о том, что извлечение значения элемента массива по 32х разрядному индексу выполняется одной командой процессора. Говорить о том, что на выполнение 60тыс раз одной команды процессора сегодня требуется много времени по меньшей мере не актуально.
------------ Дoбавленo в 18.18:
а вот реализация HSB2RGB в вашем примере действительно представляет из себя монстрообразную конструкцию, которая будет отъедать изрядное количество времени. Предлагаю переписать ее так

#bas
Procedure HSB2RGB(hue.f)
ProcedureReturn RGB(hue*255, 0, 0)
EndProcedure

и заменить это

#bas
If h <> old
b = 1.0 - h * h ; brightness
col = HSB2RGB(h, 0.8, b)
old = h;
EndIf
на это

#bas
If h <> old
col = HSB2RGB(h)
old = h;
EndIf
карма: 27
0