Интеграция геометрии, программирования и информационных технологий при изучении геометрических сплайнов
Библиографическое описание статьи для цитирования:
Бушмелева
Н.
А. Интеграция геометрии, программирования и информационных технологий при изучении геометрических сплайнов // Научно-методический электронный журнал «Концепт». –
2012. – №8 (Август). – С.
71–75. – URL:
http://e-koncept.ru/2012/12111.htm.
Аннотация. Статья посвящена вопросу интеграции учебных дисциплин в практике вузовского преподавания. Ее целью является демонстрация возможностей использования различных информационных технологий при изучении классической дисциплины.
Текст статьи
Бушмелева Наталья Александровна,кандидат педагогических наук, доцент кафедры прикладной математики и информатики ФГБОУ ВПО «Вятский государственный гуманитарный университет», г. Кировnat@vshu.kirov.ru
Интеграция геометрии, программирования и информационных технологий при изучении геометрических сплайнов
Аннотация. Статья посвящена вопросу интеграции учебных дисциплин в практике вузовского преподавания. Ее целью является демонстрациявозможностей использования различных информационных технологий при изучении классической дисциплины.
Ключевые слова: интеграция, геометрия, кривая, аппроксимация, сплайн, Безье.
На занятиях геометриина направлениях физикоматематического профиля достаточно подробно изучаются классические виды кривых: эллипс, гиперболу, параболу и др. и их свойства, которые часто встречаются в практической жизни и деятельности. Настоящая работа посвященакривым, без которых немыслима никакая современная графическая система, даже всем известный стандартный графический редактор Paint. Зададимся следующим вопросом: как изобразить в графическом редакторе кривые различной формы и убедиться, чтодля того, чтобы создать нужную форму, надо знать принципы построения произвольных кривых, а также их аналитическиеописания.Практически невозможно дать точное описание произвольной кривой, но можно подобрать функцию, аппроксимирующую имеющуюся кривую, то есть такую функцию, которая бы задавала другую кривую, но проходящую через заданные точки и максимально близкую к ней. Заметим, что таких функций может быть и несколько. Функции, используемые для аппроксимации произвольных гладких кривых, называются математическими сплайнами. Термин «сплайн» происходит от английского spline, что означает гибкую полоску стали, которую применяли чертежники для проведения плавных кривых, например, для построения обводов или самолетов. Свойства таких функций описываются следующими требованиями:1) функция должна проходить через все заданные точки;2)функция должна иметь непрерывную вторую производную на всей области определения.Кроме этого, значения искомой функции должны сравнительно легко вычисляться.Разумнее искать описание кривой в параметрическом виде. Преимущества параметрического описаниязаключаются в том, что с их помощьюлегко описываются кривые и поверхности, отвечающие неоднозначным функциям. Описание можно сделать таким образом, что формула не будет существенно изменяться при поворотах и масштабировании.Одним из способов задания сплайновой кривой является указание координат ключевых точек. Его придумал француз Пьер Безье. Он предложил разбить кривую на части, каждуюиз которых задавать четырьмя контрольными точками. Такие серии по четыре контрольные Рис. 1. Кривая с контрольными точкамиточки в разной мере определяют направление данной кривой. При этом совершенно необязательно условие прохождения кривой через все контрольные точки(рис. 1).На нем: P0, P3–начальная и конечная точки, P1, P2–ключевые точки, определяющие направление кривой(возможен случай, когдаP1=P2).Такие кривые получили название сплайнов Безье. Рассмотрим их подробнее.Квадратичная кривая Безье[1].Заданы три контрольные точки P0, P1и P2(рис. 2).Применим процедуру деления отрезков, используя параметр t–число от 0 до 1 (например, t=0,75):1)Вычислим точку P1(1)на отрезке P0P1по следующей формуле: P1(1) = (1 –t) P0+ tP1.2)Вычислим точку P2(1)на отрезке P1P2по формуле: P2(1) = (1 –t) P1+ tP2.3)Вычислим точку P2(2)на отрезке P1(1)P2(1)по формуле: P2(2)=(1 –t) P1(1)+ tP2(1).4) Обозначим P(t)=P2(2).Рассмотрим эту процедуру с точки зрения использования параметров. Каждая из точек P1(1), P2(1)и P2(2)зависит от параметра t, и P2(2)принимает значение, соответствующее значению параметра t. Таким образом, P(t) является функциональным представлением кривой Безье. Запишем это алгебраически:P(t) = P2(2)(t) = (1 –t) P1(1)(t) + tP2(1)(t), гдеP1(1)= (1 –t) P0 + tP1, P2(1)= (1 –t) P1 + tP2.Заметим, что мы обозначили P1(1), P2(1)как функции от t. Подставив эти два выражения в исходное, получим P(t) = (1 –t) ((1 –t) P0 + tP1) + t((1 –t) P1 + tP2)== (1 –t) ((1 –t) P0 + tP1) + t((1 –t) P1 + tP2) == (1 –t)2P0 + (1 –t) tP1 + t(1 –t) P1 + t2P2== (1 –t)2P0 + 2 t(1 –t) P1+t2P2.Это многочлен второй степени (или линейная комбинация квадратичных многочленов), следовательно, он задает параболическую кривую. Она и получила название квадратичной кривой Безье.Свойства квадратичной кривой.1)P(0)=P0и P(1)=P2, кривая проходит через контрольные точки P0и P2.2)Функция P(t) является непрерывной, и все ее производные так же непрерывны (это следует из свойств многочленов).3)Продифференцируем P(t) по tи получим: P’(t) = –2 (1 –t) P0+ (–2 t+ 2 (1 –t)) P1+ 2 tP2=2 ((1 –t) + t(P2–P1)).Таким образом, P’(0) 2 (P1–P0), при t 0 и P’(1) 2 (P2–P1) при t=1. Это означает, что наклон кривой при t 0 такой же, как и у вектора 2(P1–P0) , а наклон кривой при t 1 такой же, как и у вектора 2 (P2–P1). 4)Функции (1 –t)2, 2 t(1 –t) и t2являются полиномами Бернштейна 2й степени. Сами функции и их сумма неотрицательны:(1 –t)2+ 2 t(1 –t) + t2= 1 –2 t+ t2+ 2 t–2 t2+ t2= 1.5)Кривая лежит внутри треугольника P0P1P2.Рис. 2. Квадратичная кривая БезьеP(t) является аффинной комбинацией точек P0, P1и P2. Таким образом, P(t) будет лежать в выпуклой области контрольных точек при всех t[0; 1], а выпуклая область треугольника и есть сам треугольник.6)Если точки P0, P1, P2коллинеарны, то кривая есть прямая линия. Если точки лежат на одной прямой, то выпуклой областью является прямая, и, следовательно, квадратичная кривая будет прямой линией.Вывод.1.Геометрический метод построения квадратичной кривой Безье:P(t) = P2(2)(t),где .2.Аналитический метод построения квадратичной кривой Безье:P(t) = (1 –t)2P0+ 2 t(1 –t) P1+ t2P2.Кубическая кривая Безье[2].Заданы четыре контрольные точки P0, P1, P2, P3(рис. 3).Пусть P1(1)(t) = tP1+(1 –t) P0,P2(1)(t) = tP2 + (1 –t) P1,P3(1)(t) = tP3 + (1 –t) P2,P2(2)(t) = tP2(1)(t) + (1 –t) P1(1)(t),P3(2)(t) = tP3(1)(t) + (1 –t) P2(1)(t),P3(3)(t) = tP3(2)(t) + (1 –t) P2(2)(t).ОбозначимP3(3)(t) какP(t).Формулы аналитического представления точек кривой Безье:,где .Кубическая кривая имеет свойства, схожие со свойствами квадратичной кривой.Вывод.1.Геометрический метод построения квадратичной кривой Безье:Задав точки P0, P1, P2, P3и выбрав значение tиз [0,1] сгенерировать точку P(t) на кривой Безье P(t)=P3(3)(t) , где
.2.Аналитический метод построения квадратичной кривой Безье:,где–полиномы Бернштейна третьей степени, а t[0;1].
Кубические сплайны находят самое большое применение в практике[3], так как третья степень –наименьшая из степеней, позволяющих описать форму любой Рис. 3. Кубическаякривая Безьесложности, и при стыковке различных сплайнов можно обеспечить непрерывную первую производную (кривая или поверхность будет без изломов в местах стыка).Можно для аппроксимации использовать и квадратичные кривые. Они гораздо проще, чем кубические сплайны, но тогда для аппроксимации произвольных линий таких кривых понадобится больше.Так, например, для построения эллипса с хорошей точностью достаточно четырех кубических сплайнов, а квадратичных надо как минимум 10–12 (рис. 4).На рисунке эллипс –светлосерая кривая –практически невозможно отличить от кубического сплайна (тонкая черная кривая), построенного по точкам A, A1, B1и B. Контрольные точки A1и B1подбирались так, чтобы в точках Aи Bсовпадали радиусы кривизны сплайна и исходной кривой (эллипса).Квадратичный сплайн (кривая Безье второго порядка, построенная по точкам A, Cи B), как видно на рисунке, в точках Aи Bкасается исходной кривой, но в промежутке между этими точками существенно от нее отклоняется.Задание для практической работыстудентов.1.Написать программу построения кривой Безье на экране компьютера. При этом необходимо предусмотреть работу программы в следующих режимах:построение кубической кривой по заданным параметрам;аппроксимация заданной кривой с кубической путем подбора параметров.2.Получить формулы аналитического представления точек кривой Безье в общем виде и частном случае: P0(–30; 10),P1(–30; –20),P2(20; 30),P3(–20; –10);P0(–30; 10),P1(0; –20),P2(20; 30),P3(20; –10).3.Проверить точность аппроксимации в рамках реализованного алгоритма.Исходными даннымина выполнение работы являются: метод аппроксимации и вид кривой (рис. 5, 6). Необходимо аппроксимировать заданную кривую с помощью кубической.
Рис. 4. Построение эллипса с помощью квадратичной и кубической кривых БезьеРис. 5. Вид кривойРис. 6. Вид кривойРезультаты работы:значения параметров построенной кубической кривой, графики промежуточных результатов и график конечного результата.Замечание. Для выполнения третьего задания можно воспользоваться средствами табличного процессора MSExcel(рис. 7). Необходимо задать координаты контрольных точек. Для каждого значения параметраt[0;1] вычислить значения координат точек кривой (в данном случае их 19) и построить кривую. Изменяя значения координат контрольных точек, подобрать параметры сплайновой кривой, наиболее точно представляющей заданную кривую.
Историческая справка.Пьер Этьен Безье родился 1сентября 1910 г. в Париже в семье потомственных инженеров. Окончил колледж точных наук и, год спустя, получил степень инженераэлектрика. В возрасте 23 лет Безье поступил на службу в компанию «Рено», где и проработал почти всю свою жизнь. Начинал он простым техником, потом постепенно поднялся, участвуя в разработке и проектировании поточных линий автомобильного производства. В начале 70х годов он вычерчивал на компьютере новые корпуса будущих машин –и именно тогда предложил руководству свои уравнения, описывающие его «кривые». Принцип построения линий, основанный на кривых Безье, тут же подхватили другие автомобильные фирмы, а также и другие инженеры из самых разных сфер. К 80ти годам Пьер Безье стал профессором и членом многих инженерных академий в разных странах, написал несколько книг и массу статей. А в свободное время занимался математикой со своими одиннадцатью внуками.Умер в 1999 г.
Ссылки на источники1.Порев В. Н. Компьютерная графика. –СПб.: БХВПетербург, 2002. –432 с. 2.Никулин Е. А. Компьютерная геометрия и алгоритмы машинной графики. –СПб: БХВПетербург, 2003. –560 с.3.ФоксА., Пратт М. Вычислительная геометрия. Применение в проектировании и на производстве. –М.: Мир, 1982. –304 с.
Bushmeleva Natalya,Ph.D., associate professor of applied mathematics and computer science Vyatka State University of Humanities, Kirovnat@vshu.kirov.ruIntegration of geometry, programming, and information technology the study of geometric splinesAbstract. The article focuses on the integration of disciplines in the practiceof university teaching. Its aim is to demonstrate the possibilities of the use of various information technologies in the study of the classical discipline.Keywords: integration, geometry, curve approximation, spline, Bezier.Рис. 7. Результаты вычисления координат точеккривой Безье
Интеграция геометрии, программирования и информационных технологий при изучении геометрических сплайнов
Аннотация. Статья посвящена вопросу интеграции учебных дисциплин в практике вузовского преподавания. Ее целью является демонстрациявозможностей использования различных информационных технологий при изучении классической дисциплины.
Ключевые слова: интеграция, геометрия, кривая, аппроксимация, сплайн, Безье.
На занятиях геометриина направлениях физикоматематического профиля достаточно подробно изучаются классические виды кривых: эллипс, гиперболу, параболу и др. и их свойства, которые часто встречаются в практической жизни и деятельности. Настоящая работа посвященакривым, без которых немыслима никакая современная графическая система, даже всем известный стандартный графический редактор Paint. Зададимся следующим вопросом: как изобразить в графическом редакторе кривые различной формы и убедиться, чтодля того, чтобы создать нужную форму, надо знать принципы построения произвольных кривых, а также их аналитическиеописания.Практически невозможно дать точное описание произвольной кривой, но можно подобрать функцию, аппроксимирующую имеющуюся кривую, то есть такую функцию, которая бы задавала другую кривую, но проходящую через заданные точки и максимально близкую к ней. Заметим, что таких функций может быть и несколько. Функции, используемые для аппроксимации произвольных гладких кривых, называются математическими сплайнами. Термин «сплайн» происходит от английского spline, что означает гибкую полоску стали, которую применяли чертежники для проведения плавных кривых, например, для построения обводов или самолетов. Свойства таких функций описываются следующими требованиями:1) функция должна проходить через все заданные точки;2)функция должна иметь непрерывную вторую производную на всей области определения.Кроме этого, значения искомой функции должны сравнительно легко вычисляться.Разумнее искать описание кривой в параметрическом виде. Преимущества параметрического описаниязаключаются в том, что с их помощьюлегко описываются кривые и поверхности, отвечающие неоднозначным функциям. Описание можно сделать таким образом, что формула не будет существенно изменяться при поворотах и масштабировании.Одним из способов задания сплайновой кривой является указание координат ключевых точек. Его придумал француз Пьер Безье. Он предложил разбить кривую на части, каждуюиз которых задавать четырьмя контрольными точками. Такие серии по четыре контрольные Рис. 1. Кривая с контрольными точкамиточки в разной мере определяют направление данной кривой. При этом совершенно необязательно условие прохождения кривой через все контрольные точки(рис. 1).На нем: P0, P3–начальная и конечная точки, P1, P2–ключевые точки, определяющие направление кривой(возможен случай, когдаP1=P2).Такие кривые получили название сплайнов Безье. Рассмотрим их подробнее.Квадратичная кривая Безье[1].Заданы три контрольные точки P0, P1и P2(рис. 2).Применим процедуру деления отрезков, используя параметр t–число от 0 до 1 (например, t=0,75):1)Вычислим точку P1(1)на отрезке P0P1по следующей формуле: P1(1) = (1 –t) P0+ tP1.2)Вычислим точку P2(1)на отрезке P1P2по формуле: P2(1) = (1 –t) P1+ tP2.3)Вычислим точку P2(2)на отрезке P1(1)P2(1)по формуле: P2(2)=(1 –t) P1(1)+ tP2(1).4) Обозначим P(t)=P2(2).Рассмотрим эту процедуру с точки зрения использования параметров. Каждая из точек P1(1), P2(1)и P2(2)зависит от параметра t, и P2(2)принимает значение, соответствующее значению параметра t. Таким образом, P(t) является функциональным представлением кривой Безье. Запишем это алгебраически:P(t) = P2(2)(t) = (1 –t) P1(1)(t) + tP2(1)(t), гдеP1(1)= (1 –t) P0 + tP1, P2(1)= (1 –t) P1 + tP2.Заметим, что мы обозначили P1(1), P2(1)как функции от t. Подставив эти два выражения в исходное, получим P(t) = (1 –t) ((1 –t) P0 + tP1) + t((1 –t) P1 + tP2)== (1 –t) ((1 –t) P0 + tP1) + t((1 –t) P1 + tP2) == (1 –t)2P0 + (1 –t) tP1 + t(1 –t) P1 + t2P2== (1 –t)2P0 + 2 t(1 –t) P1+t2P2.Это многочлен второй степени (или линейная комбинация квадратичных многочленов), следовательно, он задает параболическую кривую. Она и получила название квадратичной кривой Безье.Свойства квадратичной кривой.1)P(0)=P0и P(1)=P2, кривая проходит через контрольные точки P0и P2.2)Функция P(t) является непрерывной, и все ее производные так же непрерывны (это следует из свойств многочленов).3)Продифференцируем P(t) по tи получим: P’(t) = –2 (1 –t) P0+ (–2 t+ 2 (1 –t)) P1+ 2 tP2=2 ((1 –t) + t(P2–P1)).Таким образом, P’(0) 2 (P1–P0), при t 0 и P’(1) 2 (P2–P1) при t=1. Это означает, что наклон кривой при t 0 такой же, как и у вектора 2(P1–P0) , а наклон кривой при t 1 такой же, как и у вектора 2 (P2–P1). 4)Функции (1 –t)2, 2 t(1 –t) и t2являются полиномами Бернштейна 2й степени. Сами функции и их сумма неотрицательны:(1 –t)2+ 2 t(1 –t) + t2= 1 –2 t+ t2+ 2 t–2 t2+ t2= 1.5)Кривая лежит внутри треугольника P0P1P2.Рис. 2. Квадратичная кривая БезьеP(t) является аффинной комбинацией точек P0, P1и P2. Таким образом, P(t) будет лежать в выпуклой области контрольных точек при всех t[0; 1], а выпуклая область треугольника и есть сам треугольник.6)Если точки P0, P1, P2коллинеарны, то кривая есть прямая линия. Если точки лежат на одной прямой, то выпуклой областью является прямая, и, следовательно, квадратичная кривая будет прямой линией.Вывод.1.Геометрический метод построения квадратичной кривой Безье:P(t) = P2(2)(t),где .2.Аналитический метод построения квадратичной кривой Безье:P(t) = (1 –t)2P0+ 2 t(1 –t) P1+ t2P2.Кубическая кривая Безье[2].Заданы четыре контрольные точки P0, P1, P2, P3(рис. 3).Пусть P1(1)(t) = tP1+(1 –t) P0,P2(1)(t) = tP2 + (1 –t) P1,P3(1)(t) = tP3 + (1 –t) P2,P2(2)(t) = tP2(1)(t) + (1 –t) P1(1)(t),P3(2)(t) = tP3(1)(t) + (1 –t) P2(1)(t),P3(3)(t) = tP3(2)(t) + (1 –t) P2(2)(t).ОбозначимP3(3)(t) какP(t).Формулы аналитического представления точек кривой Безье:,где .Кубическая кривая имеет свойства, схожие со свойствами квадратичной кривой.Вывод.1.Геометрический метод построения квадратичной кривой Безье:Задав точки P0, P1, P2, P3и выбрав значение tиз [0,1] сгенерировать точку P(t) на кривой Безье P(t)=P3(3)(t) , где
.2.Аналитический метод построения квадратичной кривой Безье:,где–полиномы Бернштейна третьей степени, а t[0;1].
Кубические сплайны находят самое большое применение в практике[3], так как третья степень –наименьшая из степеней, позволяющих описать форму любой Рис. 3. Кубическаякривая Безьесложности, и при стыковке различных сплайнов можно обеспечить непрерывную первую производную (кривая или поверхность будет без изломов в местах стыка).Можно для аппроксимации использовать и квадратичные кривые. Они гораздо проще, чем кубические сплайны, но тогда для аппроксимации произвольных линий таких кривых понадобится больше.Так, например, для построения эллипса с хорошей точностью достаточно четырех кубических сплайнов, а квадратичных надо как минимум 10–12 (рис. 4).На рисунке эллипс –светлосерая кривая –практически невозможно отличить от кубического сплайна (тонкая черная кривая), построенного по точкам A, A1, B1и B. Контрольные точки A1и B1подбирались так, чтобы в точках Aи Bсовпадали радиусы кривизны сплайна и исходной кривой (эллипса).Квадратичный сплайн (кривая Безье второго порядка, построенная по точкам A, Cи B), как видно на рисунке, в точках Aи Bкасается исходной кривой, но в промежутке между этими точками существенно от нее отклоняется.Задание для практической работыстудентов.1.Написать программу построения кривой Безье на экране компьютера. При этом необходимо предусмотреть работу программы в следующих режимах:построение кубической кривой по заданным параметрам;аппроксимация заданной кривой с кубической путем подбора параметров.2.Получить формулы аналитического представления точек кривой Безье в общем виде и частном случае: P0(–30; 10),P1(–30; –20),P2(20; 30),P3(–20; –10);P0(–30; 10),P1(0; –20),P2(20; 30),P3(20; –10).3.Проверить точность аппроксимации в рамках реализованного алгоритма.Исходными даннымина выполнение работы являются: метод аппроксимации и вид кривой (рис. 5, 6). Необходимо аппроксимировать заданную кривую с помощью кубической.
Рис. 4. Построение эллипса с помощью квадратичной и кубической кривых БезьеРис. 5. Вид кривойРис. 6. Вид кривойРезультаты работы:значения параметров построенной кубической кривой, графики промежуточных результатов и график конечного результата.Замечание. Для выполнения третьего задания можно воспользоваться средствами табличного процессора MSExcel(рис. 7). Необходимо задать координаты контрольных точек. Для каждого значения параметраt[0;1] вычислить значения координат точек кривой (в данном случае их 19) и построить кривую. Изменяя значения координат контрольных точек, подобрать параметры сплайновой кривой, наиболее точно представляющей заданную кривую.
Историческая справка.Пьер Этьен Безье родился 1сентября 1910 г. в Париже в семье потомственных инженеров. Окончил колледж точных наук и, год спустя, получил степень инженераэлектрика. В возрасте 23 лет Безье поступил на службу в компанию «Рено», где и проработал почти всю свою жизнь. Начинал он простым техником, потом постепенно поднялся, участвуя в разработке и проектировании поточных линий автомобильного производства. В начале 70х годов он вычерчивал на компьютере новые корпуса будущих машин –и именно тогда предложил руководству свои уравнения, описывающие его «кривые». Принцип построения линий, основанный на кривых Безье, тут же подхватили другие автомобильные фирмы, а также и другие инженеры из самых разных сфер. К 80ти годам Пьер Безье стал профессором и членом многих инженерных академий в разных странах, написал несколько книг и массу статей. А в свободное время занимался математикой со своими одиннадцатью внуками.Умер в 1999 г.
Ссылки на источники1.Порев В. Н. Компьютерная графика. –СПб.: БХВПетербург, 2002. –432 с. 2.Никулин Е. А. Компьютерная геометрия и алгоритмы машинной графики. –СПб: БХВПетербург, 2003. –560 с.3.ФоксА., Пратт М. Вычислительная геометрия. Применение в проектировании и на производстве. –М.: Мир, 1982. –304 с.
Bushmeleva Natalya,Ph.D., associate professor of applied mathematics and computer science Vyatka State University of Humanities, Kirovnat@vshu.kirov.ruIntegration of geometry, programming, and information technology the study of geometric splinesAbstract. The article focuses on the integration of disciplines in the practiceof university teaching. Its aim is to demonstrate the possibilities of the use of various information technologies in the study of the classical discipline.Keywords: integration, geometry, curve approximation, spline, Bezier.Рис. 7. Результаты вычисления координат точеккривой Безье