На Горох
Информатика, 11 класс

§ 70. Кривые

"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.

Объяснение темы В оглавлении: § 70. Кривые

Кратко о теме

Кривые в компьютерной графике помогают задавать плавные контуры и траектории с помощью небольшого числа точек, а не длинного списка координат. Кривая Безье проходит через опорные точки, а управляющие точки задают её изгиб и направления на концах. Если одного участка недостаточно, несколько кривых соединяют в сплайн. Чтобы контур выглядел плавным, соседние участки должны не только встречаться в общей точке, но и иметь согласованные направления.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Кривая Безье — плавная кривая, форма которой задаётся конечным набором точек и изменением их влияния вдоль кривой. Это позволяет получить плавный контур без хранения координат каждой его точки. Форма задаётся компактно и легко меняется при редактировании набора точек.

Опорные точки — точки, через которые проходит кривая Безье; обычно это её начало и конец. Они фиксируют важные места контура, например его края или места соединения участков. Поэтому опорные точки помогают расположить кривую там, где она нужна на изображении.

Управляющие точки — точки, которые задают направление и степень изгиба кривой, но, как правило, не лежат на ней. Их положение помогает управлять очертанием между опорными точками. Благодаря этому контур можно менять, не передвигая его концы.

Сплайн — кривая, составленная из нескольких участков, соединённых так, чтобы получить нужную форму и плавность. Каждый участок можно задавать отдельно, поэтому проще настраивать сложный контур. Понятие сплайна нужно, когда одной кривой Безье недостаточно.

Как это устроено

Кривые удобны в компьютерной графике, потому что контур или траекторию можно описать компактнее, чем набором множества отдельных точек. Если хранить только точки, через которые должна проходить линия, между ними всё равно нужно как-то восстановить плавную форму. Кривая решает эту задачу: параметры задают целую линию, а не только несколько её фрагментов. Поэтому её проще хранить, масштабировать и редактировать.

Кривая Безье строится так, что точка на ней постепенно перемещается от начальной опорной к конечной. На её положение влияют опорные и управляющие точки, причём сила влияния меняется вдоль пути: в начале важнее ближайшие к началу точки, а ближе к концу — точки у конечной опоры. Такое постепенное изменение влияния и создаёт плавный переход. Поэтому линия не обязана проходить через каждую точку, задающую её форму.

Направления касательных на концах связаны с ближайшими управляющими точками. Касательная показывает направление, в котором кривая выходит из точки или подходит к ней; в начале она направлена вдоль отрезка к первой управляющей точке. У конца направление касательной задаётся от последней управляющей точки к конечной опорной. Такое правило позволяет управлять тем, как линия начинается и заканчивается, что особенно полезно при стыковке участков.

Перемещение управляющей точки меняет изгиб кривой, но не положение её опорных точек. Причина в том, что управляющая точка участвует в задании формы всего участка, а не отвечает за единственную точку на линии. Обычно заметнее всего меняется часть кривой, расположенная ближе к перемещаемой точке. Поэтому после редактирования нужно оценивать очертание целиком, а не только область рядом с точкой.

Длинный сложный контур можно представить как сплайн — несколько участков, соединённых в последовательную линию. Такое разбиение даёт возможность настраивать форму каждого фрагмента независимо, не усложняя управление всем контуром сразу. Соседние участки должны иметь общую точку соединения, а направления их касательных нужно согласовать. Иначе линия сойдётся в стыке, но её направление резко изменится, и появится заметный угол.

Кривые и точки, задающие их форму

ОбъектЧерез какие точки проходитЧто определяет формуКак используется
Кривая БезьеЧерез опорные точкиУправляющие точкиЗадаёт плавный отдельный участок контура
Опорные точкиСама точка является точкой прохожденияПоложение начала, конца или стыкаФиксируют нужные места линии
Управляющие точкиОбычно не лежат на кривойНаправление и степень изгибаНастраивают очертание участка
Сплайн из участковЧерез опорные точки участковФорма отдельных кривых и их стыковкаЗадаёт длинный сложный контур

Сначала по таблице определите, какую роль играет каждая точка: фиксирует место на линии или управляет её формой. Затем выберите объект, подходящий задаче: отдельный участок или сплайн. Для сплайна дополнительно проверьте, как согласованы соседние части в местах соединения.

Разбор задач

Направление кривой у концов

Условие. На схеме показаны начальная и конечная опорные точки, а также две управляющие точки. Нужно определить, в каком направлении кривая выходит из начала и подходит к концу. Координаты точек вычислять не требуется: важно верно установить, какие отрезки задают касательные.

  1. Найдите начальную опорную точку и управляющую точку, ближайшую к ней в последовательности точек кривой. Именно их соединяющий отрезок задаёт начальное направление.
  2. Проведите мысленно стрелку от начальной опорной точки к первой управляющей. Кривая выходит из начала вдоль этой стрелки, а не в направлении от неё.
  3. Найдите последнюю управляющую точку и конечную опорную. У конца направление задаётся отрезком, направленным от последней управляющей к конечной опорной.

Ответ. В начале кривая направлена от начальной опорной точки к ближайшей управляющей, а у конца подходит к опорной вдоль направления от последней управляющей точки к ней. Если управляющие точки расположены по-разному, изменятся и направления касательных.

Перемещение управляющей точки

