Меню

Главная
Случайная статья
Настройки
Обсуждение:Алгоритм Коэна — Сазерленда
Материал из https://ru.wikipedia.org

В алгоритме, похоже ошибка - происходит зацикливание если не менять 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)[ответить]
Downgrade Counter