Обсуждение:Алгоритм Коэна — Сазерленда

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

В алгоритме, похоже ошибка - происходит зацикливание если не менять a(или b, в зависимости от...) на c 195.160.253.4 12:21, 14 сентября 2009 (UTC)[ответить]

Обнаружена ошибка в реализации для 2-мерной модели.[править код]

Здравствуйте! Необходимо добавить проверку на ноль, иначе действительно возникает зацикливание. пример, к сожалению потерял, пока шел до компа с интернетом.(ситуация,когда а совпадает с нижним левым углом прямоугольника, а b выше,правее ) Что-то вроде этого: "

  1. define divider(_div_) ( ((_div_)!=0)?(_div_):1 )

" (использовать так: "

  c->y += (a->y - b->y) * (r->x_min - c->x) / divider(a->x - b->x);

" )будет то, что нужно =) (решетка директивы может отображаться как 1. ) С уважением, Виктор 83.149.3.228 08:47, 4 июня 2011 (UTC)[ответить]