Гладкие линии

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

Гладкие линии // Математическая составляющая

Самым рас­про­стра­нён­ным устройством во времена «руч­ного» рисо­ва­ния чер­тежей было лекало — плос­кая линейка, гра­ницы кото­рой были гото­вым набо­ром раз­но­об­раз­ных глад­ких кри­вых.

Гладкие линии // Математическая составляющая

Затем настало время исполь­зо­ва­ния кри­вых, задан­ных форму­лами. В наши дни результаты исполь­зо­ва­ния глад­ких «формуль­ных» кри­вых видит на экране мони­тора каж­дый компью­тер­ный поль­зо­ва­тель. А самым рас­про­стра­нён­ным инструмен­том для созда­те­лей компью­тер­ной графики являются кри­вые Безье — элемент всех графи­че­ских программ и систем авто­ма­ти­зи­ро­ван­ного про­ек­ти­ро­ва­ния.

Работа этого инструмента осно­вана на результа­тах матема­ти­че­ских иссле­до­ва­ний, вос­хо­дящих к XIX веку.

В 1885 году немец­кий матема­тик Карл Вейерштрасс дока­зал, что любую непре­рыв­ную на отрезке функцию можно с любой точ­но­стью при­бли­зить алгеб­ра­и­че­скими много­чле­нами (функци­ями вида $a_nx^n+a_{n-1}x^{n-1}+…+a_2x^2+a_1x+a_0$). Геомет­ри­че­ски тео­рему Вейерштрасса можно пояс­нить так. Если вы про­вели над отрез­ком кри­вую линию, перемещая каран­даш слева направо и не отры­вая его от листа бумаги (т. е. изоб­ра­зили график непре­рыв­ной функции), то для про­из­вольно узкой полоски, окружающей кри­вую, най­дётся много­член, график кото­рого про­хо­дит внутри этой полоски.

Гладкие линии // Математическая составляющая

В чём цен­ность этой тео­ремы для нема­тема­ти­ков? Если необ­хо­димо нари­со­вать плав­ную линию, напри­мер, созда­вая лого­тип, кон­тур автомо­биля или букву шрифта, то можно огра­ни­читься графи­ками много­чле­нов, поскольку любую глад­кую кри­вую можно заме­нить графи­ком много­члена так, что эти две линии на глаз будут нераз­ли­чимы. При этом спо­соб пред­став­ле­ния кри­вой будет про­стым и удоб­ным, в том числе для компью­тера. Вме­сто зада­ния линии зна­че­ни­ями в точ­ках (а для пред­став­ле­ния глад­кой кри­вой точек должно быть очень много) необ­хо­димо задать лишь небольшой набор чисел — коэффици­енты много­члена. При пото­чеч­ном зада­нии линии ни о каком век­тор­ном формате речь идти не может — после уве­ли­че­ния масштаба кар­тинки точки будут раз­режены, а в слу­чае зада­ния много­чле­ном возмож­ность масшта­би­ро­ва­ния обес­пе­чи­ва­ется авто­ма­ти­че­ски.

Ввиду большой зна­чимо­сти тео­ремы Вейерштрасса для раз­ви­тия самой матема­тики стали появ­ляться раз­лич­ные вари­анты её дока­за­тельства. Однако когда в 1912 году появи­лось полу­то­рас­тра­нич­ное дока­за­тельство рос­сийского матема­тика С. Н. Бернштейна, оно про­из­вело огром­ное впе­чат­ле­ние неожи­дан­но­стью под­хода и кра­со­той. Это дока­за­тельство было кон­струк­тив­ным — в явном виде предъяв­лялся много­член, удо­вле­тво­ряющий усло­виям тео­ремы. Впо­след­ствии эти много­члены назвали много­чле­нами Бернштейна.

На прак­тике глад­кую кри­вую при­хо­дится соби­рать из частей. И в этой работе более гиб­ким инструмен­том, по срав­не­нию с много­чле­нами, являются сплайны. Если отре­зок раз­бит на несколько более мел­ких отрез­ков и опре­де­лён­ные на них алгеб­ра­и­че­ские много­члены (поли­номы) можно в точ­ках раз­би­е­ния «гладко скле­ить», то полу­чится сплайн (кусочно-поли­номи­аль­ная функция).

Упоми­навши­еся кри­вые Безье, исполь­зу­емые в компью­тер­ной графике, — это сплайны, в кон­струкции кото­рых поли­номы Бернштейна выступают как «стро­и­тель­ные кирпи­чики». Впер­вые кри­вые Безье появи­лись в 60‐х годах XX века, когда П. Безье и П. де Кастельжо неза­ви­симо раз­ра­бо­тали методы про­ек­ти­ро­ва­ния кузо­вов автомо­би­лей, осно­ван­ные на при­ме­не­нии сплай­нов.

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

Напри­мер, квад­ра­тич­ные кри­вые Безье — состав­лен­ные из много­чле­нов вто­рого порядка — исполь­зуются в формате компью­тер­ной анимации SWF. Куби­че­ские кри­вые Безье исполь­зуются в PostScript, PDF, SVG и других графи­че­ских программах и форма­тах. Исполь­зо­ва­лись они и при созда­нии этой книги — как иллю­страций, так и шрифта, кото­рым напе­ча­тан текст.

Разворот книги

Книга «Математическая составляющая»
Книга «Математическая составляющая»