Jump to content

Обрезка линий

(Перенаправлено из «Быстрая обрезка »)
Пример обрезки линий для двумерной области
Example of line clipping for a two-dimensional region

В компьютерной графике обрезка линий — это процесс удаления ( обрезки ) линий или частей линий за пределами интересующей области ( окна просмотра или объема просмотра ). Обычно любая часть линии, находящаяся за пределами области просмотра, удаляется.

Существует два распространенных алгоритма отсечения строк: Коэна-Сазерленда и Ляна-Барски .

Метод обрезки строк состоит из нескольких частей. Тесты проводятся на заданном сегменте линии, чтобы выяснить, находится ли он за пределами области обзора или объема. Затем пересечений с одной или несколькими границами отсечения. выполняются расчеты [1] Определение того, какая часть линии находится внутри или за пределами объема отсечения, осуществляется путем обработки конечных точек линии с учетом пересечения.

Коэн – Сазерленд

[ редактировать ]

В компьютерной графике алгоритм Коэна-Сазерленда (названный в честь Дэнни Коэна и Ивана Сазерленда) представляет собой алгоритм обрезки строк. Алгоритм делит 2D-пространство на 9 областей, из которых видна только средняя часть (окно просмотра).

В 1967 году работа Дэнни Коэна по моделированию полета привела к разработке алгоритмов двух- и трехмерного отсечения линий компьютерной графики Коэна-Сазерленда, созданных вместе с Иваном Сазерлендом.

Лян–Барский

[ редактировать ]

Алгоритм Ляна – Барски использует параметрическое уравнение линии и неравенства, описывающие диапазон рамки отсечения, для определения пересечений между линией и рамкой отсечения. Благодаря этим пересечениям он знает, какую часть линии следует нарисовать. Этот алгоритм значительно более эффективен, чем алгоритм Коэна-Сазерленда, но алгоритм Коэна-Сазерленда выполняет тривиальные приемы и отклонения гораздо быстрее, поэтому вместо этого следует учитывать, что большинство строк, которые вам нужно обрезать, будут полностью находиться в окне обрезки или за ее пределами .

Сайрус-Бек

[ редактировать ]

Очень похоже на алгоритм отсечения линий Ляна – Барски. Разница в том, что Лян-Барски представляет собой упрощенный вариант Сайруса-Бека, оптимизированный для прямоугольного окна клипа.

Алгоритм Сайруса-Бека в первую очередь предназначен для отсечения линии в параметрической форме от выпуклого многоугольника в 2 измерениях или от выпуклого многогранника в 3 измерениях. [2]

Николл – Ли – Николл

[ редактировать ]

Алгоритм Николла-Ли-Николла представляет собой быстрый алгоритм отсечения линий, который снижает вероятность многократного отсечения одного сегмента линии, как это может произойти в алгоритме Коэна-Сазерленда. Окно обрезки разделено на несколько различных областей в зависимости от положения начальной точки обрезаемой линии.

Быстрая обрезка

[ редактировать ]

Этот алгоритм имеет сходство с алгоритмом Коэна – Сазерленда. Начальная и конечная позиции классифицируются по тому, какую часть сетки из 9 зон они занимают. В этом случае большой оператор переключателя переходит к специализированному обработчику. Напротив, Коэну-Сазерленду, возможно, придется повторить несколько раз, чтобы обработать один и тот же случай. [3]

Алгоритм O ( lgN )

[ редактировать ]

Этот алгоритм классифицирует вершины по заданной линии в неявной форме p : ax + by + c = 0. Поскольку предполагается, что многоугольник выпуклый, а вершины упорядочены по часовой стрелке или против часовой стрелки, можно применить двоичный поиск, который приводит к результату O. (lg N ) сложность времени выполнения. [4]

Этот алгоритм основан на однородных координатах и ​​двойственности . [5] Его можно использовать для обрезки линий или сегментов прямоугольного окна, а также выпуклого многоугольника. Алгоритм основан на классификации вершины окна отсечения по полупространству, заданному линией p : ax + by + c = 0. Результат классификации определяет ребра, пересекаемые линией p . Алгоритм прост, легко реализуем и расширяем также до выпуклого окна. Линия или сегмент линии p может быть вычислен из точек r 1 , r 2, заданных в однородных координатах, непосредственно с использованием векторного произведения как

п знак равно р 1 × р 2 знак равно ( Икс 1 , y 1 , ш 1 ) × ( Икс 2 , y 2 , ш 2 )

или как

п знак равно р 1 × р 2 знак равно ( Икс 1 , y 1 , 1) × ( Икс 2 , y 2 , 1).

См. также

[ редактировать ]
  1. ^ Ренка, Р.Дж. (19 октября 2014 г.). «Обрезка линий» (PDF) . Департамент компьютерных наук и инженерии Университета Северного Техаса . Проверено 12 января 2016 г.
  2. ^ Сайрус, М., Бек, Дж.: Обобщенное двумерное и трехмерное отсечение , Компьютеры и графика, Том. 3, № 1, стр. 23–28, 1978.
  3. ^ Марк С. Собков, Пол Поспишил и Йи-Хонг Ян. Алгоритм быстрого двумерного отсечения строк посредством кодирования строк // Computer & Graphics, Vol. 11, № 4, стр. 459–467, 1987.
  4. ^ Скала, В .: O (lg N Алгоритм отсечения строк ) в E2, Компьютеры и графика, Pergamon Press, Vol. 18, № 4, 1994.
  5. ^ Скала, В.: Новый подход к отсечению линий и отрезков линий в однородных координатах , The Visual Computer, ISSN 0178-2789, Vol. 21, № 11, стр. 905–914, Springer Verlag, 2005.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 09c4980d8b5a70f44fc225c6b417a1f5__1704711180
URL1:https://arc.ask3.ru/arc/aa/09/f5/09c4980d8b5a70f44fc225c6b417a1f5.html
Заголовок, (Title) документа по адресу, URL1:
Line clipping - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)