"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.
Кривые в компьютерной графике помогают задавать плавные контуры и траектории с помощью небольшого числа точек, а не длинного списка координат. Кривая Безье проходит через опорные точки, а управляющие точки задают её изгиб и направления на концах. Если одного участка недостаточно, несколько кривых соединяют в сплайн. Чтобы контур выглядел плавным, соседние участки должны не только встречаться в общей точке, но и иметь согласованные направления.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Кривая Безье — плавная кривая, форма которой задаётся конечным набором точек и изменением их влияния вдоль кривой. Это позволяет получить плавный контур без хранения координат каждой его точки. Форма задаётся компактно и легко меняется при редактировании набора точек.
Опорные точки — точки, через которые проходит кривая Безье; обычно это её начало и конец. Они фиксируют важные места контура, например его края или места соединения участков. Поэтому опорные точки помогают расположить кривую там, где она нужна на изображении.
Управляющие точки — точки, которые задают направление и степень изгиба кривой, но, как правило, не лежат на ней. Их положение помогает управлять очертанием между опорными точками. Благодаря этому контур можно менять, не передвигая его концы.
Сплайн — кривая, составленная из нескольких участков, соединённых так, чтобы получить нужную форму и плавность. Каждый участок можно задавать отдельно, поэтому проще настраивать сложный контур. Понятие сплайна нужно, когда одной кривой Безье недостаточно.
Кривые удобны в компьютерной графике, потому что контур или траекторию можно описать компактнее, чем набором множества отдельных точек. Если хранить только точки, через которые должна проходить линия, между ними всё равно нужно как-то восстановить плавную форму. Кривая решает эту задачу: параметры задают целую линию, а не только несколько её фрагментов. Поэтому её проще хранить, масштабировать и редактировать.
Кривая Безье строится так, что точка на ней постепенно перемещается от начальной опорной к конечной. На её положение влияют опорные и управляющие точки, причём сила влияния меняется вдоль пути: в начале важнее ближайшие к началу точки, а ближе к концу — точки у конечной опоры. Такое постепенное изменение влияния и создаёт плавный переход. Поэтому линия не обязана проходить через каждую точку, задающую её форму.
Направления касательных на концах связаны с ближайшими управляющими точками. Касательная показывает направление, в котором кривая выходит из точки или подходит к ней; в начале она направлена вдоль отрезка к первой управляющей точке. У конца направление касательной задаётся от последней управляющей точки к конечной опорной. Такое правило позволяет управлять тем, как линия начинается и заканчивается, что особенно полезно при стыковке участков.
Перемещение управляющей точки меняет изгиб кривой, но не положение её опорных точек. Причина в том, что управляющая точка участвует в задании формы всего участка, а не отвечает за единственную точку на линии. Обычно заметнее всего меняется часть кривой, расположенная ближе к перемещаемой точке. Поэтому после редактирования нужно оценивать очертание целиком, а не только область рядом с точкой.
Длинный сложный контур можно представить как сплайн — несколько участков, соединённых в последовательную линию. Такое разбиение даёт возможность настраивать форму каждого фрагмента независимо, не усложняя управление всем контуром сразу. Соседние участки должны иметь общую точку соединения, а направления их касательных нужно согласовать. Иначе линия сойдётся в стыке, но её направление резко изменится, и появится заметный угол.
| Объект | Через какие точки проходит | Что определяет форму | Как используется |
|---|---|---|---|
| Кривая Безье | Через опорные точки | Управляющие точки | Задаёт плавный отдельный участок контура |
| Опорные точки | Сама точка является точкой прохождения | Положение начала, конца или стыка | Фиксируют нужные места линии |
| Управляющие точки | Обычно не лежат на кривой | Направление и степень изгиба | Настраивают очертание участка |
| Сплайн из участков | Через опорные точки участков | Форма отдельных кривых и их стыковка | Задаёт длинный сложный контур |
Сначала по таблице определите, какую роль играет каждая точка: фиксирует место на линии или управляет её формой. Затем выберите объект, подходящий задаче: отдельный участок или сплайн. Для сплайна дополнительно проверьте, как согласованы соседние части в местах соединения.
Условие. На схеме показаны начальная и конечная опорные точки, а также две управляющие точки. Нужно определить, в каком направлении кривая выходит из начала и подходит к концу. Координаты точек вычислять не требуется: важно верно установить, какие отрезки задают касательные.
Ответ. В начале кривая направлена от начальной опорной точки к ближайшей управляющей, а у конца подходит к опорной вдоль направления от последней управляющей точки к ней. Если управляющие точки расположены по-разному, изменятся и направления касательных.
Условие. Участок кривой задан опорными и управляющими точками. Одну управляющую точку перемещают, оставляя все остальные точки на месте; требуется предсказать изменение изгиба. Поскольку точных координат нет, нужно описать направление изменения и определить, какие части кривой затронуты.
Ответ. Изменится форма участка в целом, обычно сильнее возле перемещённой управляющей точки. Опорные точки останутся на месте, поэтому кривая по-прежнему будет проходить через них.
Условие. Нужно представить сложный контур несколькими кривыми Безье и расположить точки так, чтобы части плавно соединялись. Готовых координат нет: требуется выбрать способ разбиения и сформулировать проверку стыков. Главная цель — избежать резкого перелома там, где заканчивается один участок и начинается следующий.
Ответ. Сложный контур задают несколькими участками, у которых совпадают опорные точки стыка и согласованы направления касательных. Одного совпадения концов недостаточно для плавного соединения.
Ошибка — считать, что кривая Безье проходит через все управляющие точки. Так думают, потому что эти точки видны рядом с линией на схеме, но они обычно только задают её форму. Проверьте, какие точки обозначают начало и конец, а какие лишь управляют изгибом: кривая обязана проходить через опорные точки, но не через каждую управляющую.
Опорные и управляющие точки иногда путают, поскольку обе группы участвуют в построении одной кривой. Однако первые фиксируют точки прохождения, а вторые влияют на изгиб. Для самопроверки задайте вопрос: должна ли линия пройти через эту точку? Если да, это опорная точка; если точка нужна для настройки очертания, она управляющая.
Неверно ожидать, что перемещение управляющей точки сдвинет только одну точку кривой. Такое предположение возникает, если воспринимать управляющую точку как отметку на самой линии, хотя она влияет на форму участка. Проверьте опорные точки и проследите весь контур после перемещения: концы должны остаться на месте, а изгиб может измениться на значительной части участка.
Ещё одна ошибка — соединять участки сплайна только совпадающими концами. Тогда линии встретятся, но их направления могут отличаться, и в месте стыка возникнет угол. Чтобы проверить соединение, найдите общую опорную точку и сравните касательные соседних участков: для плавного продолжения их направления должны быть согласованы.
Для работы с кривыми полезно уметь задавать точки на плоскости: положение каждой опоры и управляющей точки определяется её координатами. Понимание компьютерной графики помогает увидеть, почему компактное описание линии удобно для создания и изменения изображения. Кривые Безье и сплайны применяют в векторных изображениях, при построении шрифтов и контуров объектов, а также для задания траекторий движения. Во всех этих случаях важно управлять не только положением точек, но и плавностью линии.
Чем опорная точка отличается от управляющей?
Опорная точка задаёт точку, через которую проходит кривая, обычно её начало или конец. Управляющая точка влияет на изгиб участка и, как правило, сама на кривой не лежит.
Почему кривая Безье не проходит через управляющие точки?
Управляющие точки задают влияние на форму, а не обязательные точки прохождения. Кривая плавно учитывает их положение по мере движения от начала к концу, поэтому может огибать их.
Как перемещение управляющей точки влияет на форму кривой?
Кривая в целом меняет форму в направлении перемещения точки, но сильнее всего меняется участок, на который эта точка влияет. Опорные точки при этом остаются прежними.
Как определить направление кривой у её начала и конца?
В начале направление касательной совпадает с направлением от начальной опорной точки к ближайшей управляющей. У конца касательная направлена вдоль отрезка от последней управляющей точки к конечной опорной.
Зачем сложную кривую разбивают на несколько участков?
Так проще задавать форму протяжённого или сложного контура: каждый участок можно настраивать отдельно. В точках соединения нужно согласовать опорные точки и направления касательных, иначе появится излом.
§ 70. Кривые