Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Алгоритм Гуро


Автор: masterdelphi 25.5.2006, 17:01
Расскажите как с помощью алгоритма Гуро-интерполяции интенсивностей закрасить многогранник?
Мне важна иммено программная реализация. Красить надо на image при нажатии button.
  
 

Автор: RomanEEP 8.6.2006, 15:26
Алгоритм закраски для треугольника (многоугольник разбивается на треугольники):
Для каждой строки image-а определяем точки пересечения с линиями трегольников (их 2), если их нет - линия не закрашивается. В этих точках подсчитываем цвет
Код

  k = lp1 / l12;

  r = r1 + (r2-r1) * k;
  g = g1 + (g2-g1) * k;
  b = b1 + (b2-b1) * k;
, где lp1 - расстояние от начала линии, с которой пересеклась точка до самой точки; l12 - длина линии; (r1, g1, b1) и (r2, g2, b2) - цвет начала и конца линии (в вершинах треугольника)

Теперь закрашиваем все пиксели от первой точки пересечения до второй. Цвет в этих точках определяется точно также, только начало линии будет в первой точке пересечения, а конец - в другой 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)