Условие. Участок кривой задан опорными и управляющими точками. Одну управляющую точку перемещают, оставляя все остальные точки на месте; требуется предсказать изменение изгиба. Поскольку точных координат нет, нужно описать направление изменения и определить, какие части кривой затронуты.

  1. Убедитесь, что перемещается именно управляющая точка: значит, начало и конец участка останутся на прежних местах.
  2. Проследите, в какую сторону переместили точку. Кривая будет изгибаться иначе, стремясь учитывать новое положение этой точки; особенно заметно это обычно в ближайшей к ней части.
  3. Не считайте, что изменится только одна точка линии. Сравните весь участок до и после перемещения, обращая внимание на плавность и направление у концов.

Ответ. Изменится форма участка в целом, обычно сильнее возле перемещённой управляющей точки. Опорные точки останутся на месте, поэтому кривая по-прежнему будет проходить через них.

Составление сложного контура

Условие. Нужно представить сложный контур несколькими кривыми Безье и расположить точки так, чтобы части плавно соединялись. Готовых координат нет: требуется выбрать способ разбиения и сформулировать проверку стыков. Главная цель — избежать резкого перелома там, где заканчивается один участок и начинается следующий.

  1. Разделите контур на более простые участки в местах, где его форма заметно меняется. Для каждого участка задайте начальную и конечную опорные точки, а управляющие расположите так, чтобы получить нужный изгиб.
  2. Для соседних участков совместите конечную опорную точку первого с начальной опорной точкой второго. Так части будут соединены в одной точке, а не оставят промежуток.
  3. Сравните направления касательных по обе стороны стыка. Расположите ближайшие управляющие точки так, чтобы направления продолжали друг друга; затем осмотрите весь контур на предмет изломов.

Ответ. Сложный контур задают несколькими участками, у которых совпадают опорные точки стыка и согласованы направления касательных. Одного совпадения концов недостаточно для плавного соединения.

Типичные ошибки

Ошибка — считать, что кривая Безье проходит через все управляющие точки. Так думают, потому что эти точки видны рядом с линией на схеме, но они обычно только задают её форму. Проверьте, какие точки обозначают начало и конец, а какие лишь управляют изгибом: кривая обязана проходить через опорные точки, но не через каждую управляющую.

Опорные и управляющие точки иногда путают, поскольку обе группы участвуют в построении одной кривой. Однако первые фиксируют точки прохождения, а вторые влияют на изгиб. Для самопроверки задайте вопрос: должна ли линия пройти через эту точку? Если да, это опорная точка; если точка нужна для настройки очертания, она управляющая.

Неверно ожидать, что перемещение управляющей точки сдвинет только одну точку кривой. Такое предположение возникает, если воспринимать управляющую точку как отметку на самой линии, хотя она влияет на форму участка. Проверьте опорные точки и проследите весь контур после перемещения: концы должны остаться на месте, а изгиб может измениться на значительной части участка.

Ещё одна ошибка — соединять участки сплайна только совпадающими концами. Тогда линии встретятся, но их направления могут отличаться, и в месте стыка возникнет угол. Чтобы проверить соединение, найдите общую опорную точку и сравните касательные соседних участков: для плавного продолжения их направления должны быть согласованы.

Связь с другими темами

Для работы с кривыми полезно уметь задавать точки на плоскости: положение каждой опоры и управляющей точки определяется её координатами. Понимание компьютерной графики помогает увидеть, почему компактное описание линии удобно для создания и изменения изображения. Кривые Безье и сплайны применяют в векторных изображениях, при построении шрифтов и контуров объектов, а также для задания траекторий движения. Во всех этих случаях важно управлять не только положением точек, но и плавностью линии.

Что запомнить

  • Кривые Безье задают форму с помощью конечного набора точек.
  • Кривая проходит через свои опорные точки.
  • Управляющие точки влияют на изгиб, но обычно не лежат на кривой.
  • Направления касательных на концах задаются ближайшими управляющими точками.
  • Сложный контур можно составить из нескольких участков.
  • Для плавного соединения участков нужно согласовать их направления в точке стыка.

Частые вопросы по теме

Чем опорная точка отличается от управляющей?

Опорная точка задаёт точку, через которую проходит кривая, обычно её начало или конец. Управляющая точка влияет на изгиб участка и, как правило, сама на кривой не лежит.

Почему кривая Безье не проходит через управляющие точки?

Управляющие точки задают влияние на форму, а не обязательные точки прохождения. Кривая плавно учитывает их положение по мере движения от начала к концу, поэтому может огибать их.

Как перемещение управляющей точки влияет на форму кривой?

Кривая в целом меняет форму в направлении перемещения точки, но сильнее всего меняется участок, на который эта точка влияет. Опорные точки при этом остаются прежними.

Как определить направление кривой у её начала и конца?

В начале направление касательной совпадает с направлением от начальной опорной точки к ближайшей управляющей. У конца касательная направлена вдоль отрезка от последней управляющей точки к конечной опорной.

Зачем сложную кривую разбивают на несколько участков?

Так проще задавать форму протяжённого или сложного контура: каждый участок можно настраивать отдельно. В точках соединения нужно согласовать опорные точки и направления касательных, иначе появится излом.

Спросить по теме параграфа

§ 70. Кривые

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
11 класс
Учебник
"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.