Jump to content

Ненулевое правило

Кривая (вверху) заполняется по двум правилам: правилу чет-нечет (слева) и правилу ненулевой обмотки (справа). В каждом случае стрелка показывает луч из точки P, выходящий из кривой. В четно-нечетном случае луч пересекается двумя прямыми четного числа; поэтому делается вывод, что P находится «вне» кривой. Согласно правилу ненулевой обмотки, луч пересекается по часовой стрелке дважды, каждый из которых вносит -1 в счет обмотки: поскольку сумма -2 не равна нулю, считается, что P находится «внутри» кривой.

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

Для данной кривой C и данной точки P: построить луч (прямую линию), исходящий из P в любом направлении к бесконечности. Найдите все пересечения C с этим лучом. Подсчитайте число витков следующим образом: за каждое пересечение по часовой стрелке (кривая, проходящая через луч слева направо, если смотреть со стороны Р) вычтите 1; для каждого пересечения против часовой стрелки (кривая, проходящая справа налево, если смотреть со стороны P) прибавляйте 1. Если общее число витков равно нулю, P находится вне C; в противном случае оно находится внутри.

Число витков фактически является подсчетом того, сколько полных оборотов против часовой стрелки («витков») кривая делает вокруг P без повторного удвоения. (Если бы P был гвоздем, а C — петлей из веревки, попробуйте оттянуть некоторую часть веревки вбок от гвоздя: она либо высвободится, либо окажется, что она несколько раз обмотана вокруг гвоздя. )

В некоторых реализациях вместо этого подсчитывается количество оборотов по часовой стрелке, так что пересечения по часовой стрелке получают +1, а пересечения против часовой стрелки - -1. Результат тот же.

Одно формальное определение числа витков точки P относительно кривой C (где P не лежит на кривой) выглядит следующим образом:

Рассмотрим точку Q, которая проходит один раз вокруг C. Конечная точка вектора от P до Q после нормализации движется по единичной окружности с центром в P. Если мы представим путь этой конечной точки как резиновую ленту и позволим ленте сжиматься , в конечном итоге он будет обернут вокруг круга несколько раз. Число намоток — это количество витков (для витков по часовой стрелке число намоток отрицательное). [1]

Стандарт векторной компьютерной графики SVG по умолчанию использует ненулевое правило при рисовании многоугольников. [2]

См. также

[ редактировать ]
  1. ^ Джеймс Д. Фоли, Андрис Ван Дам, Стивен К. Фейнер и Джон Ф. Хьюз (1996) Компьютерная графика: принципы и практика , с. 965. Аддисон-Уэсли. ISBN   9780201848403
  2. ^ [1] , w3c.org, получено 28 марта 2019 г.
[ редактировать ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a7cd4d6956971f5bd835e106c29cc99e__1704244560
URL1:https://arc.ask3.ru/arc/aa/a7/9e/a7cd4d6956971f5bd835e106c29cc99e.html
Заголовок, (Title) документа по адресу, URL1:
Nonzero-rule - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)