Текст
                    COMPUTATIONAL
GEOMETRY FOR DESIGN
AND MANUFACTURE
I. D. FAUX, B.Sc., Ph.D.,
and
M. J. PRATT, M.A., M.Sc,
Department of Mathematics,
Cranfleld Institute of Technology
ELLIS HORWOOD LIMITED
Publishers Chichestet
Halsted Press: a division of
JOHN WILEY & SONS
New У oik - Chichestei - Brisbane • Toronto


А. ФОКС, М. ПРАТТ ВЫЧИСЛИТЕЛЬНАЯ ГЕОМЕТРИЯ применение в проектировании и на производстве Перевод с английского Г. П. БАБЕНКО и Г. П. ВОСКРЕСЕНСКОГО под редакцией К. И. БАБЕНКО МОСКВА «МИР» 1982
ББК 22.10 Ф75 УДК 68J.3 5J3 Фокс А., Пратт М. Ф75 Вычислительная геометрия. Применение в проектировании и на производстве: Пер. с англ.— М.: Мир, 1982.— 304 с, ил. Монография английских ученых, посвященная представлению геометрических объектов с помощью ЭВМ. Даиы основные сведения из аналитической и дифферен- дифференциальной геометрии, необходимые для инженерных приложений. Приведены конк- конкретные примеры расчетов, графики. Для математиков-прикладников, инженеров, специалистов по автоматизации проектирования сложных конструкций. 1702070000-028 Ф 2882 Л 041@1)-* Редакция литературы по математическим наукам © 1979 I. D Faux and M. J. Pratt/Ellis Horwood Ltd. © Перевод на русский язык, «Мир», 1982 Айвор Д. Фокс, Майкл Дж. Пратт ВЫЧИСЛИТЕЛЬНАЯ ГЕОМЕТРИЯ. ПРИМЕНЕНИЕ В ПРОЕКТИРОВАНИИ И НА ПРОИЗВОДСТВЕ Научн. ред. С. В. Чудов. Мл. науч. ред. Р. И. Пятквна. Художник А. Муонн. Ху- дожественвшй ред. В. И. Шаповалов, технический редактор Г. В. Алюлнна. Коррек- Корректор О. А. Денисова. ИВ №2869 Сдано в набор 04.01.82. Подпиоано к печати 07.04.82. Формат 60X90»/,». Бумага типо- типографская М г. Гарнитура литературная. Печать вшеокая. Объем 9,5 бум л.Усл. печ. л. 19,0 Уел. кр. отт 19,0. Уч.-нэд. л. 17,18. Иэд. Ш 1/1487. Тираж 10000 эк>. Зак. 3637. Цена 1 р. 40 к. ИЗДАТЕЛЬСТВО «МИР» Москва, 1-й Рижский пер.,- 2. Набрано и сматрицировано в Ордена Октябрьской Революции н ордена Трудового Красного Знамени Первой Образцовой типографии имени А. А. Жданова Союзполиграфпрома при Государственном комитете СССР по делам издательств, полиграфии н книжной торговли Москва,- М-54. Валовая, 28. Отпечатано в Ленинградской типографии J6 6 ордена Трудового Красного Знамени Ленинградского объединения «Техническая книга* им. Евгении Соколовой Союэполиграфпрома при Государственном комитете СССР по делам издательств, полиграфии и книжной торговли. 193144. р. Ленинград, ул. Моисееико, 10. Заказ 184
Предисловие редактора перевода Быть может одним из наиболее замечательных примеров исполь- использования ЭВМ является так называемая машинная графика. Под машинной графикой мы подразумеваем решение с помощью ЭВМ таких задач, как построение графиков функций, получение раз- различных сечений заданного предмета, всевозможных его проекций, изготовление чертежей и т. п. Решение этих задач стало возмож- возможным благодаря тому, что информацию о внешнем облике предмета, его размерах, геометрических характеристиках, особенностях мож- можно представить в компактном аналитическом виде и ввести в ЭВМ с целью последующей обработки. В конечном счете все указанные выше задачи сводятся к проблеме аналитического описания и пред- представления в ЭВМ кривых и поверхностей в трехмерном простран- пространстве. Разработав методы точного аналитического описания кривых и поверхностей, мы можем решать задачу об их синтезе, а именно задачу о построении кривой или поверхности по заданным усло- условиям. Эти условия могут быть определены точно (кривая или поверхность должна проходить через заданные опорные точки, иметь непрерывную кривизну и т. п.) или иметь вид эстетических требований, таких, как красота и другие неформализуемые свой- свойства. Синтез удобно осуществлять с помощью интерактивного про- процесса, носящего итерационный характер, когда конструктор мо- может вносить те или иные изменения, имея на дисплее изображе- изображение объекта, полученное на некотором шаге итерации. При этом можно обеспечить также и удовлетворение эстетическим критериям. Понятно, какое значение может иметь машинная графика в процессе проектирования новых изделий. Без преувеличения мож- можно сказать, что основой любой системы автоматического проекти- проектирования должен являться пакет программ, служащий для описа- описания и конструирования внешних геометрических форм проектируе- проектируемого изделия. Точно так же велика роль машинной графики в вопросах технологии, ибо сам процесс изготовления той или иной детали на станках с цифровым управлением стал возмож- возможным благодаря тому, что информация о внешнем облике детали,
Предисловие редактора перевода ее размерах, геометрических характеристиках может быть введена в ЭВМ с целью управления движением режущего инструмента. Предлагаемая читателю монография посвящена в основном вопросам описания и конструирования кривых и поверхностей. Она написана очень доступно и представляет замкнутое в себе изложение предмета, поскольку все необходимые сведения из аналитической геометрии, векторной алгебры и дифференциальной геометрии содержатся в первых четырех главах. В основу описа- описания кривых и поверхностей положен аппарат сплайн-функций. Главы, посвященные собственно вопросам задания и построения кривых и поверхностей, написаны в основном на труднодоступ- труднодоступных материалах различного рода препринтов и отчетов. Моногра- Монография дает ясное и доступное изложение предмета в целом. Она адресована прежде всего широким кругам инженеров и работни- работников конструкторских бюро, а также программистам, занимающим- занимающимся вопросами машинной графики, и может оказать большую по- помощь 6 их практической работе. Монография может также слу- служить хорошим пособием при чтении различного рода спецкурсов, посвященных машинной графике. В заключение отметим, что данная монография несомненно будет полезна специалистам различной квалификации и будет способствовать внедрению достижений машинной графики в прак- практику работы конструкторских бюро. Перевод книги выполнен Г. П. Бабенко (главы 1—5, введение, предисловие и приложе- приложения 1—5) и Г. П. Воскресенским (главы 5—9, библиография). К. И. Бабенко
Предисловие Цель этой книги—дать обзор основных результатов, получен- полученных за последние тридцать лет в области, которую Форрест A971) назвал вычислительной геометрией, описав ее как «представление в ЭВМ, анализ и синтез информации о геометрическом образе». По нашему мнению, в последние годы чисто геометрические на- начала этой области прикладной математики до некоторой степени затемнены ее вычислительными аспектами.- Пытаясь восстановить нарушенное равновесие, мы старались в настоящей работе под- подходить к изучению того или иного вопроса не с аналитической, а с геометрической точки зрения. Поэтому мы начинаем книгу с краткого изложения тех разделов геометрии, которые имеют прямое отношение к нашей главной теме. Материал первых глав в дальнейшем широко используется при трактовке различных типов представления кривых и поверхностей. Добавлены прило- приложения, содержащие основные сведения о' матрицах, детерминан- детерминантах и численном анализе, с тем чтобы читатели, знакомые с ана- анализом в объеме, характерном для большинства программ подго- подготовки инженеров, могли пользоваться книгой без обращения к иным источникам. Излагаемый в книге материал первоначально появился в виде конспекта курса лекций по прикладной геометрии, который чи- читается в Крэнфилдском университете инженерам и работающим в промышленности математикам, интересующимся системами авто- автоматического проектирования и системами, использующими ЭВМ при обработке деталей. Материал этих лекций, значительно рас- расширенный и переработанный, и составил настоящую книгу, кото- которая предназначается главным образом для вышеуказанных кате- категорий читателей. Мы надеемся, что некоторые специалисты найдут ее полезным введением в данный предмет, хотя манера изложе- изложения может не совсем удовлетворять вкусу чистых математиков. При отборе материала для настоящей книги пришлось ограни- ограничиться наиболее важными вопросами. Поскольку нас прежде всего интересуют основные математические принципы рассматриваемых здесь методов, мы не приводили подробности применения этих методов в приложениях, однако обширная библиография, имею- имеющаяся в книге, должна позволить читателю самостоятельно найти
Предисловие нужные ему подробности. Мы широко использовали материал опубликованных работ различных авторов, не скупясь на похвалу, если работа действительно того заслуживала. Нам бы хотелось выразить благодарность д-ру К. П. Баттер- филду за полезные советы, а также за предоставленную возмож- возможность использовать результаты его докторской диссертации. Мы также благодарим С. С. Гулда и г-жу Э. Мак-Леллан, сотрудни- сотрудников Отделения проектирования »лектронных систем Крэнфилд- ского университета, за предоставление информации, относящейся к рассматриваемым в настоящей книге вопросам числового управ- управления. Нашу особую благодарность мы хотели бы засвидетельство- засвидетельствовать г-же Айрис Харрисон за безграничное терпение и тщатель- тщательность, проявленные ею при подготовке трудного машинописного текста. Мы благодарим также нашего издателя Эллиса Хорвуда, терпеливо ожидавшего завершения работы над этой книгой. Крэнфилд, Айвор Фокс-, январь 1978. Майкл Пратт
Введение Хотя истоки численной геометрии можно обнаружить и ранее, но практическое значение она впервые приобрела во время второй мировой войны, когда нужды промышленности, особенно самоле- самолетостроения, стимулировали разработку новых методов проектиро- проектирования. До этого времени процесс проектирования осуществлялся графическим способом с помощью различных приемов, предлагае- предлагаемых руководствами по начертательной геометрии, таких, например, как книга Уэллмана A957). Новые методы основаны на исполь- использовании аналитических кривых, и в частности конических сечений (Лайминг, 1944). Новые методы позволили избежать кропотливой чертежной работы, заменив ее довольно большим объемом вычис- вычислений, что привело к широкому использованию механических и электромеханических калькуляторов. Процесс проектирования стал осуществляться значительно быстрее, чем прежде, причем с более высокой степенью пространственной целостности, чем это было возможно при использовании графических методов. С появлением ЭВМ были разработаны более универсальные приемы, в основном отошедшие от традиционного подхода графи- графических методов. Прежде для представления поверхности нужно было построить некоторое множество продольных гладких кривых, проводя их через точки, определяемые предварительно построен- построенным набором поперечных сечений; этот процесс называется плазо- вым методом построения поверхностей. Во многих новых методах поперечные и продольные кривые играют одну и ту же роль, разбивая поверхность на некоторую совокупность криволинейных четырехугольных порций. Каждую из этих порций поверхности можно однозначно описать с помощью математической формулы. Новые методы по сравнению со старыми, которые позволяли оп- определять лишь систему линий, лежащих на проектируемой поверх- поверхности, но не саму поверхность, явились большим шагом вперед в области проектирования и построения сложных поверхностей. Один из первых методов, основанных на разбиении проекти- проектируемой поверхности на порции, принадлежит Фергюсону A963), причем этот метод отличается от традиционных еще и тем, что кривые и поверхности в этой процедуре определяются с помощью параметрического представления, а не в декартовых координатах.
ig Введение С тех пор использование параметрического представления кривых и поверхностей стало обычным, и причин тому много. Во-первых, представляя кривые таким образом, мы получаем возможность дать простое математическое описание закрученных кривых в трехмерном пространстве; прежде такие кривые определялись с помощью своих проекций на две взаимно перпендикулярные коор- координатные плоскости. Во-вторых, представление кривых в параме- параметрических координатах дает возможность избежать определенных проблем, которые могут возникнуть, когда замкнутые кривые и кривые с вертикальными касательными представляются в некото- некоторой фиксированной системе координат. И наконец, что, пожалуй, наиболее важно, такое представление позволяет очень просто осуществлять такие преобразования координат, как перенос и вращение. Другими словами, параметрический способ задания кривых освобождает от привязки к какой-либо определенной си- системе координат. Как указывал Форрест A972 с), форма предмета не зависит от выбора системы координат, поэтому разработку параметрического метода можно считать совершенно закономер- закономерной. Однако без ЭВМ его использование было бы невозможно. Одновременно с разработкой систем, основанных на парамет- параметрическом методе, появились автоматические чертежные устройства, графические дисплеи и станки с цифровым управлением. Пара- Параметрический способ задания кривых и поверхностей оказался исключительно удобным для применения этих новшеств. При эксплуатации графических дисплеев необходимо обеспечить преоб- преобразование координат, определение проекций, различного рода перспективных изображений и т. д.; все эти операции наиболее просто осуществляются при параметрическом представлении кри- кривых и поверхностей. Дисплеи позволяют получать на экране графическое изображение, показывающее, как математически опи- описанный трехмерный объект будет Еыглядеть, если его рассматри- рассматривать из любой интересующей нас точки пространства. Вычислив математическое представление формы объекта, вполне естественно сохранять его в памяти ЭВМ, что к тому же дает целый ряд преимуществ. Перечислим некоторые из них: (а) Форма объекта находится в памяти машины в виде чисто цифровых данных. Сложности, аналогичные возникавшим прежде из-за деформации чертежной бумаги или неточно- неточностей выполнения чертежей, при этом отсутствуют. (б) ЭВМ может легко вычислить такие геометрические^харак- теристики объекта, как объемы его частей, очертания по- поперечных сечений или их площади. (в) С помощью ЭВМ легко выполняется переход от одних единиц измерения к другим. (г) Информацию относительно формы объекта можно визуали- визуализировать при помощи графических терминалов или в чис-
Введение 11 ленном виде. В частности, можно получить управляющую ленту для станка с числовым управлением или информа- информацию в виде, пригодном для непосредственной обработки с помощью программы структурного анализа. Это в принци- принципе позволяет объединить посредством ЭВМ весь процесс производства, начиная с проектирования и анализа и кон- кончая получением готового изделия. Появление первых систем построения поверхностей стимули- стимулировало интенсивные математические исследования в этой области. Здесь мы перечислим только некоторые из них; более полный анализ этих результатов читатель найдет в тексте настоящей кни- книги. Прежде всего, большие успехи были достигнуты в теории сплайнов. Сплайны — приближенные математические аналоги гиб- гибких деревянных или металлических лекал, обычно используемых чертежниками для проведения некоторой кривой, соединяющей заданные точки. В силу своего построения сплайны являются гладкими кривыми, и простое математическое обобщение приво- приводит к столь же гладким сплайн-поверхностям. За последние не- несколько лет было показано, что любую сплайновую кривую или поверхность можно представить с помощью фундаментальных сплайнов, называемых также В-сплайнами (Карри и Шёнберг, 1966), обладающих тем свойством, что они отличны от нуля лишь на некотором отрезке (соответственно в некоторой области). Та- Такое представление позволяет выполнять в процессе проектирова- проектирования локальную модификацию поверхности, не пересчитывая вся- всякий раз поверхность в целом. Кроме того, Куне A967) предложил чрезвычайно общую тео- теорию построения порций поверхности. Он показал, как соединить четыре произвольные граничные кривые единой гладкой порцией поверхности и обеспечить непрерывность градиентов и кривизны между отдельными порциями поверхности. В этой работе были сведены воедино многие результаты, полученные в данной облас- области ранее, но именно в силу общего характера предложенной им теории непрофессиональным математикам трудно в ней разобраться. К настоящему времени методы описания поверхностей потеряли всякую связь с породившими их методами ручного черчения. Пользоваться же различными системами для определения поверх- поверхностей должны современные операторы, пришедшие на смену чер- чертежникам и специалистам по плазовым поверхностям, от которых, несмотря на их умение быстро интуитивно воспринимать геоме- геометрические идеи, трудно ждать глубокого понимания современной математической теории порций поверхности. В результате возни- возникает вопрос, как выразить те огромные возможности, которые предлагают современные методы задания поверхностей, на языке, легко понимаемом оператором. Один из вариантов решения этой проблемы—сделать систему полностью автоматической, чтобы
H Введение единственной входной информацией служили координаты точек, через которые должна проходить проектируемая поверхность, и полностью лишить оператора каких-либо иных степеней свободы. Системы такого типа называются системами подгонки поверхно- поверхностей, а принцип действия таких систем специалисты по численному анализу назвали бы двумерной интерполяцией. Третьим большим достижением в области математики было введение Безье A971) системы UNISURF, полностью автомати- автоматизированной, но работающей по другому принципу. Система UNISURF основана на остроумной переформулировке соотноше- соотношений, на которых была построена исходная система Фергюсона. С помощью этой системы оператор, не имеющий специальной ма- математической подготовки, может легко проектировать отдельные участки кривых или поверхностей, пользуясь для этого только элементарными геометрическими понятиями. Эта система была первой практической системой проектирования поверхностей. Вкратце, система UNISURF работает следующим образом. Проек- Проектировщик определяет незамкнутую ломаную, образованную пря- прямолинейными отрезками, изображение которой выводится на графический дисплей. Система же аппроксимирует эту ломаную гладкой кривой. Внося различные модификации в исходную ло- ломаную, проектировщик может изменять аппроксимирующую кри- кривую вполне предсказуемым образом, пока она не будет удовлетво- удовлетворять желаемым критериям, будь то эстетические или какие-либо иные. Эта система реализует диалоговый режим обмена информа- информацией между проектировщиком и ЭВМ. Подобным же образом проектируются и поверхности, но для этого предварительно стро- строится незамкнутая полиэдральная поверхность.1 В то время как в системе UNISURF применяются простые полиномиальные функ- функции, подобная система, предложенная не так давно Гордоном и Ризенфельдом A974), основана на упомянутых выше В-сплайнах и использует их свойства для сугубо локальной модификации кривых и поверхностей. „ Основная сложность подгонки и проектирования кривых за- заключается в том, что пока нет ясного определения «правильности» кривой. Любой проектировщик или специалист по плазовым по- поверхностям может сразу определить, является данная кривая пра- правильной или нет, хотя с трудом смог бы объяснить, почему он дал ту или иную оценку. Когда нескольких таких специалистов просят провести через заданное множество точек «наилучшую» кривую, то получаемые ими результаты, как правило, несколько отличаются. Опыт работы с вычислительными системами для проек- 1Для краткости такая поверхность будет далее называться многогранни- многогранником.— Прим. перев, *
Введение It тирования кривых и поверхностей показывает, что правильность кривой означает не просто непрерывность градиента и кривизны, но нечто большее. Ясно, что эти качества желательны, да и до- достигаются без труда, но сами по себе они не гарантируют прием- приемлемых результатов. Дело в том, что кривая может быть очень гладкой в математическом смысле и в то же время содержать сколь угодно много осцилляции: простой пример—функция sin*, имеющая непрерывные производные всех порядков. В большин- большинстве практически применяемых ныне систем используются поли- полиномы, которые также могут иметь ошеломляющее число максиму- максимумов и минимумов, однако в последнее время растет интерес к более экзотическим, но менее осциллирующим функциям для син- синтеза кривых. Примером таких функций могут быть напряженные сплайны (Швейкерт, 1966), или нелинейные сплайны, применяемые в системе AUTOKON (Мелум, 1969). Этот краткий обзор показывает, что методы вычислительной геометрии основаны на достижениях целого ряда областей мате- математики, которые обычно изучаются как самостоятельные матема- математические дисциплины. Поэтому в первых четырех главах настоя- настоящей книги мы стремились связать воедино те разделы классической аналитической, алгебраической и дифференциальной геометрии, которые имеют прямое отношение к нашей основной теме, и дать краткий обзор векторной алгебры, ставшей общепринятым языком вычислительной геометрии. Материал этих глав поможет объеди- объединить и, мы надеемся, прояснить геометрические аспекты различ- различных методов, применяемых при подгонке и проектировании кривых и поверхностей, которые рассматриваются в гл. 5, 6, 7 и 8. В гл. 9 обсуждаются некоторые специальные численные методы, приме- применяемые при проектировании и изготовлении поверхностей. С тем чтобы работа над настоящей книгой не требовала при- привлечения дополнительных источников, она снабжена приложения- приложениями, в которых кратко излагаются основные сведения по элемен- элементарной матричной алгебре, теории детерминантов, а также дается анализ некоторых основных численных методов. Относительно этих последних стоит отметить, что многие из них можно приме- применять более или менее непосредственно для того типа подгонки кривых, которым мы интересуемся. Основное различие состоит в том, что, «подгоняя кривую» в обычном математическом смысле, мы пытаемся аппроксимировать некоторую функцию, и поэтому можно дать четкое определение понятия погрешности и, следова- следовательно, установить возможные допуски. В численной геометрии наша цель—представить не функцию, а некоторую форму, и поэ- поэтому наши критерии приемлемости, как уже отмечалось, более расплывчаты. И наконец, нам хотелось бы сказать несколько слов о таком методе задания поверхности, когда машинное представление слож-
14 Введение ной конфигурации строится из представлений более простых ее компонентов. В тексте книги этот метод не рассматривается не по причине недооценки значения методов этого типа; дело в том, что нас прежде всего интересует описание отдельных компонен- компонентов, а не соединение их в единое целое. Читатель, интересую- интересующийся данным вопросом, может найти подробную информацию о системах такого типа, например, в работе Брейда A973) или By A977a).
Глава 1. Аналитическая геометрия на плоскости 1.1. Основные понятия 1.1.1. Декартовы координаты на плоскости Наипростейшей системой координат на плоскости является хорошо известная система декартовых координат. Две перпенди- перпендикулярные прямые, проведенные на плоскости, образуют оси /соор- динат, а точка пересечения этих прямых является началом коор- координат О. Начало координат делит каждую ось на положительную и отрицательную полуоси. Пусть положительными х- и «/-полуосями (рис. 1.1) будут пря- прямые Ох и Оу соответственно. Положительные полуоси обычно выбираются таким образом, чтобы вращение от Ох к Оу вокруг начала координат происходило против часовой стрелки. г < ~щ— г У, У 1 0 3 X Я* 13@,1 i 1 ) г(х, у) У Рис. 1.1 Чтобы найти координаты точки Р на этой плоскости, необ- необходимо провести через Р прямые линии, параллельные полуосям Ох и Оу; точки пересечения этих прямых с полуосями обозначим через X и Y соответственно. Координатами х, у точки Р являются длины отрезков ОХ и OY, как показано на рис. 1.1. В случае когда X (нли Y) лежит на отрицательной полуоси, соответствую- соответствующей координатой будет являться длина отрезка ОХ (или OY), взятая со знаком минус. Записывая координаты, мы обычно заключаем их в скобки в порядке (х, у), а рассматриваемую точку указываем как «точку
16 Глава 1 Р(х, у)». На примере трех точек Pj (—1,2), Ра(—2, —1) и Р,C, 1), изображенных на рис. 1.1, показано, как пользоваться положи- положительными и отрицательными координатами. Оси координат делят плоскость начеты- ре квадранта (рис. 1.2); на этом же рисун- рисунке даны принятые для этих квадрантов обозначения. Система декартовых координат ис- используется для описания соотношений между точками, прямыми и кривыми ли- линиями. С подробным изложением аналити- аналитической геометрии на плоскости читатель может ознакомиться по учебникам, пере- перечисленным в библиографии1'. Предпола- Предполагая, что читателю известны основные ме- геометрии на плоскости, мы напомним, некоторые результаты и укажем те 2-й Ь-и 0 1-й кйядрант X 4-й Рис. 1.2 тоды аналитической не приводя доказательств, из них, которые представляют интерес с точки зрения вычисли- вычислительной математики. 1.1.2. Уравнения прямой линии Наиболее употребительное уравнение прямой линии имеет вид A.1) У1 где т—тангенс угла наклона, а с—точка пересечения с осью у (рис. 1.3). Это явное выражение для у позволяет вычислить у при любом значении х. Однако у этого уравнения есть один не- недостаток: с его помощью нельзя описать вертикальные прямые, например, прямую х = 1. Если прямая проходит через две заданные точки (Xf, yt) и (*ai Ун)* то явное уравнение A.1) принимает вид A.2) т=Цб Рис. 1.3. Последнее уравнение можно записать более симметрично: (*»—*i) (U—Vi) = {Уг~ yt) (X — Xt). A.3) Уравнение прямой теперь имеет неявный вид; чтобы найти у при заданных значениях х, необходимо решить это линейное урав- х> Для удобства приведены ссылки иа соответствующие отечественные учеб- учебники.— Прим. ред.
Аналитическая геометрия на плоскости t7 нение, т. е. вернуться к уравнению A.2). Но эта неявная формула дает возможность описывать вертикальные прямые: если x^—Xi, а УгФуи мы получаем уравнение вертикальной прямой х = х±. Решая задачи с помощью карандаша и бумаги, мы легко справляемся с проблемой вертикальных прямых, но эта же про- проблема в значительной степени осложняет нашу работу, когда речь идет о программировании геометрических задач для ЭВМ. Кроме того, мы должны избегать почти вертикальных прямых, поскольку последние могут привести к переполнению либо к про- проблеме ошибок округления. Пользуясь неявной формой записи, нам удается избежать введения особых условий для таких прямых. В общем виде это уравнение записывается следующим образом: с^О. A.4) Вертикальной прямой является просто прямая, для которой Ь — 0. Необходимо сказать об одной характерной особенности, присущей всем неявным уравнениям: коэффициенты таких урав- уравнений определяются неоднозначно, поскольку уравнение остается справедливым и тогда, когда вместо а, Ъ и с берутся произволь- произвольные пропорциональные им величины Ха, Kb и "кс. Чтобы получить однозначное описание любой заданной пря- прямой, коэффициенты должны быть нормированы следующими усло- условиями: а*-\-Ь2 — 1, с < 0. Двумерные варианты языка програм- программирования APT предусматривают подобную нормировку. 1.1.3. Уравнения плоских кривых Для определения плоской кривой мы имеем уравнение явного вида y = f(x), где /(х) —заданная функция от х, значения и гра- график которой находятся обычным способом (рис. 1.4). Вычерчивая
(8 Глава 1 график этой функции, мы делаем предположения относительно поведения кривой между точками табулирования. Более подробно вопрос интерполирования между заданными значениями рассматри- рассматривается в приложении 5. Явное уравнение является удовлетворительным в том случае, когда функция однозначна, а кривая не имеет вертикальных каса- касательных. Поэтому оно непригодно для описания многих имеющих большое практическое значение кривых, таких, как окружность, эллипс и другие конические сечения. Рис. 1.5. Для окружности, изображенной на рис. 1.5, мы имеем урав- уравнение х%-\-у2 — г2 = 0, которое является неявным. Значение у не описывается непосредственно функцией от х. Чтобы получить явное уравнение, данную окружность следует разбить на два сег- сегмента, тогда для верхней половины получим у — -)- У г2— х2, а для нижней половины у = ~\/гг2 — х2. Эта операция разбиения на сег- сегменты также затрудняет составление программ для ЭВМ. Неявное уравнение кривой в общем случае записывается в виде у) = 0, где / (х, у) есть заданная функция от х и у. Это урав- уравнение позволяет установить, находится ли точка (х, у) на данной кривой или нет, но оно непригодно для непосредственного вы- вычисления точек на кривой, за исключением тех случаев, когда оно сводится к явному уравнению для х или для у. Если / (х, у) есть непрерывная функция от х и у, то в про- процедурах автоматического поиска, осуществляемых с целью вычер- вычерчивания графика кривой или проведения механического инстру- инструмента вдоль этой кривой, значение f(x, у) можно использовать как меру близости к данной кривой. В приложениях обычно требуется, чтобы кривая имела непрерывную касательную, суще- существование которой обеспечивается наличием непрерывных частных производных df/dx и df/dy, причем необходимо, чтобы эти частные
Аналитическая геометрия на плоскости производные не обращались в нуль одновременно. Если к тому же требуется непрерывность кривизны, то, помимо вышеуказан- вышеуказанных условий, достаточно, чтобы частные производные второго порядка также были непрерывны. Наиболее распространенными неявными уравнениями являются уравнения конических сечений. Приведенные на рис. 1.6—1.8 хорошо известные уравнения являются каноническими уравне- уравнениями изображенных на этих рисунках конических сечений. Рис. 1.6. Эллипс -^--f-|j--l= У 0 А \ (а,2а) (а,0) X Рис. 1.7. Парабола у2—4ах — Рис. 1.8. Гипербола ._* i=o В общем случае все эти типы конических сечений описываются уравнением второй степени S = ax2 + 2hxy + by2 -\-2gx-\-2fy-\-c = Q, A-5) где коэффициенты а, Ь, с, /, g и h могут принимать различные значения. В частности, кривая является эллипсом, если h2 < ab; если h2 = ab, мы имеем параболу; в случае h2 > ab получаем гиперболу при условии, что abc + 2fgh—а/а—bg2—ch^O, в про- противном случае наша кривая вырождается в пару прямых линий,
20 Глава 1 возможно и совпадающих. Если мы хотим, чтобы любое задан- заданное коническое сечение имело единственное представление, то как и в случае уравнения прямой линии A.4), коэффициенты уравнения кривой должны быть нормированы некоторым стан- стандартным образом. Помимо большого практического значения, которое объясняется тем, что конические сечения являются плоскими сечениями кону- конусов и цилиндров, эти кривые обладают сравнительно простыми аналитическими свойствами. Поэтому их изучению посвящена значительная часть многих классических руководств по аналити- аналитической геометрии на плоскости, таких, например, как учебник Робсона A940). Некоторые свойства этих сечений рассматриваются нами в разд. 1.2. 1.1.4. Некоторые важные формулы, описывающие взаимоотношения между точками и прямыми 1.1.4.1. Расстояние d между двумя точками (xlt yt) и (х2, t/2) определяется, согласно теореме Пифагора, по следующей формуле: yt)*. ' A.6) 1.1.4.2. Расстояние d между точкой (хи yt) и прямой ах -f- -f- by-\- c = 0 дается формулой d^(aXi + byi + cy/(a* + b*). A.7) 1.1.4.3. Две прямые a1x-\-b1y + ct = 0 и а2х + Ь2у+с2 — 0 пере- пересекаются в точке (х, у), где х~а1Ьг—агЬ1 И У "= при условии, что а-})гФаф{, в противном случае эти две прямые параллельны (либо могут совпадать). 1.1.4.4. Угол 0, образованный двумя прямыми atx-f-b^y + ct = 0 и аах-т-&2г/-т-с2 = 0, определяется но формуле / A>9) 1.1.4.5. Две указанные выше прямые параллельны, если аф^аф,. , A.10) 1.1.4.6. Две прямые, см. выше, перпендикулярны, если г = 0. A.11)
Аналитическая геометрия на плоскости 1.1.5. Пересечения прямых и кривых Для того чтобы найти точку пересечения двух кривых / (х, у) = 0 g(x> #) = 0. нужно решить систему этих двух уравнений. Если обе заданные линии прямые, решение находится элементарно, как в A.8), но здесь возможен аномальный случай, когда эти прямые параллельны. Чтобы исключить эту аномалию, необходимо перейти к однородным координатам. Эти координаты будут рассмотрены позже, в гл. 3, посвященной системам координат и преобразова- преобразованиям общего вида. Если / и g являются нелинейными функциями от х и у, реше- решение системы указанных выше уравнений осуществляется при по- помощи итерационных численных методов. Численные методы, при- применяемые для решения нелинейных уравнений, рассматриваются в приложении 4. 1.1.6. Касательные и нормали к кривым Касательная к кривой y = f{x) в точке Р(х1( г/х) определяется уравнением y = yi + f'(*i){x-Xi), A.12) где /' (xj есть значение производной dffdx в точке х = хх (рис. 1.9). У-Ф) Касательная х Рис. 1.9. Если рассматриваемая кривая имеет в точке Р вертикальную или почти вертикальную касательную, определение касательной при помощи этой формулы невозможно или затруднительно.
22 Глава 1 Затруднения подобного рода легко преодолеваются, если для описания кривой используется неявное уравнение g(x,y) = 0. Тогда неявное уравнение касательной будет иметь вид gx(xu yi){x—xl) + ga{x1, у1)(у—у1)=>0, A.13) где gx (хи г/J и gy (xlt уг) суть значения производных dg/dx и dg/dy в точке Р. Пример. Касательная к окружности х2+г/2—1—0 в точке A, 0) вычисляется следующим образом. Поскольку g(x, г/)-=*2 + */2 — 1, то gx = 2х и gy = 2г/, откуда следует, что gx(l, 0) = 2 и gy(l,0) = 0. Таким образом, уравне- уравнение искомой касательной имеет вид 2(х—1) + 0 {у — 0) = 0, т. е. касательная является вертикальной линией х=\. Заметим, что если окружность или касательная записаны в явном виде, полу- получить этот результат невозможно. Явное выражение для нормали, восстановленной в точке Р, имеет вид Это уравнение непригодно для случая, когда кривая горизон- горизонтальна в точке Р. Соответствующее уравнение неявного вида записывается следующим образом: gy(Xi, yi)(x-x1)-gx(xl, y1){y — y1) = O. A.15) Это уравнение позволяет определять нормали в тех случаях, когда применение явного уравнения невозможно или сопряжено с некоторыми трудностями. 1,1,7. Параметрические уравнения прямых и кривых Мы видели, что, хотя уравнения неявного вида для прямых и'кривых и помогают нам справиться с задачей в случаях, когда применение уравнений явного вида затруднительно или невоз- невозможно (например, когда мы имеем дело с множественными зна- значениями или с вертикальными касательными), они непригодны для непосредственного генерирования точек на кривых, а для определения точек пересечения вынуждают прибегать к числен- численным методам. Существует еще один способ описания прямых и кривых, при котором координаты х"и у считаются равноправ- равноправными: это уравнения параметрического вида. Координаты х и у представляются в виде функций от некото- некоторого вспомогательного параметра t, т. е. x = x{t), у — y(t). На-
Аналитическая геометрия на плоскости 23 пример, параметрическим способом окружность х%-\-у%—1=0 записывается в виде уравнений X — COS t и A.16) г/ = sin t, где / принимает значения в интервале 0^/<2л (рис. 1.10). Хотя обычно нужно указывать область изменения параметра t, это может стать преимуществом, если наша цель—описать сегмент- кривой. Например, параметрические уравнения A.16) и условие 2я/3 ^ t < 7я/6 дают полное описание дуги ABC окружности, представленной на рис. 1.10. При помощи параметрических уравнений можно, вычисляя x(t) и y(t) для последовательных значений параметра t, получить график кривой. J У , • 0 - tlx2-x,)AQ х2-х. R X Рис. 1.10. Рис. 1.11. Если x(t) и y(t) — линейные функции от t, то рассматриваемая кривая будет прямой; в частности, прямая, проходящая через точки Pj (xu г/j) и Р2(х2, г/2), определяется при помощи уравнений X = X1-\-t(Xt Xi), ,. .„. где точка Р{х, у), как показано на рис. 1.11, делит прямую, соединяющую точки Р, и Р2, на отрезки в отношении ^:A—t). Для доказательства этого факта следует использовать подобие треугольников PiPQ и PiP2R. Прямая ах -{-by + с ¦= 0 описывается параметрическими уравне- уравнениями — ас -Ьс
24 Глава 1 В отличие от неявных (нормированных) уравнений параметри- параметрическое представление ни в каком смысле не является единствен- единственным, и совершенно различные функции x(t) и y(t) могут пред- представлять одну и ту же кривую. Более подробный анализ свойств параметрических кривых будет дан позже, когда будут рассматри- рассматриваться трехмерные кривые и прямые линии. Однако для полноты информации мы дадим здесь, не приводя доказательства, пара- параметрические формулы для касательных и нормалей. Касательная к кривой x = x(t), y = y(t) в точке Р с пара- параметром t = tx определяется уравнениями x = x(x) = x(t) + xx{t), где т —параметр на касательной, а х(гг), г/(^) —значения произ- производных dx/dt и dy/dt в точке t — tx. Нормаль, восстановленная к этой кривой, определяется урав- уравнениями x = x{t) + xy(t) 1.1.8. Пересечение двух параметрических кривых Чтобы найти точку пересечения двух параметрических кривых x = x(t), y = y(t) и х = ?(т), у~ т| (т), нужно решить систему из двух уравнений с двумя неизвестными t и т: *(°-|(Т) = 0' A21) таким образом, здесь ситуация ничуть не лучше, чем в случае, когда кривые описаны при помощи уравнений неявного вида. Если же уравнение одной кривой дано в неявном виде, а дру- другой—в параметрическом, можно параметрическое уравнение под- подставить в уравнение неявного вида, в результате чего получает- получается одно (как правило нелинейное) уравнение с одной неизвестной t. Пример. Найдем точки пересечения окружности х2 + у2 —1=0 и прямой x = t, у=\—t. Имеем откуда —2t + t* — 1=0, и ^ = 0 или 1,
Аналитическая геометрия на плоскости 2$ Подставляя этот результат в уравнения параметрического вида, получаем две точки пересечения: @, 1) и A, 0). Если, наоборот, та же самая окружность дана уравнениями параметрического вида x = cost, y = s\nt, а прямая определена уравнением неявного вида х-^-у— 1=0, то мы получаем триго- тригонометрическое уравнение cos t + sin t— 1 =0. В этом случае решения t = 0 и t = л/2 очевидны; однако как правило этот метод требует получения численного решения для t. Несмотря на это, мы включили его, чтобы показать, что слож- сложные задачи численного анализа могут решаться проще при по- помощи смешанных методов. 1.1.9. Кривизна Радиус кривизны р кривой у = у[х) определяется известной формулой где штрих означает дифференцирование по х. Так как радиус кривизны бесконечен в точках перегиба кривой, удобнее пользо- пользоваться самой кривизной х=1/р, поскольку эта величина конеч- конечная, если только на кривой нет заострений. Итак, 0-22) Соответствующая формула для кривой, определенной неявным уравнением f(x, г/) = 0, имеет вид (L23) где подстрочные индексы х и у означают частное дифференциро- дифференцирование по х и г/, например fxy = dif/dxdy. Для кривой, описанной параметрическими уравнениями х = «=х@, y=-U(t), соответствующее выражение имеет вид где точки означают дифференцирование по параметру t.
26 Глава 1 1.2. Некоторые вопросы аналитической геометрии на плоскости В такой сравнительно небольшой книге, как эта, дать описа- описание всего многообразия методов, применяемых в тех или иных приложениях, не' представляется возможным. Поэтому мы рас- рассмотрим здесь лишь несколько общеупотребительных методов, чтобы на их примере показать широкое разнообразие приемов, которые можно успешно использовать для решения различных задач. 1.2.1. Использование полярных координат для кривых с осевой симметрией Для описания различных фигур на плоскости, образованных замкнутыми кривыми линиями, которым отчасти присуща осевая симметрия, довольно часто используется система полярных коор- координат, показанная на рис. 1.12, в которой координаты точки Р задаются радиусом г(=ОР) и углом 0(=/й/ХОр). ?\r.Q) г sin© rcos© X Zb Рис. 1.12. Рис. 1.13. Полярные координаты и декартовы координаты связаны соот- соотношениями A.25) Уравнение кривой в полярных координатах связывает г и 8. Если уравнение в полярных координатах имеет явный вид г»* = /¦(8), то *-г(в)сояв, у-г (9) sin8 {1-Л)
Аналитическая геометрия на плоскости 27 суть параметрические уравнения этой кривой. Касательная и нормаль для рассматриваемой кривой определяются из уравне- ний A.19) и A.20). Уравнения вида r = a + bcosnd, A.27 представляющие замкнутую кривую с п выступами, симметрично расположенными по окружности (рис. 1.13) позволяют описы- описывать в полярных координатах различные профили. Кривые тако- такого вида применяются не только для простых кулачков; на их 6(Г Сечение АА Сечение ВВ Сечение СС Сечение Ш 60°, 180», 300", профиль Рис. 1.14. основе можно проектировать поперечные сечения тел, у которых коэффициенты а и b меняются вдоль оси, перпендикулярной плоскости Оху. Так, например, все поперечные сечения обычной
28 Глава 1 бутылки из-под виски описываются уравнением г = а+ 6 cos 30 при соответствующих значениях коэффициентов а и b (рис. 1.14). Более подробно проектирование поперечных сечений рассматри- вается в гл. 8. Полярные координаты имеют целый ряд недостатков. 1) Отсутствие простой связи между системами полярных коор- координат с различными точками отсчета. 2) Описание касательных и нормалей в полярных координа- координатах осуществляется непросто, поэтому касательные и нор- нормали следует определять при помощи параметрических уравнений в декартовых координатах. 3) Полярный угол Э точки Р (х, у) находится только при по- помощи обратных тригонометрических функций. 1.2.2. Определение конических сечений, удовлетворяющих заданным условиям непрерывности и касания Лайминг A944) дал применение классических методов теории конических сечений к вопросу проектирования поперечных сече- сечений фюзеляжа самолета. Его метод основан на использовании сегментов конических сечений, удовлетворяющих условиям со- сопряжения и, возможно, касания в нескольких точках. Коническое сечение общего вида описывается уравнением вто- второго порядка ах% + 2hxy-f-by% -\- 2gx-\-2fy-\-c = О, причем вид этого сечения определяется коэффициентами а, Ь, с, /, g и h Для нахож- нахождения а, Ь, с, /, g и h можно было бы в принципе наложить пять независимых условий и решить соответствующие уравнения для от- отношений этих коэффициентов к одному из них. Так, если кривая про- проходит через точку (хи yj, коэффициенты удовлетворяют уравнению ах\ + 2hx1 у,. + Ьу\ + 2gXi + 2/и + с = 0, A.28) и если касательная в точке (хи ух) образует с осью Ох угол 8^ то (axi + hyt + g) cos 9i + (hxt + byx + f) sin 9X = 0. A.29) Наложив пять независимых условий подобного рода, мы получаем систему из пяти линейных уравнений для отношений a\b:c:f:g:h. Чтобы избавиться от необходимости решения этих уравнений', Лайминг пользуется следующими известными классическими при- приемами, демонстрирующими некоторые преимущества уравнений неявного вида. Прежде всего заметим, что если два конических сечения за- задаются уравнениями S1 (х, у) = 0 и 52 (х, у) = 0 (или для кратко- краткости S/=0 и S2 = 0), то уравнение / A-ад + А5, = 0 A.30)
Аналитическая геометрия на плоекрсти 29 удовлетворяется как для точек, принадлежащих 5^ = 0, так и для точек S2 — 0. Уравнение A.30) в этом случае (поскольку оно второго порядка) определяет еще одно коническое сечение, про- проходящее через точки пересечения кривых 5Х = 0 и S2 = 0, при любых значениях X (рис. 1.15). При варьировании величины X образуется семейство (или пучок) конических сечений, два из которых определяются уравнениями Sj = O (при Я = 0) и Sj = 0 (при X — 1). 14=0 /з=0 Рис. 1.16. Для определения величины параметра X в общем случае необ- необходимо задать еще одну точку (которая не является точкой пе- пересечения), лежащую на кривой A — Я) Sx + XS2 = 0. Если этой точкой является точка Pl (xlt уг), то Заметим далее, что уравнение (аг х + Ъх у + ct) (a2к + Ь2 у -f. + с2) = 0, или /х /2 = 0, является уравнением второго порядка, которому удовлетворяют все точки, лежащие на паре прямых /f = 0 и /2 = 0. Это уравнение фактически определяет вырожден- вырожденное коническое сечение, получаемое в результате рассечения ко- конуса плоскостью, проходящей через его вершину параллельно оси. Такую пару прямых можно использовать для определения невы- невырожденных конических сечений при помощи уравнения A.30). Итак, мы видим, что уравнение представляет семейство, или «пучок» конических сечений, прохо- проходящих через четыре точки пересечения двух пар прямых линий (/1( /2) и (ls, /4) (см. рис. 1.16). Задавая произвольную пятую точку, можно определить значение X. (См. пример 2 в конце этого раздела.) Используя этот метод, можно найти коническое сечение, име- имеющее две заданные касательные в двух точках и проходящее через третью заданную точку. Из рис. 1.16 видно, что по мере продвижения точки С к точке D хорда CD стремится к касатель- касательной (в точке D) к изображенному на рисунке коническому сече-
Глава 1 =о нию. Подобным же образом, если В сдвигается к А, хорда АВ стремится к касательной к этому сечению в точке А, Следова* тельно, если прямые /8 = 0 и /4 = 0 совпадают, то уравнение A— Ц1г1г + Wf=*0 A-32) представляет пучок конических сечений, проходящих через точки А и D, причем /, является касательной в точке А, а /, — каса- касательной в точке D (рис. 1.17). Выбор третьей точки F определяет пара- параметр X. Коническое сечение в данном слу- случае определяется четырьмя точками: двумя точками касания А и D, точ- точкой пересечения касательных Е и некоторой четвертой точкой F, так называемой опорной точкой. Если F выбрана внутри треугольника AED, коническое сечение всегда образует непрерывную кривую между точка- точками А и D, проходящую внутри тре- треугольника AED. Если F делит пополам прямую, соединяющую середины от- отрезков DE и АЕ, то коническое сечение является параболой, известной под названием пропорциональной кривой. Если F находится между этой пара- параболой и прямой AD, то мы получаем У Рис. 1.17. X Рис. *\. 18. Рис. 1.19. эллипс. Если же эта точка находится за пределами параболы, то мы получаем гиперболу. В предложенном Лаймингом методе проектирования попереч- поперечного сечения фюзеляжа самолета конфигурация каждого сечения
Аналитическая геометрия на плоскости 31 определяется пятью точками (рис. 1.18). Поскольку каждое се- сечение симметрично относительно вертикальной оси, мы должны проектировать только половину сечения, причем касательные в точках Е и А должны быть горизонтальными прямыми. Поскольку точка G является точкой максимальной ширины сечения, каса- касательная в С должна иметь вертикальное направление. Проекти- Проектируемое сечение состоит из двух конических сечений с общей касательной в точке С. Фюзеляж в целом описывается пятью кривыми —следами точек А, В, С, D и Е, которые эти точки оставляют при движении плоскости поперечного сечения вдоль оси г. Пример 1. Применяя метод Лайминга, можно обеспечить глад- гладкий переход от кругового к квадратному поперечному сечению, лежащему в другой плоскости. Пусть круговое сечение задается уравнением х% + уг —1=0, а квадратное сечение — парой прямых линий х— 1, у= 1 (рис. 1.19). Тогда конические сечения где Я- принимает значения между 0 и 1, дают гладкий переход между двумя заданными сечениями. Пример 2. Найдем коническое сечение, проходящее через точки @,0), A,0), A,1), @,1) и C/2, 1/2). Прежде всего нужно найти две такие пары прямых линий, для которых первые четыре заданные точки будут точками их пересечения. В наиболее простом случае та- кими парами будут lt — х — 0, 12 — х— 1 — 0 и /8=г# = 0, /4 = #—1=0, что и показа- показано на рис. 1.20. Следовательно, любое коническое сечение, проходящее через эти точки, описывается уравнением A —^Л,) х Хх(х-~l)-\-ty(y—~\) — 0 для некоторого значения к. Поскольку пятая TO4Kai имеет координаты C/2, 1/2), то Рис. 1.20. откуда X = 3/4. Таким образом, х(х— 1)/4 + Зу(у —1)/4 = 0. Следовательно, х2 + 3у2—х—Зг/ = 0 является уравнением иско- искомого конического сечения (в данном случае эллипса).
32 Глава 1 1.2.3. Огибающая семейства кривых При проектировании движущихся деталей станков, а также при определении свободного пространства, необходимого для движения деталей, довольно часто нужно бывает установить границу области, покрываемой контурами деталей во всех поло- положениях в процессе их движения (рис. 1.21). Искомая граничная кривая называется огибающей семейства кривых и вычисляется следующим образом. Рие. 1.21. Если кривая, ограничивающая движущуюся деталь в момент t, имеет уравнение f (x, у, t) — 0, то каждая точка искомой гранич- граничной кривой должна удовлетворять этому уравнению при некото- некотором значении t. Точка пересечения двух кривых f (х, у, t) — 0 и / {х, у, t + bt) = § при малом 8/ расположена близко от гранич- граничной кривой. В этой точке f (x, у, i + 6t)—f(x, у, t)/6t~0, по- поскольку оба члена в числителе равны кулю. Следовательно, рассматриваемая точка огибающей удовлетворяет этому уравне- уравнению в пределе при 8/ —+ 0. Чтобы найти огибающую, мы должны решить систему уравнений f 2L(x v л-о (L33) Пример. Рассмотрим прямые (рис. 1.22), определяемые уравнением Тогда dffdt=*x—# + 2?—1 = 0. Исключая t, мы получаем урав- н§ние" огибающей в неявном виде Если же исключить по отдельности сначала х, а затем у, мы получим параметрические уравнения
Аналитическая геометрия на плоскости 33 (В этом примере показан классический способ построения так называемой пропорциональной кривой для частного случая прямо- прямолинейных отрезков ОА и АВ.) Рис. 1.22. Если же, с другой стороны, кривые семейства f{x,y, v)=0 описываются параметрическими уравнениями х = х(и, v), у = у{и, v)t A.34) где и—параметр, определяющий положение точки на любой заданной кривой, a v—параметр, определяющий кривую семей- семейства, то f(x, у, v) = f(x(u, v), y(uy v), v) = F(u, v), откуда F (и, v) з= 0. Таким образом, ди 11 ду ди dv дх dv ду dv' dv для всех точек любой кривой данного семейства. Ролее того, для любой точки огибающей имеем соотношение df/dv = 0, откуда ди дх диду ' dv дх ' dv ду ~~ ' 2 А ФокС| М. Пратт
34 Глава 1 Рассматривая эти соотношения как уравнения для df/dx и dfldy, находим, что A.35) дх ду дх ф _ .-. ди dv dvdu ' если только df/dx и df/dy не обращаются одновременно в нуль. Если же df/dx = 0 < и df/dy = 0, то касательная к кривой / (х, у, v) — 0 не определена, а сама кривая должна иметь в этом случае заострение. Таким образом, чтобы получить параметри- параметрическое уравнение огибающей семейства гладких кривых, необхо- необходимо, используя A.35), исключить из уравнения A.34) либо и, либо v. Пример. Рассмотрим изображенное на рис. 1.23 семейство пря- прямых линий x = v + ucosv, у —и sin v. Рис. 1.23. Имеем (dx/du) (dy/dv)—(dx/dv) (dy/du)—u cos2a—A— и sin v) sin w=0. Следовательно, и (cos2 v + sin2 v)—sina = 0, откуда u = smv. Подставляя это значение и в уравнения, определяющие рас- рассматриваемое семейство, мы получаем в конечном итоге соотно- соотношения х~\ т.е. параметрические уравнения огибающей (рис. 1.23). 1.2.4. Натуральные уравнения кривой Если известна начальная точка кривой, то для определения этой кривой >ocTaTO4Ho знать, как изменяется величина угла г|?, образованного касательной к этой кривой в некоторой точке Р
Аналитическая геометрия на плоскости 35 и осью х, в зависимости от длины s дуги данной кривой от ее начала до точки касания (рис. 1.24). Соотношение между $ и i|? называется натуральным уравнением кривой. Многие натуральные уравнения имеют вид s = s(\|j), например, уравнение цепной линии s = a tg i|>. Кривизна вычисляется из натурального уравнения при помощи формулы и-35-, A.36) и, следовательно, в случае цепной линии, где -%J? ===== arc tg (s/a), мы имеем х = a/(s2- + a-)- Кривая может быть задана с помощью параметрических урав- уравнений, когда в качестве параметра берется длина дуги x = x(s) и y = y(s). Функции x(s) и y(s) связаны с г|) соотношениями iL A.37) у' с О J 0,11 @,01 ? Рис. 1.24. Рис. 1.25. Дифференцируя эти уравнения по s и подставляя х вместо dty/ds, dx/ds вместо cosij; и dy/ds .вместо sini|> получаем систему дифференциальных уравнений ( ' Решая эти уравнения второго порядка, можно определить x(s) и y(s) для любой заданной функции кривизны x(s). Соответст- Соответствующие численные методы были предложены Натбурном A972) и Адамсом A976). Поскольку мы свободны в выборе только четырех произвольных постоянных и длины кривой I, мы не 2*
36 Глава 1 можем задать положения и наклоны обоих концов кривой, так как для этого нужно иметь шесть условий. Этого следовало ожидать, так как изменение угла наклона кривой определяется площадью под кривой x = x(s): Пример. В качестве простого примера вычислим изображенную на рис. 1.25 дугу окружности, используя при этом постоянство кривизны рассматриваемой кривой, и найдем аналитическое реше- решение системы A.38). Измеряя дугу от точки 0 и двигаясь против часовой стрелки, получим и = +1. Поскольку к == I, то пло- площадь под кривой x = x(s) равна L, а поскольку изменение угла наклона равно я/2, то /, = я/2. Решая теперь уравнения при условиях л:@) = 0, #@) = 0, л;(я/2)=1, #(я/2) = 1, мы по- получаем л; =з sins, #=1—coss т. е., как и следовало ожидать, параметрические уравнения ок- окружности.
Глава 2. Геометрия в пространстве и векторная алгебра 2.1. Координаты в трехмерном пространстве Прежде всего напомним, что декартова система координат в двумерном пространстве определяется двумя перпендикулярными прямыми Ох и Оу, называемыми осями координат, а положение точки Р в плоскости Оху характеризуется двумя числами (х, у), координатами этой точки (рис. 2.1). В трехмерном пространстве добавляется третья ось Oz, кото- которая проходит через начало координат О перпендикулярно пло- плоскости Оху (рис. 2.2). На этом рисунке для наглядности точку О можно считать внутренним углом комнаты, стены которой обра- образованы плоскостями Ozx и Oyz, а пол—плоскостью Оху. Схема- Схематические фигурки человечков приведены для устранения неодно- неоднозначности, возникающей при графическом изображении трехмер- трехмерного пространства на плоскости. Положительным направлением оси Oz принято считать направление движения винта с правой резьбой, вращающегося вокруг оси z против часовой стрелки от оси Ох к оси Оу (рис. 2.3). В этом случае говорят, что оси правоориентированы. Во избежа- избежание визуальной неоднозначности ориентации осей были введены условные обозначения О и B) (рис. 2.4), указывающие направ- направление нормали к плоскости бумаги, причем первый значок соот- соответствует острию, а второй — хвостовому оперению стрелы, пока- показывающей нужное направление. , Чтобы найти декартовы координаты точки Р, нужно путь от О до Р разложить на три взаимно ортогональных движения, параллельные осям координат (рис. 2.6). Порядок осуществления движений не влияет на величину этих трех перемещений, а всего лишь изменяет порядок прохождения ребер прямоугольного парал- параллелепипеда, изображенного на рис. 2.6. Три перемещения ОМ, MN и NP, обозначенные через (х, у, г), и являются декартовыми координатами точки Р. Если/точка Р находится с другой стороны от плоскости Oyz, чем ось Ох, то перемещение ОМ считается отрицательным и координата х имеет отрицательное значение. Подобным образом отрицательными могут быть и координаты у и г. Перемещения (х, у, z), состав- составляющие путь от точки О до точки Р, являются абсолютными координатами точки Р в системе Охуг,
38 Глава 2 У у-ооь 0 Плоскость Оху X J х-ось г У • х Рис. 2.1. Рис. 2.3. ЛлоскасгтГОху |' -Z Рис. 2.2. О ее © тказыбает, что стрела быкодит из листа бумаги ® показывает, wo стрела Входит 6 лист бумаги Рис. 2.4. Рис 2.5, Рис. 2,§,
Геометрия в пространстве и векторная алгебра 39 С классическими методами исследования геометрии в трех- трехмерном пространстве читатель может ознакомиться в учебниках, названия которых перечислены в библиографии; нас же главным образом будут интересовать методы с применением векторной алгебры и чуть позже дифференциальной геометрии. 2.2. Введение в теорию векторов Возьмем две точки Р (xt, yt, zf) и Q (x2, у2, z2) и постараемся определить перемещение от Р к Q или наоборот. Чтобы было ясно, в каком направлении происходит движение, обозначим перемещение от точки Р к точке Q через PQ, а перемещение от Q к Р — через QP. Если PQ разложить на слагаемые, идущие параллельно осям координат, как мы делали это раньше, то перемещения PG, GH и HQ определят координаты xPq, yPQ, zPq точки Q относительно точки Р, т. е. так называемые относитель- относительные координаты (рис. 2.6). Из рис. 2.6 легко видеть, что Направленное перемещение PQ называется вектором относитель- относительного положения точки Q по отношению к точке Р и изображается (рис. 2.7) в виде стрелки, исходящей из точки Р и оканчиваю- оканчивающейся в точке Q. Подобным же образом ОР и OQ является век- Рис. 2.7. PO+OQ-PQ Рис. 2.8. торами абсолютного положения точек Р и Q в системе коорди- координат Охуг и графически также изображаются соответствующими стрелками. Теперь запишем 6
40 Глава 2 ___ это означает, что конечный результат перемещения ОР с после- последующим перемещением PQ соответствует одному перемещению OQ. Таким образом, мы дали неформальное определение понятий ра- равенства и сложения векторов. Формальное определение будет дано позднее. Аналогично правилам обычной арифметики, можно „вычесть" ОР из обеих частей* равенства, в результате чего мы получаем новое равенство PQ = OQ—OP. Но из рис. 2.8 видно, что Естественным обобщением обычной арифметики будет соглашение, по которому вектор —ОР считается тождественно равным век- вектору РО. Строгая формулировка этого соотношения будет также дана позднее. .Уравнение PQ = OQ—ОР тесно связано с уравнениями = х2—xlt которые были определены нами ранее. Чтобы эта связь была более наглядна, объединим все три уравнения в одно и запишем где Грд обозначает (#pq, yPQ, Zpq). a rf и г2 обо- обозначают (хи уи Zj) и (х2, у2, z2) соответственно. Введенные нами сокращенные обозначения соответствуют непосредственно PQ.OQ и ОР, что видно на рис. 2.9. Таким образом, обозначение' rPQ является компромиссом между обозначением вектора PQ (посред- (посредством указания конечной и начальной точек) и координатным обозначением (xPQ, yPQ, zPQ). Пользуясь обозначением вектора через конечную и начальную точки, удобно обозначить через A/2) ОР вектор перемещения вдоль ОР на половину длины ОР; в общем виде мы пишем ЯАВ, что означает перемещение в направлении АВ на расстояние, состав- составляющее долю % от АВ. Например, рассмотрим среднюю точку М
Геометрия в пространстве и векторная алгебра 41 отрезка PQ (рис. 2.10). Путь от точки О до точки М равен Отсюда 6m = op+^-pq = op+|Fq—op) = ~-Fp+6q), т. е. полусумме двух перемещений. Абсолютный радиус-вектор ОМ можно обозначить также через ¦ гм, где г ( Записывая предыдущее уравнение при помощи координат, мы получаем систему уравнений ( справедливость которых легко следует из подобия треугольников. Рассмотренный нами способ представления перемещений при помощи стрелок, указывающих величину и направление переме- перемещения, причем сложение перемещений изображается при помощи последовательно соединенных стрелок, так что острие одной стрелки упирается в хвостовое оперение последующей стрелки, может быть пригоден для представления некоторых других физи- физических величин. Рассмотрим, например, движение человека
42 Глааа 2 в идущем поезде. На рис. 2.11 изображены положения человека и поезда в моменты времени / и t-\-&t. Вектор 8г является век- вектором относительного положения и показывает перемещение поезда Поезд в /комет t Поезд В момент t+dt Рис. 2.11. за данный промежуток времени, а вектор 8г' показывает пере- перемещение человека в самом поезде за тот же промежуток времени, которое видит находящийся в поезде неподвижный относительно поезда наблюдатель. Вектор 8г" дает общее перемещение человека в поезде за рассматриваемый промежуток времени, которое уви- увидит неподвижный наблюдатель, находящийся за.пределами поезда, и оно подчиняется вышеупомянутому правилу сложения векторов. Итак, можно записать Разделив указанные выше векторы перемещений самого поезда, человека внутри поезда и суммарное перемещение человека в движущемся поезде на тот промежуток времени bt, за кото- который все эти перемещения совершаются, мы получаем соответст- соответственно среднюю скорость vcp самого поезда, среднюю скорость VcP перемещения человека внутри -поезда и суммарную среднюю ско- скорость v?p перемещения человека в движущемся поезде, т. е. можно записать, что " —K — ср ~~ 6< ~ 5/ Таким образом, сложение средних скоростей подчиняется тому же правилу, что и сложение векторов относительного переме- перемещения или радиус-векторов. Полагая Ы —«-0, можно видеть, что мгновенные скорости также подчиняются этому правилу. Рас- Рассуждая подобным образом, можно показать, что и ускорения отвечают этому правилу, а поскольку сила равна массе, умно- умноженной на ускорение, то и сложение сил выполняется в соот- соответствии с этим же правилом. Мы указали лишь несколько физических величин, которые подчиняются тем же законам сложения, что радиус-векторы. Каждая из этих величин называется- вектором. .А теперь мы да- дадим более точное и более формальное описание свойств векторов.
Геометрия б пространстве и векторная алгебра 43 2.3. Векторная алгебра I: определения и приложения в геометрии 2.3.1. Определения Определение вектора вообще сохраняет уже известные нам из предыдущего раздела свойства векторов относительного положения. Векторы суть объекты, имеющие величину и направление и под- подчиняющиеся перечисленным ниже законам. Они, как правило, обозначаются строчными буквами, жирным шрифтом, например а, Ь, се, или со; однако в машинописных и рукописных текстах буквы, обозначающие векторы, обычно подчеркиваются прямой чертой. Вектор а можно изобразить в виде направленного отрезка, длина которого в некотором масштабе соответствует величине вектора, а направление этого отрезка совпадает с направлением вектора а. Ориентацию вектора вдоль прямой указывает острие стрелки (рис. 2.12). Вектор, величина которого равна нулю, на- называется нулевым вектором и обозначается через 0. Нулевой вектор не имеет направления (ориентации). \ Рис. 2.12. Как мы указали выше, вектором можно считать только та- такую величину, которая подчиняется законам векторной алгебры; только наличия величины и направления недостаточно. Перечис- Перечислим эти законы: /. Равенство Два вектора считаются равными, если они имеют одинаковые величины, направления и ориентации. Такие векторы можно пред- представить в виде двух параллельных прямолинейных отрезков рав- равной длины при условии, что эти отрезки вычерчиваются в одном масштабе. Заметим, что положение отрезков в пространстве (или на листе бумаги) не влияет на равенство. 2. Сложение Пусть даны два вектора а и Ь; чтобы найти сумму а + Ь этих векторов, необходимо выполнить следующее. Нарисуем а и b в одном и том же масштабе таким образом, чтобы начало b совпадало с концом а. Тогда отрезок, соединяющий начало а с концом b (рис. 2.13), будет вектором а+Ь в том же масштабе, в котором представлены а и Ь.
44 Глааа 2 3. Противоположный вектор Вектор —а определим как вектор, величина и направление которого такие же, что и у вектора а, но ориентация которого противоположна ориентации вектора а (рис. 2.14). о+ь Рис. 2.13. Рис. 2.14. Рис 2.15 4. Вычитание По определению a — b = a + (-b). 5. Умножение на скаляр Вектором Яа, Я > 0, является вектор, ориентация и направ- направление которого те же, что и у вектора а, но величина которого в Я раз больше величины вектора а (рис. 2.15). Параметр Я — обычное число, или скаляр. 2.3.2. Следствия, вытекающие из приведенных выше определений Пусть a, b и с —векторы, аЯ, ц и и—скаляры. Тогда (i) (ii) (iii) (iv) (v) + (b+c) = (a+b) + e, (рис. 2.16), (рис. 2.17). Ь+а а+Ь Ма+Ы Рис. 2.16. Рис. 2.17. 2.3,3. Величина вектора. Единичный вектор Величина (или длина) вектора а обозначается через | а ^Поль- ^Пользуясь этим обозначением, можно видеть, что длина вектора и = A/|а|)а равна единице, т.е. и является единичным вектором.
Геометрия в пространстве и векторная алгебра 4S В этом случае говорят, что вектор и нормализован. Можно также записать а = |а|и. 2.3.4. Декартовы компоненты вектора Для заданной прямоугольной системы координат можно ввести единичные векторы, идущие вдоль положительных полуосей х, у и г, которые, как правило, обозначаются через i, j и к соот- соответственно. Определив эти векторы, можно при их помощи пред- представить любой вектор с помощью трех векторов, идущих вдоль осей координат (рис. 2.18). На чертеже эти векторы можно изоб- изобразить в виде трех ребер прямоу- прямоугольного параллелепипеда, диаго- диагональю которого является а (рис. 2.19). Три ребра изображенного на рисунке параллелепипеда образованы векторами а,, а3 и as. Если векторы ап а2 и а3 расположить в ином поряд- a=at+a2+<»3 Рис. 2Л9. ке, путь от Р до Q пройдет соответственно по иным ребрам парал- параллелепипеда, но результирующий вектор а не изменится. Таким образом, соотношение а = а, + а2 + а3 однозначно для любой за- заданной системы координат. Пусть йг — а^, a2 = a2j и а3 = а3к, где аъ а2 и а3—длины векторов а1( a2 и а3 соответственно. Отсюда Следовательно, {alt а2, а3)—декартовы компоненты вектора а для выбранной системы координат. Используя декартовы компо- компоненты, можно установить следующие факты: (i) a + b = (a1+bl)l+ta + bi)J + (a, + &,)k (рис. 2.20), (и) — а=— a,i—a3}— a3k, (Hi) te = Xa,\ + %a2i + kxa\i, (iv) |а|= |/а? + о| + йз (согласно теореме Пифагора, рис. 2.21).
46 Глава 2 Компоненты единичного вектора и дают косинусы углов, обра- образованных этим вектором и осями Ох, Оу и Ог, что мы сейчас и Рис. 2.20. Рис. 2.21. покажем. На рис. 2.22 видно, что u = PU/PU. Разлагая PU, мы получаем следующее выражение: PWi + PSj + PQk _ PW . PS PQ. PU DT T ' "Г DT T J ~T pu ' PU PU Следовательно, u = cosai + cosPj + cosvk, где a, p, у—углы, об- образованные вектором и и положительными полуосями Ох, Оу и 0z. Если эти косинусы ассоциированы с не- некоторой прямой, то они называются направ- направляющими косинусами этой прямой и обычно обозначаются через /, m и п. Следовательно, a=/i + mj + rtk. Любое множество чисел (%1, %т, Кп), пропорциональных (/, т, п), называ- называется множеством направляющих коэффициен- коэффициентов прямой. Таким образом, компоненты любого вектора, параллельного некоторой прямой, являются направляющими коэффи- коэффициентами этой прямой, и, если мы нормали- нормализуем вектор, мы получим направляющие ко- Рис. 2.22. синусы. 2,3.5. Векторные уравнения прямой 1) Прямая, проведенная через точку Ро вдоль единичного вектора ц (рис. 2.23), описывается следующим образом. Обозна- Обозначим вектор ОР0 через г0, а вектор ОР, соединяющий точку О с произвольной точкой Р, лежащей на рассматриваемой прямой,
Геометрия в пространстве и векторная алгебра 47 через г, Тогда P0P=r—г0) причем направление вектора Р0Р сов- совпадает с направлением и и, тем самым, г — г„ = Ли. Следователь- Следовательно, уравнение прямой имеет вид B.J) Расстояние от Ро до Р определяется соотношением | г—г01=| ки |=|Я|. Р. Рис. 2.23. Рис. 2.24. Различные точки на прямой отличаются друг от друга значением параметра К. Вектором, задающим направление прямой, может быть и не единичный вектор. Предположим, что таким вектором яв- является некоторый вектор а(г = г„4-ца); в этом случае параметру пропорционален, а не равен расстоянию от г0. 2) Если прямая проходит через две точки Р1 и Р2 (рис. 2.24), то для произвольной точки Р имеем уравнение г=ор=ор, + р^р=ор. Отсюда г = Г! + ц(г3—ri), и в конечном итоге B.2) 2.3.6. Примеры A) Прямая, проходящая через точку A, 1, 1) в направлении р р у ( , ) 1/1^3, 1/V^3). определяется соотношением Координаты точек этой прямой даются выражениями х1+^ г/1% г1 + или х=1+ц, у=\—ц, г=1+ц, где
48 Глава 2 B) Прямая, проходящая через точки A, 0, 2) и B, 1, 1), определяется соотношением г = A-о)A,0, 2)+ оB, 1, 1), или соотношениями #=1+у, г/ = и, г = 2—у. C) Определим, не будут ли рассмотренные выше прямые пе- пересекаться. Если эти прямые пересекаются, то должны удовлетворяться одновременно три уравнения: A) 1 + ц = 1+о, BI—ц = о,. CI+|1 = 2-о. Из уравнений A) и C) вытекает, что 1+у = 2—и, следователь- следовательно, у =1/2. Подставляя у =1/2 в уравнение A), мы получаем ц = 1/2. Эти значения удовлетворяют и уравнению B), следова- следовательно, две прямые пересекаются в точке C/2, 1/2, 3/2). 2.4. Векторная алгебра II: скалярные и векторные произведения 2.4.1. Введение Знание законов сложения, образования обратного вектора и умножения векторов на скаляр позволяет нам описывать положе- положение отдельных точек и прямых в пространстве,- определять сред- средние точки и относительные положения прямых, а также устанав- устанавливать, пересекаются рассматриваемые прямые или нет. Для того чтобы определить угол, образованный прямыми, установить наикратчайшее расстояние между скрещивающимися прямыми, получить уравнение плоскости и иайти проекцию точки на заданную плоскость, мы должны знать векторные эквиваленты тригонометрических соотношений. Оперируя с векторами, мы можем столкнуться с вопросом разложения некоторого вектора на его составляющие, которые могут- быть отличны от упомянутых ранее составляющих по осям х, у и г. Для начала рассмотрим этот вопрос, а полученные результаты попробуем применить к некоторым из перечисленных выше проблем. 2.4.7. Компонента вектора в заданном направлении; скалярное произведение Любой вектор можно однозначным образом разложить на два взаимно перпендикулярных вектора, если задано направление од- одного из них. Предположим, что один из двух взаимно перпенди- перпендикулярных векторов направлен вдоль вектора b (= АВ). Опустим
Геометрия в пространстве и векторная алгебра 49 перпендикуляр из конца вектора а на вектор b "(рис. 2.25) и обозначим его через с. Тогда а=ЛЬ + с, где bj_c (рис. 2.26). Пусть /_CAB = 9; тогда АВ = ACcos9 = |a|cos9, т. е. АВ яв- является компонентой АС вдоль вектора Ь. Чтобы найти угол 9, о <в В ль Рис. 2.25. Рис. 2.26. рассмотрим треугольник ACD и применим правило косинусов (рис. 2.27). Мы имеем соотношение CD2 = AC2+ADa—2 AC AD cos 9, или I a— b|2 = | a |2 -[-1 b |a—2|a| | b|cos0. Выражая эти модули через декартовы компоненты, мы получаем уравнение (а± — &J+ (ЬУ + (ЬГ A + 1 + г) + (Ы + Ы + ЫJ\\\Ъ\ После некоторых упрощений находим, что угол 9, образованный двумя векторами а и Ь, определяется соотношением Компонента вектора а вдоль вектора Ъ (или проекция а на Ь) определяется соотношением В частности, компонента вектора а вдоль единичного вектора ц определяется формулой а1и1 + а^щ -\- asu3. Скалярная величина ajbi + ajj^ + ajfg, называемая скалярным произведением векторов а и b (обозначается через а-b), довольно часто встречается в приложениях. Итак, a b = аА + аА + a3bs = | а| | b | cos9. B.5) координатная форма физический смысл В частности, а-Ь = 0, если а перпендикулярен b (либо если а = 0 или Ь=0). Для алгебры скалярных произведений можно
SO Глава 2 1 показать, что для произвольных векторов a, b и с и скаляра к имеют место следующие соотношения: (i) ab = ba, (И) (Hi) (iv) a-a = |a|». Пример. Если а и b — направляющие векторы двух прямых, то угол, образованный этими прямыми, определяется соотноше- соотношением °»e-wiV Если две рассматриваемые прямые соединяют rj = (O, 0, 1) с га = A, 0,-1) и г3 = B, 1,-1) с г,=A, —1, 0), то a = r3 —г*= = A, 0,-2) и Ь = г4—г3 = (—1, —2, 1), и, следовательно, - 1Х(-1) + 0Х(-2) + (-2)Х1 - 2.4.3. Векторное уравнение плоскости Вектор г, задающий положение произвольной точки Р (г), ле- лежащей в плоскости я, которая проходит через заданную точку Р0(г0) перпендикулярно вектору и, можно определить, исходя из того факта, что вектор г—г0 лежит в плоскости я, и, следова- следовательно, он- перпендикулярен вектору и (рис. 2.28). Таким образом, (г—г0) • u = PP^cos я/2 = 0, и уравнение плоскости имеет вид - r.u = ro-u = p, B.6) где р—расстояние от начала координат до плоскости я, вычис- вычисляемое по длине перпендикуляра, опущенного из начала коорди- координат на плоскость (рис. 2.28). Необходимо заметить следующее: поскольку и входит в обе части уравнения B.6), то вместо и, если это более удобно, можно брать любое его кратное. Напри- Например, плоскость, нормаль которой имеет то же направление, что и вектор A, 1, 0), и которая проходит через точку A, 0, 0), задается соотношением (х, у, г)-A, 1, 0) = A, 0, 0).A, 1, 0), или, что то же самое, соотношением х-\-у=1. (Заметим, что уравнение г-и = р будет всегда линейным уравнением от х, у и
Геометрия в пространстве и векторная алгебра 51 г.) Точка г, являющаяся ортогональной проекцией точки Рх (гх) на плоскость r-u = p (рис. 2.29), определяется соотношением i-j—r = NMa. N Рис. 2.28. Рис. 2.29. = Г! — (ON— OM)u = r1 + (r-u—rru)u, Отсюда и поэтому г = Г! + (д—rxu) и. Этот результат используется при определении Параллельной проекции трехмерных объектов. 2.4.4. Вектор, перпендикулярный двум заданным векторам а и Ь; векторное произведение Во многих геометрических задачах, а также в задачах по ме- механике приходится находить вектор, перпендикулярный двум заданным векторам. Например, нам нужно провести перпендику- перпендикуляр к двум скрещивающимся прямым. Если вектор v перпенди- перпендикулярен а и Ь, то v-a = 0, v-b = 0, и, следовательно, Решая эти уравнения для отношений vx: v2: vs, мы получаем Таким образом, вектор (аф3 — аф2, a3b1—аф9, a1b2—a2bj} пропор- пропорционален v и, следовательно, перпендикулярен а и Ь. Этот век-
52 Глава 2 тор обозначается через axb и называется векторным произведе- произведением векторов аи Ь. Итак, а х b = (аф3—афг) i + (a3bt — аф3) j -f {афй—а2Ь1) к, что можно также записать в виде детерминанта (см. приложение 2): j k i а2 а3 • B.7) [ Ь2 Ь3 Найдем модуль вектора axb. Из B.7) следует | а х b |2 = (a2b3—a3b2f + (аф\—аф3J + (аф2—a2b{f — — d$>\ -f alb\ + a\b\ + a\b\ + a\b\ + сф\— —2а2аяЬгЬч—2а3аффл —2<х^афф2 = = | а |21 b |2 — {афъ + a2b2 + аф3J = = |a|2|b|2 — | a |2 b|2cosae. Отсюда |axb |? = |a|2|b |2sin28. Поэтому |axb | = |a|| b ||sin6|= = j a 11 b | sin в, если 0<8<180°. Таким образом, axb—вектор, перпендикулярный а и b, длина которого равна |a||b|sin9. Предположим, что в выбранной нами системе координат а= =а\ (а > 0) и b=b]i-f-b2j. Тогда axb = i а Ьг j 0 К к 0 0 = @, 0, ab2). Откуда следует, что при Ь2 > 0 направление вектора axb сов- совпадает с направлением положительной полуоси г; если же Ь2 < 0 (рис. 2.30 и 2.31), направление вектора axb совпадает с на- направлением отрицательной полуоси г, причем вектор axb всегда направлен в сторону, противоположную наблюдателю, который видит вращение от а к b (для 0<8<180°) совершающимся по часовой стрелке. Именно в этом направлении движется винт с правосторонней резьбой, вращающийся по часовой стрелке. Резюмируем свойства векторного произведения. Пусть 9 — наименьший угол, образованный векторами а и Ь, 0 < 9 < 180°; тогда а х b = I а | [ b I sin в и,
Геометрия в пространстве и векторная алгебра 53 где и—единичный вектор, перпендикулярный плоскости, в которой лежат векторы а и Ь, направление которого совпадает с направ- направлением винта с правосторонней резьбой, вращающегося от а к b через угол 8 (рис. 2.32). у. (bf,b2,0) х (Ь„Ь2H) Рис. 2.30. Рис. 2.31 * Рис. 2.32. Следует заметить, что если а и b параллельные векторы, то, поскольку в этом случае 8 = 0, получаем axb=0. В част- частности, аха = 0. Но соотношение axb=--0 имеет место и в том случае, когда либо а, либо b равны нулю; следовательно, имея соотношение axb = 0, нельзя сделать вывод, что векторы а и b параллельны. Перечислим остальные алгебраические свойства векторного произведения. Пусть а, Ь, с—произвольные векторы, а X — какой-нибудь скаляр; тогда (i) bxa=—axb (поскольку изменение направления враще- вращения приводит к противоположной ориентации вектора); (и) (Ш) (iv) ixj = k, jxk = i, kxi = j. 2.4.5. Приложения векторного произведения Пример 1. Вектор площади треугольника (рис. 2.33). Площади треугольника можно придать векторный смысл, и тогда формула площади треугольника будет иметь следующий вид: 5двс = A/2) AC-BN = A/2) AC-AB sin9 = A/2) \axb\.
54 Глава 2 Вектор площади A = (l/2)axb часто оказывается полезным, см., например, разд. 4.2.14. Пример 2, Общий перпенди- перпендикуляр к двум скрещивающимся прямым. Чтобы найти длину общего перпендикуляра Q!Q2 к прямым PXRX и P2R2 (рис. 2.34), обозна- обозначим направления прямых Р^ и P2R2 через единичные векторы их Рис. 2.34, и u2, а радиус-векторы точек ?! и Р2—через ^ и г2 соответст- соответственно; пусть направляющим вектором перпендикуляра единичный вектор и (неизвестный). Тогда будет 3i = i-i + PiQiOi = r8 + P2Q2ua—QxQ2u. Умножив скалярно это уравнение на и, мы получаем Но, поскольку QXQ2 есть перпендикуляр к P,R, и P,R2, произ- произведения u,*u и u2-u равны нулю и, следовательно, Q,Q2=(r2—r^-u. Кроме того, поскольку и перпендикулярен ut и и2, он пропор- ' ционален произведению i^xu,;. Поскольку длина отрезка должна быть величиной положительной, то QiQ2 = 2.4.6. Смешанное произведение Можно объединить скалярное и векторное произведения в смешанном произведении - а • (Ь х с) = аЛ (Ь2с3 — bsc2) + a2 (Vi — Vs) + as Ф1С2 — b?t), которое удобно записать в виде определителя: а, а2 а3 a-(bxc)= bj b2 b3 **\  C/3
Геометрия в пространстве и векторная алгебра 55 B Можно показать на основании свойств определителя, что а • (Ь X с) = b • (сх а) = с- (а х Ь) = = —a-(cxb)= — Ь-(ахс)= —с-(Ьха). Таким образом, циклические перестановки символов не изменяют значения смешанного произведения. Можно также показать на основании B.8) или B.9), что смешанное произведение, содержащее два равных или параллель- параллельных вектора, равно нулю. Пример 1. Если а=A, —1, 0), Ь = B, 0, 1), а с = C, 2, 4), то 1 —1 0 ==_2_2(—4)+ 3(—1) = —2 + 8—3 = 3. а • (Ь х с) = 0 2 Пример 2. Уравнение плоскости, проходящей через концы радиус-векторов г0, гх и г2, можно получить, заметив, что г, — г„ и г„—г„ суть векторы, лежащие в этой плоскости. Тогда вектор (г* — г0) х (г2 — г0) нормален к ней, и можно воспользоваться уравнением B.6), заметив, что единичный вектор нормали и про- пропорционален (г, — |)Х(г2—г„), так что *' [(гх—г») X (г2—г0)] = г3 • (г,—г0) х (г2—г0). Наконец," заметим, что большинство членов правой части равно нулю, так как они содержат вектор г(| дважды. Таким образом, общая формула для точек, лежащих в ука- указанной плоскости, есть г-[(г, — г0) х (г2—г)] = г0 • (п х га). 2.4.7. Тройное векторное произведение Произведение а х (b x с) можно вычислить с помощью двух операций нахождения векторного произведения. Однако это можно сделать и проще, воспользовавшись тождеством ax(bxc) = (a-c)b—(a-b)c. B.10) Это тождество можно доказать покомпонентно. Докажем, например, что [ах (Ь х c)]j = a2 [(bx с)]3—а3 [(b x с)]2, где квадратные скобки с индексами обозначают компоненты соответствующих векторов. Итак, [а х (Ь X c)]f = а2 фхс2—b^t)—as (b3c, —b-^) = = (а2с2 + a3cs) Ьл — (аф9 + a3bs) ct = = (а-с)Ь1—(а-Ъ)с1.
56 Глава 2 Другие компоненты получаются перестановкой индексов. Так как перестановки не изменяют значений скалярных произведений, то искомый вектор дается уравнением B.10). Пример 1. Пересечение трех плоскостей. Три плоскости г-щ = р1, r-u2 = p2 и r-u3 = p3 пересекаются в точке если ux(uaxuj)фО. Это можно проверить, показав, что г удо- удовлетворяет уравнению каждой из этих плоскостей. , Пример 2. Окружность, проходящая через три данные точки (рис. 2.35). Пусть радиус-векторы точек Р, Q и R равны /Соот- Р(о. Плоскости, * разделяющие хорды пополам С Рис. 2.35. ветственно 0, а и Ь. Тогда центр окружности, проходящей через точки Р, Q и R, лежит в плоскости r-(axb) = 0. Он также лежит в плоскостях, перпендикулярных отрезкам PQ и PR и делящих эти отрезки пополам; следовательно, г-а = а2/2 и rb=*= =62/2. Используя результат предыдущего примера, получаем 2 —ab)b r~ 2|aXb|2 ~ 2|axb|2 Радиус R дается выражением 62(а2 — a-b) (r-a) + g2 F2 —a-b) (r-b) Отсюда a2b2(a 4 2 2a • 1 |axb| |a|| 2 2|aXb|2 b + 62) 2 b||a-b| |aXb| *
Глава 3. Преобразования координат 3.1. Введение Независимо от выбранного метода проектирования при помощи ЭВМ необходимо иметь в памяти ЭВМ численные данные, опи- описывающие проектируемый объект в некоторой системе (или систе- системах) координат. Если же отдельные части конструкции описы- описываются в различных системах координат, что нередко применяется на практике, поскольку такой способ описания имеет целый ряд преимуществ, то в памяти машины необходимо иметь данные, описывающие соотношения между выбранными системами коор- координат, с тем чтобы определить относительное положение и ори- ориентацию частей объекта. Эти соотношения, описывающие переход от одной системы координат к другой, называются преобразова- преобразованиями координат. В процессе проектирования на любой его стадии может воз- возникнуть необходимость изучения проекта, для чего выполняются чертежи проекции или поперечных сечений проектируемого объ- объекта. Для наглядности чертежи могут быть сделаны в перспек- перспективе. Все эти чертежи получаются преобразованием координат объекта в координаты чертежа. Перед запуском готового проекта в производство система координат, в которой данный проект был выполнен, должна быть соотнесена с системой координат станка; таким образом, и на этой стадии необходимо преобразование координат. И наконец, если проект обладает той или иной симметрией, то в памяти машины достаточно иметь данные, описывающие лишь часть проекта, поскольку чертеж полной конструкции на основании симметрии можно получить при помощи вращений, сдвигов и отражений. Пример такого случая рассматривается в гл. 8. Выполняемые в данном случае преобразования являются преобразованиями объектов и совершенно не влияют на систему координат, в которой данный предмет был изображен. Подробный анализ таких преобразований можно найти в ра- работах Робертса A963), A965) и работе Ауджа и Кунса A968). В работе Ньюмана и Спроулла A973) приводятся результаты всестороннего исследования графических методов, причем авторы дают исключительно подробное описание методов вычеркивания скрытой прямой; работа снабжена обширным списком литературы,
58 Глава 3 посвященной проблемам графической теории, программному обес- обеспечению и аппаратуре компьютерной графики. Далее мы рассмотрим некоторые из перечисленных выше преобразований объектов и покажем связь этих преобразований с соответствующими преобразованиями координат. 3.2. Преобразование объектов 3.2.1. Перенос Если объект переносится без поворота, то связь между радиус- вектором г' перемещенной точки и ее первоначальным положе- положением г устанавливается соотношением r' = r + t, C.1) где t—вектор перемещения каждой точки рассматриваемого объекта. С другой стороны, если таким же способом^-'тГе. без поворота, переносятся оси координат, когда объект фиксирован (рис. 3.1), то связь между вектором х' в системе координат 2,1 Рис. 3.1. О'х'у'г' и соответствующим вектором х в системе координат Охуг задается соотношением "^- х' = х—t. C.2) Здесь мы примем соглашение обозначать векторы через х и х', если речь идет о преобразовании координат; если же речь идет о преобразовании объектов, то векторы будем обозначать через г и г'. Таким образом, х' и х—различные представления одной и той же точки Р, в то время как г' обозначает новую точку, получаемую в результате преобразования точки г рассматрива-
Преобразования координат S9 емого объекта. Компоненты векторов г и х обозначим через х, у и г, а компоненты векторов г' и х' — через х', у' и г'. Итак, перенос осей координат эквивалентен равному переносу предмета (объекта) в противоположном направлении. 3.2.2. Поворот относительно оси Ог Если все точки некоторого объекта повернуть относительно оси Ог на угол 8, то мы должны рассматривать лишь отношения между координатами (х, у) исходных точек и координатами (х', у') точек, полученных в результате поворота, так как коор- координата г не изменится. Используя полярные координаты в плоскости Оху, мы видим, что полярные координаты (г, ф) некоторой точки в результате поворота приобретают вид (г, ф + 6). Далее х = г cos ф и у = г sin ф, следовательно, х' = г cos (ф+8) = г cos ф cos 8—г sin ф sin 8. Отсюда #'=-*cos8—у sin 8, у' = х sin 8 + у cos 6. * ' ' Поворот в двумерном пространстве можно представить в мат- матричной форме 'cosS — sineVx4 C.4) Если оси координат повернуть описанным выше способом, то рассматриваемый объект поворачивается на угол —8 и, таким образом, преобразование координат определяется соотношением (cos 8 sin 8\ . - - х=Вх. C.5) — sin8 cos8/ v ' Заметим', что А = ВГ, т. е. между преобразованием координат и предметным преобразованием установлена очень простая связь. Более подробно эта связь рассматривается в следующем разделе, где описывается вращение относительно произвольной оси, про- проходящей через начало координат. 3.2,3. Вращение вектора относительно произвольной оси, проходящей через начало координат Чтобы установить соотношение, определяющее преобразование координат, когда оси повернуты на угол 8 относительно прямой, проведенной • через начало координат, направляющим, вектором которой является вектор и, рассмотрим сначала, вращение неко- некоторого вектора г относительно этой прямой. Применяя получен- полученные результаты к направляющим векторам i, j и к, можно найти
60 Глава 3 новые направляющие векторы и вывести соотношение, описыва- описывающее соответствующее преобразование координат. Если вектор г повернут так, как показано на рис. 3.2, то можно видеть, что компонента ON, единичным вектором которой ич r-(r-u)u Рис. 3.3. является вектор и, остается без изменения, компонента же NX при повороте на угол 8 становится новой компонентой' NX'. Поскольку ON = (r-u), то NX=r—(г-u) u. На рис. 3.3 дана проекция в направлении вектора и, причем вектор uxr пред- представлен отрезком NP. Так как |г—(г• u) u ] == j г j sin ф = | и X г j, то NX = NX' = NP, как показано на рис. 3.3. Разложив NX' на NX и NP, мы получим NX' = cos8[r — (r.u)u] + sin6(uxr). Обозначая полученный в результате вращения вектор ОХ' через г', мы видим, что OX'=sON-f-NX', откуда г' = (г-u) u-{-cos8 [г — (г-и) u]-|-sin 8 (их г). Используя результаты разд. П1.8 приложения 1, представим этот результат в матричной форме г' ==> uurr-j- cos 8r—cos 8uurr 4- sin 8Ur, где Таким образом, г' = Ar, где A = uur + cos8(l— tiur) + sin8U. C.6)
Преобразования координат 61 Поэтому элементы матрицы А имеют следующий вид: — HJ) ы,«2A— cosO)-f -(- и3 sin 9 «3Hi(T—cos в)—" •—«„sin 9 ихиаA —cos 9) — «3sin9 U —cos 6) + «2 sin 9' cos 9A — ut) u2u3(l— c + «f sin 9 иги3 A — cos 9) — ux sin 9 «1 + cos 9A— г4) Очевидно, что при повороте вектора г на угол —9 преобразование определяется матрицей Аг, т. е. матрицей, транспонированной к А. Таким образом, в результате последовательно выполненных вращений г' = Аг и r" = AV вектор г должен возвратиться в ис- хэдное положение. Итак, мы имеем соотношение г" = АгАг, спра- справедливое для любого вектора г. Отсюда следует, что АГА = 1, т. е. матрица вращения А является ортогональной матрицей. Следует также отметить, что преобразование координат, соот- соответствующее вращению осей координат относительно рассмотрен- рассмотренной нами выше прямой, дается соотношением х' = Вх, C.7) где В^АГ, поскольку вращение координат эквивалентно обрат- обратному вращению точек вращаемого объекта. Новое направление оси Ох определяется направляющим вектором Г: а это первый столбец матрицы А и, следовательно, первая строка матрицы В = Аг. Подобным же образом можно показать, что все строки матрицы В являются векторами новых, полученных в ре- результате вращения, осей, представленных в исходной системе координат. 3.2.4. Примеры A) Матрица, соответствующая вращению относительно оси Ог, вычисляется при помощи уравнений C.6) и C.7). Итак,
62 Глава 3 Отсюда, согласно C.4), /cos0 —sin9 (Г А = ( sin9 cos 9 О \0 0 1, B) Найдем матрицу, определяющую поворот осей на 90° отно- относительно прямой, направляющим вектором которой является вектор i; заметим, что i' = i, j' = k, k' = —j. Тогда 3.2.5. Изменение масштаба и преобразование симметрии Изменение масштаба объекта вдоль отдельных осей некоторой системы координат, которое осуществляется при помощи мас- масштабных множителей (к, \i, v), определяется соотношением C.8) Легко видеть, что изменение масштаба можно представить в той же самой матричной форме г' = Аг, что и преобразование вра- вращения. - Применение масштабного множителя с отрицательным значе- значением приводит к отражению предмета относительно координат- координатной плоскости,-перпендикуляр кой соответствующей оси координат. Так, матрица /2 0 0N А-( 0 1 0 \0 0 -1 описывает увеличение масштаба в два раза в направлении оси х с одновременным отражением объекта относительно плоскости Оху. 3.2.6. Преобразование сдвига Представим, что пространство разделено на очень большое число тонких слоев, ограниченных параллельными плоскостями с общим вектором нормали и (рис. 3.4). На любой заданной ограничивающей плоскости координата точки Р .с радиус-векто- радиус-вектором г удовлетворяет уравнению ru = p, где р—длина перпен- перпендикуляра, восстановленного к рассматриваемой плоскости и про-
Преобразрваиия координат 63 ходящего через начало координат. Если все слои рассматриваемого пространства сдвинуть относительно заданной плоскости на не- некоторое расстояние, пропорциональное р, в одном направлении s, то новый радиус-вектор г' точки Р будет теперь даваться соотно- соотношением r' = r-f aps — r + a(u-r)s, где а—скалярная константа. Ис- Используя матричное представление, описанное в разд. П1.8 приложения 1, можно записать r' = [I-fasur]r. C.9) Следовательно, преобразование сдвига можно также представить В/, матричной форме, а именно г' = Аг. Например, если, u-j и S:=i, то преобразование сдвига о в двумерном пространстве будет определяться матрицей \0 1/ Рис. 3.4. В этом примере сдвиг происходит в плоскостях, параллель- параллельных плоскоски Охг, причем направление сдвига параллельно оси Ох. 3.2.7. Использование однородных координат Мы показали, что преобразование вращения, масштабное пре- преобразование, а также преобразования симметрии и сдвига описы- описываются уравнениями вида г' --= Аг. Однако каждое из этих пре- преобразований было определено относительно начала координат. Если же вращение предмета осуществляется относительно оси, не проходящей через начало координат, или предмет отражается относительно плоскости, которая не содержит начало координат, то указанные выше преобразования следует сочетать с перено- переносами, которые мы пока описали при помощи векторного уравне- уравнения вида г' = г -f t. Поэтому часто для удобства переносы вклю- включаются в матричную форму соотношения, описывающего простое преобразование. Для этого представим каждый радиус-вектор г в расширенном виде
64 Глава 3 Перенос r' = r-f t можно тогда представить в виде R'=TR, где a R'— расширенный вектор, соответствующий г'. Матричная форма преобразований г' = Аг, выраженная через расширенные векторы, примет следующий вид: R' = MR, где / °\ /А 0 \ МИ 01. C.11) \о о о [7/ Таким образом, М не что иное, как матрица А, окаймленная шестью нулями и одной единицей. Сложные преобразования можно теперь представить, исполь- используя произведения матриц; см. примеры разд. 3.2.8. Следует за- заметить, что порядок матриц в произведениях имеет существенное значение. Несмотря на то что расширенные векторы R полезны во мно- многих случаях, они тем не менее оказываются недостаточными, когда речь идет о матричном представлении проективных пре- преобразований. В разд. 3.4 мы покажем, что для описания проек- проективных преобразований достаточно ввести вектор вида P = wR, где да—скалярная величина, которая может изменяться от точки к точке. Более того, в разд. 5.2 показано, что, используя век- векторы такого типа, мы получаем наиболее простой способ пред- представления рациональных кривых и поверхностей. Элементы (xw, yw, zw, w) вектора Р являются однородными координатами точки {х, у, г). Значения х, у и г находятся из Р делением *=4;> у-тг «-й- (ЗЛ2> Таким образом, представление точки не будет однозначным, точно так же* как неявное уравнение прямой в двумерном про- пространстве ах-\-Ьу-\-с— 0 не имеет однозначно определенных коэф- коэффициентов а, Ъ, с. В каждом отдельном случае значение имеют только отношения. Любая система координат, в которой представление точки в трехмерном пространстве дается при помощи четырех коорди- координат (Plt P2, P3, Pt), причем величина Я,Р, кратная заданному вектору Р, представляет одну и ту же точку, называется систе- системой однородных координат. Вообще для n-мерного пространства число однородных координат должно быть ^\
Преобразования координат И Поскольку нас интересуют метрические свойства кривых и поверхностей, необходимо установить связь между однородными координатами Р и декартовыми координатами г. Для этой цели вполне подходят соотношения C.12). Однако для определения многих неметрических свойств геометрических фигур предвари- предварительно устанавливать связь между Р и г не требуется. Эти описа- описательные свойства составляют предмет исследования проективной геометрии, и более подробную информацию по этому вопросу читатель сможет найти в таких учебниках, как, например, учебник Семпла и Нибоуна A952). Кроме преимуществ, обусловленных унификацией описания преобразований координат, применение однородных координат дает возможность избежать многих ано- аномальных случаев, возникающих при работе с декартовыми коор- координатами, таких, например, как непересечение параллельных прямых, а также устраняет необходимость устанавливать разли- различие между центральными и нецентральными коническими сече- сечениями. В однородных координатах матрицы, определяющие переносы, принимают следующий вид: 'U О О О t, О О 0 h кО О О где (tlt t2, t3, tJ)T—однородное представление вектора переноса t. Преобразования вращения, масштабные преобразования и пре- преобразования симметрии можно представить, как и раньше, при помощи матрицы-,М, см. C.9), при условии, что w'— w. Однако, как будет показано в разд. 3.4, проективные преобразования требуют преобразования координаты w. Поэтому вообще следует допустить более общий вид матрицы C.11), с тем чтобы допус- допустить соотношение w' = kw и использовать матрицу вида C.14) -C.13) 0 0 в качестве эквивалента матрицы А при использовании однород- однородных координат. 3.2.8. Примеры Все приводимые ниже примеры демонстрируют использование векторов вида R в частном случае однородных координат, когда Wsal. 3 А. Фокс, М. Пратт
Глава 3 A) Найти преобразование, необходимое для выполнения пово- поворота предмета на 90° относительно некоторой оси, проходящей через точку A, 2, 0) параллельно оси Ог и имеющей одинаковую с этой осью ориентацию. Прежде всего выполним перенос тела на вектор (—1, —2, 0), с тем чтобы ось вращения проходила через начало координат. Теперь вращаем тело относительно оси г и, наконец, делаем пе- перенос тела на вектор A, 2, 0), в результате чего ось вращения занимает свое исходное положение. Таким образом, R' 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 —1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 Перенос оси вращения в исходное положение Вращение от- относительно оси г Перенос оси вращения в начало коор- координат Обратите внимание на порядок матриц: первое преобразование находится в правой части равенства. Матрицы, вообще говоря, не коммутируют. B) Найти преобразование, являющееся отражением предмета от плоскости х — 2. Прежде всего при помощи вектора (—2, 0, 0) выполним пере- перенос плоскости отражения П, с тем чтобы она проходила через начало координат. Теперь выполним отражение от плоскости # = 0, после чего при помощи вектора B, 0, 0) возвратим плоскость отражения П в плоскость х = 2. В результате получаем 1 0 0 0 0 1 0 0 0 0 I 0 Перенос П назад до совпадения С ПЛОСКО- ) стью х = 2 —1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 2 0 0 1 Отражение от плоскости Перенос П в начало координат 3.3. Плоские проекции трехмерных объектов Вычерчивание трехмерных объектов, независимо от того на бумаге ли это происходит или на экране дисплея/осуществляется при помощи двумерных проекций. В плоской проекции каждая точка предмета проецируется определенным образом на плоскость
Преобразования координат 67 проекции, и ее образ называется точкой проекции. Если линии проекции, соединяющие точки предмета с соответствующими точ- точками проекции, параллельны, то мы имеем плоскую параллельную проекцию, как показано на рис. 3.5. Если же линии проекции Точка проекции г' Точка г \ дитя предмета проекции Рис. 3.5. сходятся в одной общей точке Р, то получаемое изображение на- называется центральной проекцией, или перспективным изображе- изображением предмета (рис. 3.7). 3.3.1. Параллельные проекции В плоской параллельной проекции все точки предмета проеци- проецируются параллельно некоторому фиксированному направлению а на заданную плоскость проекции (рис. 3.5). Определим точку в плоскости проекции при помощи соответствующей плоской си- системы кЪординат. Для фиксации плоскости проекции и системы координат в ней мы должны, используя исходную трехмерную систему координат, .ввести три вектора г0, ut и и2, поместив на- начало плоской, системы координат в конец вектора г„ и направив ее оси по векторам иг и и2. Поскольку каждая точка предмета г проецируется параллельно и в ее образ г', то, как видно из рис. 3.5, г' = г—г'и при некотором значении г'. Если коорди- координатами образа точки в плоскости проекции являются (х', у'), то, как показано на рис. 3.6, г' = откуда (Заметим, что оси Ох'у'г' не обязательно ортогональны.) з* C.15)
68 Глава 3 Беря скалярное произведение уравнения C.15) на i^xu., и исключая тем самым х', у', мы получаем г'. Таким образом, >_(f—ro)-("iXu2) u-(Ulxu2) ' Точка предмета Рис. 3.6. Беря скалярные произведения этого же уравнения на u2Xu и щхи, мы получаем соответственно х' и у'. Итак, „>_ (г—ro)-(uaXu) U-(U,XU2) ' „'. (r-ro)-(uiXu) (о ,fi4 В большинстве случаев плоскость проекции расположена пер- перпендикулярно линиям проекции, т. е. t^UjXUj,, и указанные выше уравнения имеют более простой вид / = (r-ro)-u2, C.17) 2'=(г-г0).и3.%ч Для получения проекции заданного предмета нам не нужна ин- информация относительно г', но, располагая этой информацией, мы можем при необходимости восстановить, используя уравнение C.1M), любую точку заданного предмета. В матричном обозначении уравнения C.17) имеют следующий вид: П I __ 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 —*0 —Уо —2о 1 = ATR, C.18)
Преобразования координат 69 т. е. процесс проецирования эквивалентен сдвигу плоскости про- проекции и предмета до' тех пор, пока плоскость проекции не прой- пройдет через начало координат (матрица Т), с последующим враще- вращением их (матрица А) до тех пор, пока оси проекции не совпадут с осями Ох и Оу. Рассматриваемое преобразование можно также представить при помощи однородных координат, как это было описано в разд. 3.2.7. Таким образом, плоские параллельные проекции получаются при помощи эквивалентных преобразований объекта; чтобы вос- восстановить точку объекта, необходимо выполнить обратные преоб- преобразования. 3.3.2. Центральные проекции (перспективные изображения) j, В плоском перспективном изображении точка проекции г', со- соответствующая заданной точке -предмета г, коллинеарна с этой точкой предмета и с некоторой фиксированной точкой г„, которую иногда называют точкой наблюдения (рис. 3.7). Чочка предмета Точка наблюдения Плоскость проекции Рис. 3.7. Пусть, как и раньше, г0—начало системы координат плоскости проекции, a Uj и и2 —векторы осей координат. Тогда, как и прежде, г' =ro + x'u, -{-у'щ. Более того, поскольку точка проек- проекции лежит на прямой, соединяющей точки г и г„, то r' = z'r-f +A—z')rv для некоторого значения г. Таким образом: —г')г?. C.19)
70 Глава 3 Далее, умножив скалярно это уравнение на векторы и2х (г—rv), ихх(г—rv) и U?xu2, мы получаем соответственно х', у', г'. Итак, г = (г — Гу)[и2х(г0 — rv)] (T—Tv)- (г —rv)-[uiX(ru—rv)] C.20) = Со—rv)-(UiXu2) (г — rv)-(uiXua) ' Обычно начало координат получаемого изображения выбирается таким образом, чтобы прямая, соединяющая точку обзора с на- началом координат, была перпендикулярна плоскости проекции Рис. 3.8. (рис. 3.8). Если расстояние от точки обзора до плоскости проек- проекции равно d, то rv = г„ + du, где и = их х и2. Отсюда , _ _ d(r — ro)-ut (r-rc).u-d« ,_ d(t—го)-щ У (r-ro)u-d' C.21) 2 = . (г—ro)-u — d' Полагая w' — d—(r—ro)-n, уравнение C.21) можно предста- представить в однородных координатах при помощи векторов Р, Ро и^Р'. Таким образом, мы имеем d 0 0 0 d 0 0 0 0 0 0 d ИЛИ О 0 —1 | d/ \0 0 О Р' = VATP, C.22)
Преобразования координат 71 где V—матрица' проективного преобразования, а Т и А — соот- соответственно матрица переноса плоскости проекции (и объекта) в плоскость Оху и матрица вращения осей проекции, с тем чтобы они совпадали с осями Ох и Оу. Если плоскость проекции уже занимает это стандартное положение, то проективное преобразо- преобразование определяется уравнением Р' = VP, или *'=Й. У' = &. «' = Нг,- C-23) Поскольку значение г' требуется лишь в том случае, когда нужно восстановить точку Р проецируемого предмета, третью строку матрицы V можно заменить любым множеством чисел, но таких, для которых полученная матрица является невырож- невырожденной. Этот факт объясняет многообразие форм, встречающихся в, литературе. В разд. 5.2 будет показано, что уравнение прямой в одно- однородных координатах имеет вид Р = A—ы)Р0-т-ыР1, где Ро и Рх— векторы из однородных координат двух точек, лежащих на дан- данной прямой. Согласно уравнению C.22), проекция прямой имеет уравнение Р' = A — и) PJ + ыР,, где Po = VATPo и Pj = VATPX. Если пренебречь координатой г', то можно видеть, что это урав- уравнение является уравнением в однородных координатах прямой, проходящей через точки проекции, соответствующие Ро и Рг. Отсюда следует, что мы должны преобразовывать только верши- вершины чертежа, образованные прямыми линиями. 3.4. Косоугольные координаты Применение косоугольных координат удобно в тех случаях, когда базисные векторы, определяющие задачу, не ортогональны. На рис. 3.9 каждая точка плоскости, проходящей через точки А, В, О', определяется радиус-вектором r = aa+Pb с началом в О', где а = О'А, Ь = О'В при условии, что ахЬ=^0. Таким об- образом, О' можно считать началом косоугольной системы осей с координатами (а, Р). Длины отрезков О'А и О'В определяют масштабы вдоль этих осей. Так, например, средняя точка отрезка АВ имеет координаты A/2, 1/2). Уравнение прямой, проходящей через две заданные точки, представленное в декартовых координатах, можно обобщить на косоугольные координаты. Рассматривая подобныi треугольники, можно показать, что координаты точки Р (а, Р), лежащей на прямой, соединяющей точку Р, (at, рх) с точкой Р2(а2, ,%), удов- удовлетворяют соотношению (а-ах) 0,-00 -(P-PiKa.- ^)- C.24)
71 Глава 3 Например, прямая, соединяющая точки АA, 0) и В @, 1), имеет уравнение а + р—1=0. Абсолютные координаты точки Р (а, Р) определяются соотно- соотношением r = aa-f-Pb-f-c, где с = ОО'. Если О', А и В лежат в РЦЗ) Рис. 3.9. плоскости Оху, это уравнение можно представить в матричном виде следующим образом: О 0 1 C.25) где (ах, а2, 0), (Ьх, b2, 0) и (си с2, 0)—декартовы компоненты векторов a, b и с соответственно. Поскольку axb^O, детерми- детерминант матрицы преобразования отличен от нуля. Общее уравнение конического сечения A.5) можно предста- представить в следующем виде: fa h g\fx S=(x, у, 1) h b L )[ У \g f cj\l /ax a2 0 = («, P, 1) К b2 0 V, c2 1 = Aa2 + 2#сф + SP2 ± 2Ga + 2Fp+C = 0. Таким образом, произвольное коническое сечение описывается уравнением второй степени от а и р. Более того, условия вы- вырождения и знак дискриминанта ab—h2, который определяет, будет ли уравнение описывать эллипс, параболу или гиперболу, остаются теми же, что и для декартовых координат. Однако мет-
Преобразования координат 73 рические свойства расстояния и угла утрачены, поэтому для ок- окружности, например, не обязательно А —В. Расстояние между точками Рх (а1( 0Х) и Р2 (а2, 02) дается фор- формулой = (а2-ахJ а* + 2 (а,-^) (?,—&) a- b + ф,—РхJ b2. C.26) В трехмерном пространстве абсолютный радиус-вектор можно представить при помощи трех не компланарных векторов a, b и с и радиус-вектора г0, определяющего начало координат, т. е. r=rro-f-^a-f-nb-hc. Это уравнение можно представить в матрич- матричной форме К \ z i \ u- i / \ _ Детерминант этой матрицы задается величиной a-(bxc){ он не равен нулю, так как a, b и с не компланарны. Параметры Я, ц, и v являются косоугольными координатами по, отношению к осям с началом в г0 и с направляющими векторами a, b и с соответ- соответственно. _
Глава 4. Геометрия кривых и поверхностей в трехмерном пространстве 4.1. Параметрическое описание кривых и поверхностей 4.1.1. Параметрическое описание кривых Путь движущейся точки определяется при помощи значений радиус-вектора, которые он принимает в последовательные мо- моменты времени (рис. 4.1). Обозначим эту зависимость между г и t посредством функции r — r(t), т. е. мы фиксируем, что г яв- является функцией от времени. Выраженное в координатной форме, наше утверждение имеет следующий вид: x — x{t), у = =y{t),z = z{t). Путь, пройден- пройденный точкой, может быть любой закрученной кривой в простран- пространстве. Кривую в пространстве мож- можно задать не только функцией, зависящей от времени; она оп- определяется любой функциональ- функциональной зависимостью между г и одним скаляром, или параметрами, но наиболее наглядной является зависимость г отвремени. Пара- Параметр служит меткой точки на рассматриваемои^кривой, или просто ее координатой. Конечно, желательно, чтобы любое задан- заданное значение этого параметра соответствовало только одной точке на кривой; иными словами, г должна быть однозначной функцией от и. Поскольку параметр выбирается в значительной степени произвольно, кривая не имеет единственного параметрического представления. Например, уравнения asinuj (рис. 4.2), + TF^i (рис-4-3> Рис. 4.1. определяют окружность в плоскости Оху с центром О и радиу- радиусом а. Говорят, что функция г (и) непрерывна в точке и — и0, при- принадлежащей рассматриваемой кривой, если функции х = х(и),
Геометрия кривых и поверхностей в трехмерном пространстве 1$ у = у{и) и 2 = 2(«) в этой точке непрерывны; тогда говорят, что соответствующая кривая в пространстве также непрерывна в точке t/=1V 4.1.2. Примеры A) Уравнение прямой r = ro4-tai, полученное в разд. 3.3.5, уже имеет параметрический вид; а поскольку и—единичный век- вектор, то % равно расстоянию s, измеренному от конца вектора г0. Отсюда имеем r = r(s) = ro-f-su. B) Уравнение r = acos«i + asinMj + tok, где а и b — констан- константы, является уравнением спирали. Если эту кривую спроециро- спроецировать ортогонально на плоскость Оху, то полученная кривая г = г' (и) будет окружностью г' — acosui-\-as\nuj, причем точка проекции движется по окружности по часовой стрелке вокруг оси z, как показано на рис. 4.2. В то же время компонента Ьик указывает, что точка г (и) движется с постоянной скоростью Ъ вдоль оси г. Следовательно, дуга окружности, видимая на полу- полученной в плоскости Оху ортогональной проекции, фактически вытягивается в трехмерном пространстве в спираль. Закрученные кривые такого типа часто представляются более наглядными, когда они представлены при помощи ортогональных проекций, подобных показанной на рис. 4.2. 4.1.3. Параметрическое описание поверхностей Представим поддающуюся деформации кривую г —г (и), кото- которая перемещается в трехмерном пространстве (рис. 4.4). Тогда можно видеть, что кривые, являющиеся последовательными по- положениями движущейся кривой, образуют некоторую поверхность, каждая точка которой характеризуется временем t прохождения этой точки перемещающейся кривой и параметром ы, указывающим
76 Глава 4 положение данной точки на рассматриваемой кривой. Таким об- образом, уравнение г = г (и, f) определяет поверхность в трехмер- трехмерном пространстве. В данном случае не обязательно считать Рис. 4.4. t временем. Следовательно, любая вектор-функция г —г (и, v) от двух переменных может определять поверхность, координаты точек которой определяются функциями х = х (и, v), у — у (и, v), z — z(u, v). Желательно, чтобы и в этом случае поверхность оп- определялась однозначной функцией от и и и. Если и или v фиксированы, мы имеем один переменный пара- параметр и, следовательно, векторное уравнение r = r(uou) или г = =г (и, v0) описывает кривые, лежащие на поверхности г—г (и, v), причем щ и и0—константы, принадлежащие множеству значений параметров и и v, определяющему данную поверхность. Такие кривые называются параметрическими кривыми на поверхности; характер их зависит от способа выбора параметров. 4.1.4. Примеры A) Плоскость (рис. 4.5), проходящая через точку г0 и содер- содержащая прямые r = ro + unj и г = го + ^п2. гДе п* и П2—единичные векторы, определяется уравнением г = ro + «ii+ *>n2. Параметры и и v являются координатами точки в плоской, как правило, косоугольной системе координат, оси которой параллельны век- векторам пх и пг. Теперь, если положить п= . х 2. , то r-n = iyn, | fllX П2| так как n-n1 = n-n2 = 0 (разд. 3.4.6). Итак, мы снова получили уравнение плоскости, выведенное в разд. 3.4.3. B) Уравнение сферы с радиусом а и центром в точке О имеет вид
Геометрия кривых и поверхностей в трехмерном пространстве 77 Рис. 4.5. Рис. 4.6.
7$ Глава 4 г = OP = г (8, ф) = a sin 8 cos <pi -f- a sin 6 sin cpj + a cos 8k, где 8 и ф — углы, изображенные на рис. 4.6. На этом рисунке PN является перпендикуляром, опущенным из точки Р на пло- плоскость Оху. C) Уравнение конуса, вершина которого совпадает с началом координат, направление оси есть п, а угол между образующей и осью равен а, имеет вид г = ОР = г (/, 0) = /п + / tg а cos 8п'+ / tg а sin 8 (п х п'), где /, Э и п' изображены на рис. 4.7; п' — произвольный единич- единичный вектор, перпендикулярный п. 4.1.5. Преимущества параметрического описания кривых и поверхностей Существуют различные методы описания кривых и поверхно- поверхностей (вспомните, например, описание сферы в разд. 1.4.4 при помощи уравнения неявного вида), среди которых параметриче- параметрический метод имеет определенные преимущества перед другими, в особенности когда нужно получить графическое изображение на дисплее или управляющие ленты для металлорежущего станка. Например, для получения графического изображения кривой или поверхности вычисляются последовательно координаты их точек, отвечающие определенным значениям параметра. С другой стороны, если кривая определена уравнением неявного вида, нам приходится решать нелинейное уравнение для каждой точки (хотя этот процесс можно ускорить, если при помощи заранее вычисленных точек получить хорошую начальную аппроксимацию на каждом шаге). Более того, применение Параметрических мето- методов в значительной мере упрощает вычисление кривых, связан- связанных со смещением режущего инструмента и других подобных кривых в задачах числового управления. В пользу этого метода говорит и тот факт, что при его применении перенос или враще- вращение осей координат или предмета не требует модификации функ- функций от используемых параметров, а осуществляется, как правило, при помощи переноса или вращения векторов, определяющих за- заданную кривую. Эти преобразования координат уже рассматри- рассматривались нами в гл. 3. И наконец, позднее мы увидим, что параметрические методы пригодны для кусочно-гладкого описания кривых и поверхностей, как, например, в разработанной Безье системе проектирования UNISURF. Однако не следует пренебрегать и положительными свойствами уравнений неявного вида, о которых мы уже говорили в гл. 2. Некоторые уравнения неявного вида рассматриваются в разд. 4.3.
Геометрия кривых и поверхностей в трехмерном пространстве 79 4.1.6. Поверхности вращения Поверхность вращения получается в результате вращения плоской кривой вокруг оси симметрии. Предположим, что осью симметрии является ось Oz, поверхность вращения пересекается плоскостью Охг, в результате чего получим поперечное сечейие— плоскую кривую г = гс{и) — р{и) 14-2(и)к. На рис. 4.8 можно ви- видеть, что изображенная поверхность вращения имеет уравнение г = р (и) cos 9i 4- р (и) sin 9j 4- г (и) к. D.1) 4.1.7. Примеры Рис. 4.8. Рис. 4.9. A) Эллипсоид вращения (рис. 4.9). Эллиптическое поперечное сечение х2/а2 + z2/b2 = 1 задается уравнением гс = гс (и) — a sin их -\- Ъ cos uk, откуда г = г (и, 9) =: a sin и cos 9i 4- a sin и sin 0j 4- b cos ык. Если a — b, мы имеем сферу. B) Тор (рис. 4.10). В данном случае поперечное сечение яв- является окружностью (я — ЯJ 4-z2 =-а2 с радиусом а, центр кото- которой находится в точке Ri. Параметрическое уравнение, опреде-
80 Глава 4 ляющее эту окружность, имеет следующий вид: гс = тс (и) = (R + a cos и) \ + a sin ык, откуда уравнение тороидальной поверхности имеет вид г = г (и, 8) = (R + a cos и) cos 8i -f- (R -f- a cos u) sin 8j -f- a sin мк. Рис. 4.10. 4.2. Элементарная дифференциальная геометрия 4.2.1. Дифференцирование векторов Если вектор а является функцией от некоторой переменной t (т. е. его длина и направление являются функциями от f), то его компоненты являются функциями от t: Далее, если существуют производные от a, (t), a2(t) и a3(t), то производная от а определяется следующим соотношением: l = ^i + ^i + ^k. D.2) Производные высшего порядка определяются подобными соотно- соотношениями, например: ' dt3 llr dfl J "г" dt3 Из этого определения вытекает, что для любых вектор-функ- вектор-функций a(t) и b(l) r любой скалярной функции k(t) имеют место следующие соотношения: d ,_ , , , da . db . „ ~dl • <4-^ Ж- ^ i(a-b)-a.^ + ^.b, D.5) {(«Xb)-«4+|xb. D.6)
Геометрия кривых и поверхностей в трехмерном пространстве 81 Подобные определения можно дать и для частных производных вектор-функций от двух и более переменных. Пусть Ъ — Ъ(и, v); следовательно, 1 Ь = Ь1 (и, v)\ + b2 (и, v) ) + bs (и, v) к. Тогда, например, дЬ __ дЬх . db2 . . дЬа ¦ ди~ ди '+ ди ' "*" ди ' д*Ь _ д% ; дЧ2 дЧ3 к диди диди ' ди dv ' ' Зи dv Заметим, что если и(^)—единичный вектор, то u-u = l. Отсюда следует, что ^r(u-u) = 0 = 2u • -?, т.е. для любого единичного вектора и и-? = 0. D.7) Таким образом, и и du/dt—взаимно перпендикулярные векторы при условки, что и—единичный вектор. Пример. Пусть a = (*2 + l)i + C*—5)j + ^3k. Тогда 4.2.2. Теорема Тейлора для вектор-функций Значение функции f(t) в окрестности заданного значения t, для которого известны значение функции и ее производных, можно приближенно вычислить при помощи теоремы Тейлора; см., на- например, учебник Гулта и др. A973). Если функция f (t) и ее первые п производных существуют для всех точек f, лежащих в интервале t < f < t + 6*, и «-я производная непрерывна в этом же интервале и дифференцируема в интервале t <t <t-{-6t, то можно показать, что где О<0< 1. Символ /<г)@ это значение r-й производной функ- функции / в точке t. Значение f в соседней точке t -\- Ы можно аппро- аппроксимировать, используя значения / и ее производных в точке t. Если (л + 1)-я производная ограничена, мы можем говорить, что последний член „порядка п-\-\ по 6?"; так, например, если п = 2, то > @+^ г (*) + о
82 Глава 4 Поскольку для дифференцирования векторно-значной функции нужно вычислить производные ее скалярных компонент, то при- применение теоремы Тейлора к такой функции возможно всякий раз, как только все составляющие функции удовлетворяют условиям теоремы Тейлора. Таким образом, а (/ + Ы) = a (t) + Ш» @ + Ш а<" (t)+... <^ 1). D.8) 4.2.3. Касательная к кривой На рис. 4.11 изображена произвольная (возможно, закручен- закрученная) пространственная кривая. Вектор 6г —г(и + б«)—г (и) яв- является хордой PQ, которая соединяет точки Р и Q с параметрами Рис. 4.11. и и м + бм, лежащие на кривой г = г(и). Если би—>-0, то на- направление вектора бг/бм совпадает с направлением касательной в точке Р, если данная кривая имеет в этой точке вполне опре- определенную касательную. Предположим, что длина пути s является нашим параметром; тогда длина хорды | бг | и длина дуги 6s будут равны в пределе. Следовательно, dr/ds = lim 6r/6s = T есть век- 6s -> О тор единичной длины, направление которого совпадает с направ- направлением касательной к нашей кривой и который называется еди- единичным вектором касательной. Предположим для простоты, что все нужные производные функции r(s) (или г (и)) существуют. Заметим, что для произвольного параметра и производная dr/du пропорциональна Т и, следовательно, T = (dr/du)/\dr/du\ D.9) при условии, что Кроме того, поскольку T — drfds~(dr/du)f(dsldu), то ds/du = = | dr/du |. Обозначая дифференцирование по и точкой, мы имеем r = sT.
Геометрия кривых и поверхностей в трехмерном пространстве 83 Касательная к кривой г = г1(и) в точке и = и0—это прямая линия, проходящая через точку г*(и<,) и имеющая направление Tt (м„).. Уравнение этой касательной имеет вид 1 r = ri(M0) + Ui(M0), D.10) где Я,—расстояние между точкой г и точкой касания. Параметризацию кривой следует по возможности выбирать таким образом, чтобы в любой точке имело место соотношение йг/йифО. Это значит, что s должно возрастать строго монотонно с и, т. е. из неравенства и' > и должно вытекать неравенство s (ur) > s (м). В качестве простого примера; где дело обстоит иначе, рассмотрим сегмент где/@)-0, / Очевидно, что г—г, = /(и)(г< — г.), поэтому какова бы ни была функция / при любом значении и, точка Р (г) будет лежать на прямой, соединяющей точки Ро (г0) и Pi(rj). Следовательно, если /(и) имеет стационарные точки на сегменте 0 <; и ^ 1, то dr/du — (df/du) (rt—г„) может иметь нулевое значение. Например, если /(м) имеет вид, показанный на рис. 4.12, ft =1 о / / A u\ и I 1 и /4 U = 1 о Рис. 4.12. параметризация точек в интервале [ult м4] не однозначна. В этом примере кривая имеет вполне определенную касательную, и пороч- порочность ситуации является следствием плохой параметризации. В случаях когда кривая имеет заострение в некоторой точке и = и0, производная drjdu либо разрывна при и = и0, либо равна нулю (разд. 5.1.2). Пример 1. Рассмотрим окружность, представленную на рис. 4.13, где r = 8i + asin8j
84 Глава 4 В этом формулой случае единичный вектор касательной Т определяется or /1 аг I — a sin 6i -f- а со? 0j ~dQ j\de \~ |/"a2sin26 + a2cos2e или T = — sin 0i-f-cos 0j. Пример 2. Дана кривая r = r1(u) = =«3a-f-«2b+ »c + d, где а, Ь, с и d—¦ постоянные векторы. Найдем уравнение касательной к этой кривой в точке и = 0; имеем Рис. 4.13. du откуда drjdu — с при и = 0, и, следовательно, единичный вектор, касательный к кривой, определяется соотношением Т1 @) =р с/| с |. Кроме того, Tj @) = d, откуда следует, что касательная в точке и --- 0 задается уравнением г = d -f- ^c/| с |. 4.2.4. Главная нормаль и бинормаль к кривой Для двумерной кривой существует единственная нормаль. Для трехмерной же кривой нормальным вектором является любой вектор, перпендикулярный касательному вектору Т. Если Т — единичный вектор, то, согласно уравнению D.7), вектор t =? dT/du нормален к Т. Единичный вектор N, направление которого сов- совпадает с направлением Т, называется вектором главной нормали. Если параметром является длина s, мы имеем dT/ds = nti, где и—кривизна кривой. По условию % > 0, а ориентация f опре- определяется вектором N; следовательно, f = dT/du = sxN. Векторное произведение Т х ^определяет третий вектор, пер- перпендикулярный N и Т, который называется бинормальным векто- вектором В. Три вектора Т, N и В образуют правостороннюю тройку взаимно ортогональных единичных векторов, т.е. B = TxN, T = NxB и N = BxT. Плоскости, проходящие через заданную точку на кривой и содержащие векторы Т и N, N и В, В и Т, соответственно называются соприкасающейся плоскостью, нор- нормальной плоскостью испрямляющей плоскостью (рис. 4.1%). Соприкасающаяся окружность кривой в точке Р является пределом при 6и—>-0 окружности, проведенной через принадле- принадлежащие кривой точки N, Р и Q, отвечающие значениям параметра и — 6и, и и M-j-бм соответственно. Можно показать, что эта ок- окружность лежит в соприкасающейся плоскости, для чего следует
Геометрия кривых и поверхностей в треумерном пространстве 85 заметить, что плоскость, в которой лежит окружность, содержит как PQ, так и PN. Следовательно, нормаль к плоскости, в ко- Соприкасающаяся окружность (/жит В соприкасающейся плоскости) Рис. 4.14. торой лежит эта окружность, имеет направление векторного про- произведения PQxPN (рис. 4.15). Согласно теореме Тейлора, мы имеем —г(и)]х[г(и—бы)—г(м)] = [биг (и) + (Fи)а/2) г (и)] X [- биг (и) + (Fи)«/2) г (и)] + О (Fи)*) PQX N Рис. 4.15, Таким образом, нормаль к плоскости, в которой лежит соприка- соприкасающаяся окружность, имеет направление векторного произведе- произведения г хг. Но r = sT, следовательно, r=sT + sf. Поэтому fx f= s4 x t = s3xTx N = s3xB,
86 Глава 4 и вектор В является нормалью к соприкасающейся плоскости. Используя уравнение p = |a||b||a—b|/2|axb|, приведенное в .примере 2 разд. 3.4.7, можно найти радиус соприкасающейся окружности. Подставляя вместо а и b соответствующие выраже- выражения для PQ и PN и переходя к пределу при 6м—»-0, мы полу- получаем Р I г X г | &Х, * ' Следовательно, кривизна и является величиной, обратной радиусу соприкасающейся окружности; р называется радиусом кривизны кривой в точке Р. Пример 1. Вычислим кривизну и единичную нормаль для окруж- окружности, рассматриваемой в примере 1 разд. 4.2.3. Пусть, как и прежде, r = acos0i + asin9j, Т = —sinOi + cos9j. Следовательно, dJ/dB = — sin 9i + cos 0j и ISl' dT dl dQ 1 dT И ds ~dO ds~ a d%~ Отсюда dT ds 1 а Радиус N = — cos 9i —sin 9j. Пример 2. В случае спирали cos 6 . a 1 кривизны sin6 , a >' f единичный касательный вектор определяется соотношением Уравнение нормальной плоскости в точке, отвечающей значению параметра 9, имеет следующий вид: г-менме^-ме) D.П) или k — ха sin 0 + уа cos fl -f zb = — а% sin 9 cos 9 + a2 sin 9 cos 9 + b% 0. Откуда уравнение вида *asin0—i/a cos 9—2b + b29 = O является уравнением нормальной плоскости в точке, определяемой значением параметра 0.
Геометрия кривых и поверхностей в трехмерном пространстве 87 4.2.5. Кручение кривой; формула Френе—Серре В случаедлоской кривой соприкасающаяся плоскость является плоскостью этой кривой и бинормальный вектор В фиксирован. Таким образом, для плоской кривой dB/ds — Q. Если же мы имеем неплоскую кривую, вектор В уже не будет величиной постоянной, и, чтобы определить характер этой закрученной кривой, мы должны вычислить производную dB/ds. Заметим, что В-Т = 0, следовательно, (dB/ds)-T + B-(dT/ds)=---Q, откуда (dB/ds) • Т = 0, поскольку В • (dT/ds) = хВ • N = 0. Кроме того, поскольку В—единичный вектор, (dB/ds) ¦ В —0. Таким образом, вектор dB/ds перпендикулярен Т и В, и, следовательно, он кол- линеарен вектору N. Принято записывать dB/ds =— tN, где т называется кручением кривой. Поскольку dT/ds = xN, то Отсюда следует, что dN/ds — xB—иТ, т.е. кривая имеет положи- положительное кручение, если вывинчивание нормали к кривой из со- соприкасающейся плоскости происходит в сторону положительного направления вектора В. Итак, мы вывели все основные уравнения дифференциальной геометрии для пространственных .кривых. Ниже мы приводим эти уравнения, которые в совокупности известны как формулы Френе—Серре: Т DЛ2> D.13) — tR vT ds dN=TB—иТ, D.14) Ts *N- D-15) Если задана кривая г (и), то, как правило, гораздо удобнее брать производные относительно параметра и, а не s, и тогда мы имеем следующие уравнения, эквивалентные перечисленным выше: T==r/s, D.16) xB = (rxr)/ss, D.17) N = BxT, D.18) T = f-(fx'r)/sex2, D.19) где s = |r|. D.20)
88 Глава 4 Все эти формулы были получены нами ранее, за исключением формулы D.19), вывод которой аналогичен выводу формулы D.17), приведенному в разд. 4.2.4. 4.2.6. Примеры Пример 1. Применяя результаты примеров, рассматриваемых в разд. 4.2.3 и 4.2.4, находим, что для окружности r = acos9i + &0j = TX N = i j — sin9 cos 9 0 — cos9 —sin 9 0 _ i. Откуда следует, что db/ds = 0, что и следовало ожидать, так как плоская кривая не закручена. Пример 2. Для спирали r = acos9i + asin9j+60k ijg. = — a sin 9i + a cos 9j + fck, поэтому ds dc d% ~ \d% T = (— a sin 9i + a cos 9j + bk)jV~aF+F2. Таким образом, 1 dl — acos6i—asin6j , ds где к = dT ds Отсюда следует, что B = TxN =: И наконец, a*+b2 <® и N = — cos9i— sin9j. i j k — a sin 9 a-cos 9 b — cos 9 —sin 9 0 — 6cos9j-f ak db _ 1 tffi _ b cos 6i + b sin 6j ds ~ \Гаг+Ьг d& ~~ 2 + b2 Поскольку dB/ds = — tN, можно видеть, что кручение спирали, т. е. мера ее удаления от плоской кривой, задается величиной b(*+-b*)
Геометрия кривых и поверхностей в трехмерном пространстве 89 4.2.7. Дифференциальная геометрия поверхностей Для вычисления смещений фрезы в трехмерном пространстве, что бывает, например, необходимо при работе станков с числовым управлением, мы должны найти нормаль к тому участку поверх- поверхности, который подлежит обработке. Поскольку при обработке поверхности г = г(и, v) фреза следует, параметрическим кривым и = const и v = const, в некоторых приложениях большое значе- значение имеют! и касательные к этим кривым. Касательный вектор к параметрической кривой г = г(и, v0), где v0—константа, кратен вектору дг/ди. Подобным же образом касательный вектор к кривой г = г (м0, v) кратен вектору dr/dv. Плоскость, касательная к этим кривым в точке их пересечения г (н0, v0), содержит оба указанных выше касательных вектора, и,, следовательно, нормаль к рассматриваемой поверхности кратна векторному произведению этих векторов (рис. 4.16). Единичный нормальный вектор п определяется по формуле D.21) дих dvjll дих dv где производные вычисляются в точке и — и0, v = v0. Ориентация вектора п выбирается в соответствии с рассматриваемым случаем. Рис. 4.16. Исключительные точки, в которых частные производные не существуют или в которых (дг/ди) х (dr/dv) = О, соответствуют либо особым точкам параметризации, либо гребням или заострениям поверхности. Пример 1. Для параболоида вращения г = г (/, ф) = 2ai cos (pi sin
90 Глава 4 имеем i j . к 2acoscp 2asmy 2at —2at sin ф 2atcosq> 0 = —4a2/ cos q>i — 4a2/ sin фj + 4a2*k. Тогда ди Л dv и, следовательно, n = Шф, 1). Пример 2. Приложение к аналитическому выводу пути фрезы для фрезы со сферическим концом. Траектория фрезы Верхушка фреза U=U(j Рис. 4.17. Предположим, мы фрезеруем поверхность г = г(и, у) вдоль кривой и = н0 при помощи фрезы, имеющей сферический конец радиуса R (рис. 4.17). Тогда путь верхушки фрезы описывается соотношением ¦ г = гс(и0, v) = r(u0, v) + R(n — u), точка касания смещение фрезы где п—единичная нормаль в точке и — и0, а и—единичный век- вектор оси фрезы. Заметим," что ориентацию нормали к данной по- поверхности следует выбрать таким образом, чтобы вектор п был направлен наружу от обрабатываемой на станке детали.
Геометрия кривых и поверхностей в трехмерном пространстве 4.2.8. Метрические свойства поверхностей Теперь исследуем метрические свойства кривых, лежащих на поверхности, заданной параметрически! и найдем формулу для площади произвольной области этой поверхности. Кривую, лежащую на поверхности г = г (и, у), можно пред- представить при помощи параметрических уравнений u = u(t), v = v(t) или урквнением u = u(<), где u = [u(t), v(t)]T. В рассматривае- рассматриваемом случае г (и, и) обозначает произвольную точку на заданной поверхности, а г (t) — точку на кривой. Вектор г, касательный к этой кривой, мы получаем с помощью цепного правила г= ди dv где fdx ди ду ди дг Уди дх- dv ду dv дг dv) -(дт ~\~ди~ dy dy / dr dr \ du dv \ du dv) ' Длина этого касательного вектора определяется формулой s2 = | г |2 = ггг = uTArAti = uTC и, где /_dr__dr_ dr дт' du du du dv dr дт di dr dv du dv dv ¦ D.22) Матрица G является матрицей первой квадратичной формы поверхности. Приведенные ниже формулы показывают, насколько большое значение имеет эта матрица. Единичный вектор, касательный к кривой и = и (/), опреде- определяется соотношением Au/(urGuI/2. D.23) Длина сегмента кривой u = u(^), t0 < t < ti, находится по фор- формуле h h s=\^rdt =r\\r'\dt=\ (\iTG\i)V2 dt. D.24)
92 Глава 4 Если же две кривые u = u(^), u = u2(/), лежащие на одной поверхности, пересекаются под углом 6, то т т 11 (tfG't Таким образом, угдл м^ежду двумя этими кривыми дается фор- формулой D.25) cos6 == ¦. .т . И наконец, рассмотрим участок поверхности, заключенный между кривыми и = и0, и = ио + Ьи, v = v0 и у —уо4-6и (рис. 4.18). Аппроксимируя этот участок кривой поверхности плоским парал- параллелограммом, как показано на рисунке, мы находим приближен- приближенное значение его площади 6S ~ | (дг/ди) х (dr/dv) \ бнби. Заметим далее, что t — dv ди ~ftrf.f = IG |, D.26) где g(j—элементы матрицы первой квадратичной формы, a|G| = = detG. Таким образом, для того чтобы найти площадь некото- некоторого ограниченного участка поверхности, соответствующего обла- области R плоскости переменных и, у, нужно вычислить интеграл dudxh D.27)
Геометрия кривых и поверхностей в трехмерном пространстве 93 А теперь с помощью касательных к кривым н = const, u=const определим, при каком условии касательный вектор Т однозначно определен для всех кривых u = u(/). Из уравнения D.23) мы имеем ur0u > 0 для каждой точки заданной поверхности. Можно показать, что это утверждение справедливо, если и Ф О, gxx > О и |G|>0. Предположим, что производная дг/ди однозначно опре- деленач всюду; тогда из уравнения D.22) автоматически вытекает, что gn Ь> а, а поскольку | G | = | (dr/du) х (дг/dv) |а, то касательная к произвольной кривой u = u(/) однозначно определена во всех точках, для которых и^ьО и В4 точках, в которых выполняется только второе условие, каса- касательная плоскость и нормаль к заданной поверхности вполне определены (разд. 4.2.7), но кривая u = u(/) имеет излом и поэтому однозначная касательная Т в этих точках не существует. В тех точках, где выполняется только первое условие, поверхность не имеет однозначно определенной касательной плоскости либо потому, что она образует острый гребень в этом месте, либо потому, что линии и= const, v = const в этих точках параллельны.-Следова- параллельны.-Следовательно, невыполнение условия D.28) может быть либо следствием внутренних геометрических свойств заданной поверхности, либо результатом неудачной параметризации. 4.2.9. Кривизна поверхности Чтобы определить кривизну к произвольной пространственной кривой г (t), нужно дважды продифференцировать г(/). Таким образом,лкак показано в разд. 4.2.3 и 4.2.4, r = sT r = sT-(-s2kN. Для кривой u = ti (t), лежащей на поверхности г = г (и, у), имеем ' du2 ' ди ' dv Этот результат мы получаем, применяя цепное правило к выра- выражению для г, представленному в разд. 4.2.8. Компонента этого вектора вдоль нормали п к нашей поверхности определяется соот- соотношением dv2 ' поскольку п перпендикулярен Т, дг/ди и дг/dv. В матричной форме кривизна дается соотношением saxN-n=tirDti, D.29)
94 Глава 4 где Матрица D является матрицей второй фундаментальной формы поверхности. Поскольку для интересующих нас функций d*r/dudv= = d2r/dv ди, матрица D будет симметричной. м-utt) мное поперечное сечение (*й<0 в Р) Рис. 4,19. Нормальной кривизной х„ заданной поверхности в направле- направлении вектора Аи является кривизна кривой, по которой поверх- поверхность пересекается плоскостью, содержащей нормаль п к заданной поверхности и касательный вектор r = Au (рис. 4.19). Для такой кривой вектор п параллелен N, поэтому нормальная кривизна хп определяется соотношением urDu iiTG\i ' D.30) Согласно этому определению, кривизна к„ будет положительной, если кривая изгибается в сторону положительного направления нормали к заданной поверхности. Направления, для которых кп принимает максимальное и мини- минимальное значения при изменении вектора и, называются главными направлениями нормальной крщизны; из уравнения D.30) выте-
Геометрия кривых и поверхностей в трехмерном пространстве 95 кает, что главные направления имеют место, когда (D — xraG)u=0, или (dii — xngu) it + (dia — xngi2) v = 0, (d21—xng2i) и + (d22 — х„д22) v = 0. Исключая н и v, мы получаем соотношение f22-2g12d12)xn + |D| = 0, D.32) из которого можно найти максимальное и минимальное (или глав- главное) значения кривизны, подставив которые в D,31), мы получаем отношение u:v для главных направлений. Произведение главных значений кривизны известно как гаус- гауссова кривизна К поверхности. Согласно свойствам корней квад- квадратных уравнений, из D.32) следует, что /C = |D|/|G|. Главные направления кривизны можно также получить, исключая кп из D.31). В результате мы получаем квадратное уравнение V &i—Лий,) v'*=0, D.33) из которого можно вычислить отношения u:v для двух главных направлений. Заметим, что каждый член в D.33) содержит эле- элемент матрицы D; следовательно, чтобы упростить нашу работу, можно вместо единичной нормали использовать произведение (dr/du)x(dr/dv). Тогда главные кривизны находятся из любого уравнения D.31). Если главные кривизны не равны, то можно показать, что главные направления будут обязательно ортогональны. Пусть главные кривизны и направления обозначаются через хп1, кп%, и, и и2. Тогда, поскольку Du2 = Kn2Gu2, мы имеем U!rDU2 = Kn2ufGii2 и подобным же образом Производя транспозицию обеих частей последнего соотношения и используя симметрию матриц D и G, мы получаем Сравнивая первое и третье уравнения, получаем Поскольку кП1 Ф хпЪ, то ufGu2 = 0. Из уравнения D.25) следует, что главные направления ортогональны. Точки, в которых и„1 = и„2. называются омбилическими. Кри- Кривая, касательная к которой всегда совпадает с главным направ- направлением, называется линией кривизны.
96 Глава 4 ^_ 4.2.10. Преобразования параметров Если ввести новую параметризацию поверхности с помощью уравнений и' —и'(и, v) и v' =v' (и, v), мы получим новые про- производные дт дт ди . дт dv Ш ~~ ~дп W \ dv ~дп ' дт __ дт ди дт_ dv * ' ' dv' ди dv' 'до dv' ' откуда А' = ( * * )=: АР, V ди ди' ) ' где матрица называется матрицей Якоби преобразования. Из D.22) следует, что новая фундаментальная матрица задается соотношением G' = A'rA' = PrArAP = PrGP. D.35) Из уравнения D.35), согласно свойствам детерминантов, мы имеем |G'| = |P|2 |G |. Используя этот результат и уравнения D.34), можно показать, что, как и предполагалось, единичная нормаль п к заданной поверхности в результате преобразования не меняется. Подобным же образом, дифференцируя уравнения D.34) и исполь- используя инвариантность единичного нормального вектора п, можно показать, что преобразование второй фундаментальной матрицы дается соотношением D' = PrDP. D.36) Из уравнений D.35) и D.36) можно показать, что главные кри- кривизны и направления под действием преобразования не изменяются. И в заключение следует подчеркнуть, что единичный нормаль- нормальный вектор п и главные направления и кривизны не зависят от используемых параметров и, следовательно, являются геометри- геометрическими свойствами самой поверхности. Как мы увидим в гл. 7, где рассматривается построение сложных поверхностей, они должны быть непрерывны, если непрерывны касательная плоскость и кри- кривизна.
Геометрия кривых и поверхностей в трехмерном пространстве 97 4.2.11- Огибающая семейства пространственных кривых Если уравнение г = г(ы; а) представляет семейство пространст- пространственных кривых, причем и — параметр кривой, а ос— параметр семей- семейства, то может существовать некоторая кривая r = rf(a), каса- касательная к каждому члену семейства. Такая кривая г = ге(а) назы- называется огибающей семейства кривых; параметризация такой кривой в рассматриваемом здесь случае (рис. 4.20) производится с помощью параметра ос; каждой точке этой кривой мы приписываем то зна- значение параметра семейства, которое определяет кривую семейства, касающуюся огибающей в рассматриваемой точке. Рис. 4.20. Пусть кривая г — г (и, а) касается огибающей в точке и = м: (ос); тогда в этой точке r = r(«i(a), a) = re(a). Вектор касательной к огибающей пропорционален drjda = (дг/ди) (dujda) -f- (dr/da). Но вектор касательной к кривой г (и, а) пропорционален дг/ди и этот вектор должен быть параллелен вектору касательной к огибаю- огибающей в точке их соприкосновения; следовательно, в этой точке (dr/du)x(dre/da) = O, и поэтому — х — -О ди х да ~ и* D.37) 4 А. Фоке, М. Прагг
98 Глава 4 Решив это уравнение относительно а, выразив а через и или наоборот и подставив полученный результат вместо и или а в г (и, а), мы получим уравнение огибающей. Следует заметить, что не вся- всякое семейство кривых имеет огибающую. Например, семейства параметрических кривых на поверхности г = г(н, и) обычно удовле- удовлетворяет условию (дг/ди) х (dr/dv) Ф О, как было показано в разд. 4.2.7 и 4.2.8. Действительно, как следует из уравнения D.37), если семей- семейство г = г (и, а) порождает поверхность и огибающая существует, то ни в одной точке огибающей кривой не может существовать однозначно определенный нормальный вектор к поверхности. Это может быть результатом выбранной параметризации, так же как в случае семейства плоских кривых, но часто это является при- признаком наличия (искривленного) гребня на поверхности. 4.2.12. Линейчатые поверхности Линейчатой поверхностью называется поверхность, порожден- порожденная семейством прямых и которая поэтому описывается уравне- уравнением г = г(и, иНго(и) + ип(н), D.38) где го(ы)—заданная точка на прямой с параметром и, а п(н) — направляющий вектор этой прямой. Параметр v дает расстояние между точками г (и, и) и г0 (и). Линейчатая поверхность, образую- образующие которой соединяют соответствующие точки двух пространст- пространственных кривых г = го(ы) и г = Г](ы), может быть представлена в альтернативном виде г = г (ы, v) = A —у) г0 (и) + ич (и). D.39) В обоих случаях кривые г = г„ (и) и г = i"i (и) называются направ- направляющими, а прямые, соединяющие соответствующие точки направ- направляющих, называются образующими линейчатой поверхности. 4,2.13, Развертывающиеся поверхности Развертывающейся поверхностью называется Поверхность, кото* рую, не растягивая, можно развернуть в плоскость. Предположим, что заданная поверхность аппроксимируется многократно перегнутым плоским листом (рис. 4.21), причем смеж- смежные линии сгибов либо параллельны, либо пересекаются в неко- некоторой точке, лежащей за пределами этого листа. Если неограни- неограниченно увеличивать число сгибов, мы получим гладкую разверты- развертывающуюся поверхность. Поскольку линии сгибов образуют непре- непрерывное семейство, поверхность будет линейчатой. Рассмотрим сначала случай, когда смежные линии сгибов пересекаются. Пусть
Геометрия кривых и поверхностей в трехмерном пространстве 99 эти прямые имеют уравнения г = го(и) + уп(ы) и г = го(и + ) + -\-wn(u + 8u); используя результаты, полученные в примере 2 разд. 3.4.5, можно установить, что эти прямые пересекаются, когда н)—го(и)]-[п(ы)хп Беря предел при 8и —>¦ 0, мы находим, что линейчатая поверх- поверхность г = г0 (u)-\-vn (и) будет развертывающейся только тогда, когда fo-(nxn) = 0. D.40) Подстановкой в уравнение D.29) можно показать, что, когда выполняется условие D.40), | D ], а следовательно, и гауссова Рис. 4.21. кривизна К обращаются в нуль. И наоборот, можно показать, что условие К = 0 является достаточным условием для того, чтобы поверхность была развертывающейся. Из уравнения D.37) и урав- уравнения [г0(ы) + оп(и)]хп(и)=»0 D.41) можно найти уравнение огибающей образующих. Для того чтобы решение уравнения D.41) существовало, необходимо, чтобы векторы r0, n и п были компланарны; из уравнения D.40) видно, что это условие удовлетворяется. Положив N=nxn и считая, что N=^0, находим из уравне- уравнения D.41), что u=N-(roxn)/ATa. Теперь ясно, что заданная поверхность образована семейством прямых, огибающая которых является кривой D.42) Поскольку D.40) можно удовлетворить, беря в качестве п(н) единичный касательный вектор То к кривой г = го(н), то, следо- 4*
100 Глава 4 вательно, поверхность, образуемая касательными к любой про- пространственной кривой (называемая конволютой этой кривой), будет развертывающейся. Таким образом, произвольная развер- развертывающаяся поверхность описывается уравнением вида г«г„(ы) + ХТ0(ы). D.43) Уравнение D.40) удовлетворяется при г„=0 или когда N = 0. В первом случае г0—-величина постоянная. Следовательно, все образующие проходят через точку г0, т. е. поверхность является конусом, вершина которого находится в точке г„. Во втором слу- случае п = Хп, но так как п—единичный вектор, то п-п=0, и, следовательно, % = 0, а поэтому п — постоянный вектор. В этом случае уравнение D.40) удовлетворяется для произвольных г0 (и), а сама поверхность является цилиндром. Применяя уравнение D.40) к линейчатой поверхности D.39), мы получаем, что эта поверхность будет развертывающейся тогда, когда (г,-г1)-(г,Хг1)=0. D.44) Считая параметризацию кривой г = г0 (и) фиксиро- фиксированной, параметризацию второй кривой можно выб- выбрать таким образом, чтобы это условие удовлетворя- удовлетворялось. Параметр и опреде- определяет точку на кривой г = rt (и), в которой пло- плоскость, касательная к кри- кривой г = го(м) при значении параметра и, будет каса- касательной К КРИВОЙ Г = Ti (U) (рис. 4.22). Таким спосо- способом можно построить мно- множество касательных пло- плоскостей, образующих раз- развертывающуюся поверх- поверхность, содержащую две заданные кривые. Алгоритмы вычисления плоских разверток таких поверхностей даны в гл. 9. =r,iu) Касательная плоскость ro|u) Рис. 4.22. 4.2.14. Длины дуг, площади и объемы в параметрическом случае Чтобы найти такие величины, которые выражаются с помощью интегралов, например длины дуг, площади, объемы, мы сначала аппроксимируем эти кривые последовательностями ломаных,
Геометрия кривых и поверхностей в трехмерном пространстве 101 а поверхности аппроксимируем другой поверхностью, составлен- составленной из множества кусочков плоскости. Если эти элементы доста- достаточно малы, то суммируя их, мы получаем адекватную аппрокси- аппроксимацию отыскиваемых интегралов. В случае кривой г==,г(и) используемый нами прямолинейный элемент является хордой бг = г (и + би) —г (и), которая в свою очередь аппроксимируется вектором гби, где бы—малая величина. Длина используемого нами элемента приблизительно равна sбы, и, следовательно, длина L дуги сегмента и„ < и < их будет опре- определяться соотношением = \j sdu = J \r(u)\du, D.46) где суммирование по вышеуказанным элементам заменено интег- интегрированием. Если мы имеем плоскую кривую, плоскость которой содержит начало координат, то, суммируя площади треугольников, опираю- опирающихся на элементы бг, можно вычислить площадь, ограничен- ограниченную этой кривой. Определение вектор-площади треугольника будет дано в разд. 4.3.5. На рис. 4.23 показано, что вектор- площадь треугольника OPQ, стянутого элементом PQ, прибли- приблизительно, равна 1/2г (и) х г (и) би, откуда следует, что общая век- вектор-площадь А, стянутая сег- сегментом «j < и < u-i, определяет- определяется соотношением r(u)xr(u)du. D.46) Рис. 4,23. Если заданная кривая лежит в плоскости Оху, это уравнение сводится к уравнению для скалярной нлощади A~±j§(xy—xy)dul D.47) «о причем положительный знак эта скалярная площадь имеет в том случае, если кривая проходится против часовой стрелки. Другие площади участков плоскости, ограниченных параметри- параметрическими кривыми, вычисляются подобным образом. Например, центр тяжести элементарного треугольника OPQ находится при-
102 Глава 4 близительно в точке 2/Зг (и); отсюда следует, что центр тяжести г общей площади, стянутой этим криволинейным сегментом, опре- определяется соотношением Интеграл, определяющий площадь, значительно проще, чем остальные два интеграла, рассмотренные выше, поскольку он не содержит квадратных корней; даже для кубических алгебраи- алгебраических функций вычисление длины дуги влечет за собой числен- численное интегрирование. Рассмотрим теперь интегралы, связанные с поверхностью г = г(м, v). Соответствующий элемент для аппроксимации поверх- поверхности образован двумя треугольниками ABC и BCD (рис. 4.24). C(u,v+6v) }(U+6u,v+6v) /X \\ /7/^ A(u,vb Hu,V) Рис. 4.24. При больших бы и bv эти треугольники не компланарны. Если же образующая мала, то вектор-площадь каждого из этих треу- треугольников равна l/2(dr/duxdr/dv)&u&v. Следовательно, общая вектор-площадь элемента ABCD приблизительно равна (дг/дих X дг/dv) 8и би. В результате мы получаем уравнение D.27) разд. 4.2.8 для площади ограниченного участка поверхности. Таким образом, вычисление площадей ограниченных участков поверхности (кроме случая наипростейших поверхностей) связано с извлечением квадратных корней и невозможностью вычисления квадратур аналитически, а следовательно, связано с численным интегрированием.
Геометрия кривых и поверхностей в трехмерном пространстве 103 Поскольку объем пирамиды равен одной трети площади осно- основания, умноженной на высоту, то объем тела, вершина которого находится в начале координат О, а основанием служит участок поверхности ABCD, равен 1/Зг- (-^?- X -gM 8u8v и, следовательно, общий объем V тела, в основании которого лежит область R параметрической плоскости (и, v), приблизительно равен ¦*• D.48) 4.3. Неявные уравнения для поверхностей и кривых в трехмерном пространстве 4.3.1. Неявное уравнение поверхности Уравнение / (х, у, г) = 0 в общем случае описывает поверх- поверхность в трехмерном пространстве примерно так же, как уравне- уравнение / (х, у) = 0 описывает плоскую кривую. Как мы увидим в следующем разделе, если поверхность имеет однозначно опре- определенную нормаль в точке (х, у, г), то функция / (х, у, г) будет непрерывной. В этом случае величину функции / можно исполь- использовать как меру близости к заданной поверхности. Простыми примерами уравнений такой поверхности являются плоскость, ax + by-\-cz4-d = 0 (см. разд. 3.4.3) и сфера х% а а 0 + Квадратичное уравнение общего вида ах* + by2+сг% 4- 2hxy 4- 2gzx 4- 2fyz 4- 2ux 4- 2vy 4- 2wz 4- d =« 0 представляет поверхности второго порядка общего вида, к кото- которым относятся сферы, цилиндры, конусы, эллипсоиды, парабо- параболоиды и гиперболоиды. Полное исследование этих простых поверхностей можно найти в книгах, посвященных вопросам классической ^аналитической геометрии трехмерного пространства, например, в книге Соммервилля A934). Как и в случае конических сечений, для однозначного пред- представления любой поверхности второго порядка уравнением неяв- неявного вида в каждом отдельном случае это уравнение должно быть определенным образом пронормировано. 4,3.2. Вектор, нормальный к поверхности / (х, у, г) = 0 Чтобы получить нормальный вектор, заметим, что этот вектор перпендикулярен любой кривой г = г (s), лежащей на рассматри- рассматриваемой поверхности, следовательно, нормальный вектор перпен-
104 Глава 4 дикулярен касательному вектору Т = dr/ds для любой такой кри- кривой (рис. 4.25). Кроме того, во всех точках кривых, лежащих на данной поверхности, / =;0 и поэтому на этих кривых df/ds — O. Произвольная кривая г»гE), лежащая на Рис. 4.25, Дифференцируя функцию от трех переменных при помощи цеп- цепного правила, получаем df du . df dz Ж" дх ~Ш ' ~§у d$ ' ~5г~ ds или Таким образом, вектор-градиент -^ i +y- i+17 k> который обычно обозначается через v/, перпендикулярен вектору dr/ds для любой кривой, принадлежащей поверхности, которая прохо- проходит через точку, где вычисляется V/. Отсюда следует, что еди- единичный нормальный вектор к поверхности определяется по фор- формуле n = v//|V/|- Поэтому, для того чтобы поверхность не имела острых выступов или складок, все три частные производные должны быть непрерывны. Сингулярные точки могут быть также там, где v/=0. Пример. Норма ль к эллипсоиду х2 + 2 г/2 + 2za = 6 в точке A, — 1, 1) находится следующим образом. Из соотношения f (х, у, г) = jcgf 22-f 2za—6 мы получаем Отсюда в точке A, —1, 1)
Геометрия кривых и поверхностей в трехмерном пространстве 105 и, следовательно, |v/|=<6. И наконец, единичная нормаль в этой точке будет иметь вид n=(i-2j + 2k)/3. 4.3.3. Уравнения пространственной кривой Кривую в трехмерном пространстве можно рассматривать как линию пересечения двух поверхностей (рис. 4.26) и, следовательно, ее можно описать системой уравнений fi(x, у, г) = 0, Как и в случае двумерного пространства, чтобы определить точки на заданной кривой, мы должны решить эту систему уравнений неявного вида. Если уравнения нелинейные, то для их решения, как правило, применяются методы численного анализа (это тема гл. 9). 4.3.4. Касательный вектор к пространственной кривой Мы выяснили, что касательный вектор к любой кривой, при- принадлежащей поверхности / (х, у, г) =¦- 0, перпендикулярен векто- вектору vf. Поскольку пространственная кривая, рассматриваемая в разд. 4.3.3, принадлежит сразу двум поверхностям, уравнения которых /, {х, у, г)==0 и /8(х, у, г) ==0, то ее касательный век-
10* Глава 4 тор Т нормален одновременно вектору V/j и вектору V/а (рис 4.26). Поэтому т IV/iXV/,1 ' Заметим, что когда кривая задается уравнением неявного вида, ориентация вектора Т определена не однозначно. Нормали и кри- кривизну пространственной кривой можно также находить, рассма- рассматривая производные более высокого порядка; см., например, руководство Уиллмора A958). 4.3.5. Определения поверхности при помощи языка APT Хотя в последнее время в язык APT, предназначенный для программирования станков с числовым управлением, были введены средства параметрического определения поверхностей, применение языка APT, как правило, базируется на неявных уравнениях классических поверхностей, таких, как плоскости, цилиндры и сферы. Несмотря на большое разнообразие способов образования поверхностей, кодирование последних в памяти ЭВМ осуще- осуществляется при помощи сравнительно небольшого набора канони- канонических типов поверхностей. Ниже мы перечисляем эти канони- канонические типы поверхностей, объясняя при этом, в каких случаях и как они используются. 1) Плоскость Ax-\~By~\-Cz—D = 0 (обратите внимание на знак при D) кодируется четырьмя коэффициентами (А, В, С, D), где Л2 + В2 + С2=1. Прямая в двумерном пространстве кодируется как плоскость при условии, что С = 0. 2) Сфера (х—Х)* + (у—Yf + (z—Z)*=*R* кодируется набором чисел (X, У, Z, R). 3) Круговой цилиндр (х—Х)* + (у—Yf + (z—Z)*—[А (х—Х)+ + B{y—Y) + C(z—Z)f = R*, где (X, У, Z) —произвольная точка на центральной оси, а (А, В, С)—единичный вектор, направлен- направленный вдоль этой оси, кодируется набором (X, Y, Z, А, В, С, R). Окружность в двумерном пространстве кодируется как цилиндр, в котором А = В = О, С == 1. 4) Круговой конус [А (х—Х) + В (y—Y) + С {z—Z)f = [(*— ХJ+ -\-{у—УJ + (г—ZJ]cos28 с вершиной в(Х, У, Z), полууглом при вершине 0 и осью, направление которой определяется единичным вектором (А, В, С), кодируется набором чисел (X, У, Z, А, В, С, cos 6). 5) Поверхность второго порядка А х2 + By2 + Cz2 + D + 2Fyz + 2Gzx + 2Hxy + 2Px + 2Qy + 2Rz = 0 кодируется набором (Л, В, С, D, F, G, H, P, Q, R). Любое плоское коническое сечение (не считая прямой и окружности)
Геометрия кривых и поверхностей в трехмерном пространстве 107 кодируется как поверхность второго порядка, в которой С — F = = G = /? = 0; иными словами, трактуется как цилиндр. 6) Табулируемый цилиндр (TABCYL) —это цилиндр, образую- образующие которого проходят через точки кусочно-кубической кривой, определяемой множеством заданных точек. Кубическая кривая здесь—плоская кривая, лежащая в плоскости, нормальной к оси цилиндра. Подробнее понятие TABCYL рассмотрено в гл. 6. 7) Линейчатые поверхности также определены на языке APT. И хотя их определение не является параметрическим, фактически это поверхности, подобные описываемым уравнением D.39). Две направляющие определяются при помощи плоских сечений поверх- поверхностей, закодированных на языке APT, причем плоскости опре- определяются точками или векторами, в них лежащими. Конечные точки Р„ и Рх каждой направляющей должны задаваться пользо- пользователем (рис. 4.27). Направление Р0Р2. определяющее систему Р0Ю1 7 Рис. 4.27. (возможно, и косоугольную) координат плоскости сечения, должно быть также задано. Лежащая на кривой точка Р параметризована линейно на отрезке P0Pi, причем точки Р„ и Р, отвечают значе- значениям параметра 0 и 1 соответственно. Образующие соединяют точки двух направляющих с одинаковым значением параметра. Несмотря на то что оси определяются независимо на каждой направляющей, этот способ построения линейчатых поверхностей налагает некоторые ограничения. В разд. 9.3 и 9.4 дан анализ подпрограмм APT, позволяющих вычислять положения фрезы, обеспечивающие заданные допуски по отношению к обрабатываемой поверхности. Эти программы в свою очередь обращаются к подпрограммам, определяющим нормали к поверхностям и пересечения линий, написанным инди- индивидуально" для поверхности каждого типа. Решение использовать отдельные программы для плоскостей, сфер, цилиндров и кону- конусов, являющихся частными случаями поверхностей второго по- порядка,— это компромисс, поскольку увеличение необходимого числа подпрограмм компенсируется выгодами применения более простых подпрограмм для этих часто встречающихся поверхностей.
Глава 5. Проектирование кривых и поверхностей 5.1. Построение кривых и поверхностей при помощи параметрических кубических уравнений 5.1.1. Введение В разделе 4.1.5 мы упомянули, что при построении кривых и поверхностей параметрические уравнения имеют определенные преимущества. Поскольку объекты, которые нам приходится про- проектировать, имеют, как правило, сложную форму, не допускаю- допускающую описания при помощи простых аналитических функций, мы вынуждены определять кривые и поверхности по частям. Непре- Непрерывность и гладкость кривых и поверхностей в местах соедине- соединения отдельных частей обеспечиваются выбором параметризации по обе стороны сочленения. В этой главе рассматриваются свой- свойства отдельных сегментов; рассмотрению составных кривых по- посвящена глава 6. Поскольку нам приходится вычислять касательные, нормали, кривизны и т. д., нам нужна такая параметризация, для которой легко производится операция дифференцирования. Очень удобны для этой цели полиномы от некоторого количества параметров. При помощи полинома высокой степени можно описывать слож- сложные кривые, но такие полиномы требуют большого числа коэф- коэффициентов, физический смысл которых трудно понять. Следова- Следовательно, для конструктора они не подходят. Более того, приме- применение полиномов высокой степени может вызвать нежелательные колебания кривой (см. также приложение 5). С другой стороны, конструктор должен располагать достаточной свободой выбора формы при не слишком большом числе отдельных участков (сек- (секций, порций) конструируемой поверхности. Кубические уравнения оказались удачным компромиссом 'для многих приложений, и большинство методов проектирования и подгонки основано на использовании параметризации с помощью кубических функций. 5.1.2. Кубические параметрические кривые в форме Фергюсона Фергюсон A963) впервые ввел кубическую параметризацию для определения кривых и поверхностей при проектировании в самолетостроении. Сегменты кривых описываются уравнениями вида г = г(ы) = ао + ыа1 + ы2а24-а3. E.1)
Проектирование кривых и поверхностей 10$ Можно видеть, что для определения этого сегмента требуется четыре вектора (или 12 коэффициентов). Обычно для определения а0, аи а2 и 3g задают значения г и dr/du на обоих концах сег- сегмента. Как правило, концы сегмента отвечают значениям пара- параметра ы = 0 и и—\, а между конечными точками сегмента 0< < и < 1. Обозначая dr/du через г (и), получаем 1 + 2+3 () Отсюда а.-г@), а! = г@), E.2) a2=3[r(l)-r@)]-2r@)-r(l), Прямой подстановкой этих формул в E.1) можно выразить г через г@), гA), г@) и гA): —2и3) + у Можно также воспользоваться формулой г = UCS, где UCS—про- UCS—произведение трех матриц, представленных ниже: — — г и E-3) —2 Заметим, «1то элементы правой крайней матрицы этого уравнения являются векторами. В настоящей книге в тех случаях, когда используются матрицы, элементы которых являются векторами, в любое заданное произведение входит только одна такая матрица. Произведение матрицы скалярных элементов и матрицы, элементы которой являются векторами, подчиняется правилам разд. П1.3, с тем отличием, что обычное умножение соответствующих эле- элементов заменяется умножением тех векторных элементов, с кото- которыми мы оперируем, на скаляры. Так, например, 4с—a 4d—ЬГ
110 Глава 5 Производные г@) и гA) пропорциональны единичным касатель- касательным векторам Т@) и ТA) на концах кривой. Следовательно, г@) = аоТ@), гA)== 047A). Величины а0 и ах имеют следующий ,а, Возрастают ' однпбршенно Рис. 5.1. смысл. Если а0 и щ одновременно возрастают, то кривая становится более «полной»1 (рис. 5.1); если возрастает только а0) то направле- направление кривой на большей части ее длины почти совпадает с направле- направлением Т @), затем кривая поворачивает и начинает идти вдоль век- вектора ТA) (рис. 5.2). При больших значениях а„ и аг возникают изло- изломы кривой и образуются петли. В случае плоской кубической кривой а0 Возрастает <Х|постоянное Рис 5.2. величины а0 и ах не должны превышать длину хорды |гA)—г@)| более чем в три раза. В случае плоских кривых вместо до неко- некоторой степени субъективного понятия «полнота» кривой можно выбор констант а„, ах подчинить такому условию, чтобы дости- D В оригинале «fullness». Смысл этого термина становится ясным из рас- рассмотрения рис. 5.1 и 5.2.—Прим. черев.
Проектирование кривых и поверхностей 111 гались предписанные значения кривизны % на концах каждого сегмента. Тогда кривизну двух сегментов в месте их соединения можно сделать непрерывной, если только требования к кривизне не вызовут нежелательных изломов или петель внутри самих сегментов. В следующем разделе описывается более простой вывод формул для кривизны, в котором используется метод, предло- предложенный Безье. 5.1.3. Кубические кривые в форме Безье Безъе A970) перегруппировал члены параметрического куби- кубического многочлена Фергюсона таким образом, что физический смысл векторных коэффициентов стал более ясным. Это, разу- разумеется, самое важное, когда мы занимаемся не подгонкой кривой, ? ее конструированием. Формула Безье имеет следующий вид: г^г(ы) = A-ы)8г0 + ЗыA-ыJг1 + Зы2A-ы)г2 + ы3г3, E.4) где так же, как и в предыдущем разделе, 0 ^ и ^ 1 для любого заданного криволинейного сегмента. Легко видеть, что это всего лишь перестроенное соотношение Фергюсона, причем теперь а0 = г„ af = 3(rj — r0), У а3 = г8—Зг2 -f- Зг(—г0. Важное следствие такой перестройки—то, что теперь г(О) = г„ ГA)==Гз> E 5) г@) = 3(г,-гв), E'5) r(l) = 3(r3—г2). Следовательно, кривая, представленная в форме Безье, проходит через точки г0 и iv, имеет касательную в точке г0, идущую от г0 к г(, и > касательную в точке г„ идущую от г2 к г3 (рис. 5.3, 5.4, 5.5). Прямые P0Pi, РгР2 и Р2Р3 образуют фигуру, назы- называемую характеристической ломаной заданной кривой, причем, как правило, эта ломаная не замкнута. Чтобы построить кривую, мы задаем точки Ро и Р3, через которые должна проходить наша кривая, затем на желаемых касательных к этой кривой в точках Р„ и Р3 задаем точки Р, и Р2. Увеличивая одновременно длины отрезков Р0Рг и Р?Р3, мы придаем кривой большую полноту; если же увеличить только один из отрезков (РОРХ или Р2Р3), то кривая пойдет ближе к одной из касательных, и форма кривой будет изменяться точно так же, как она изменялась на рис. 5.1 и 5.2, когда изменялись величины <хг и а8.
112 Глава 5 В матричном виде форма записи кубической кривой Безье выглядит следующим образом: E.6) Чтобы выписать кривизну кривой, представленной в форме Безье, заметим, что rxr = s3%B (см. уравнения 4.17 и 4.20) и, следова- следовательно, >с = 1 гхг|/s3. Далее if@) = 6(r,-2r1 + r1) = 6(r1-r1)-6(r1-r.), r(l)-6(r1-2r2 + r3) = 6(r3-r8)-6(rs-ri). Таким образом, ../л\ _о Ifri—ro)X(rg—rt)| *V>- з | г,—г, р На плоскости вогнутость кривой всегда обращена к хорде Р0Р3, если точки Pj и Р2 лежат на сегментах Р0Х и ХР3, где X — точка пересечения касательных Р^ и Р2Р3 (рис. 5.3). На рис. 5.4 точка Pt находится дальше от Р„, чем точка X, поэтому кривая в окрестности точки Р3 хорды обращена выпуклостью к хорде Р0Р8. Если PdPj > Р0Х и Р2Р3 > ХР3, кривая может даже обра- образовать петлю, как показано на рас. 5.5. Если Р0Р, = аР0Х и PjPs^PXPg, то кривая сама себя пересекает, когда (а—4/3) х Х(Р—4/3) > 4/9, причем петля находится между и = 0 и и = 1, если а> 1 и Р> 1. Форрест A968) предложил, чтобы P0Pi и Р2Р3 никогда не превышали длины хорды Р0Р3. тогда аир будут меньше единицы. И тогда любые петли, появляющиеся на кривой, которая подчиняется этому правилу, будут лежать вне интервала 0 < и <! 1. Имеется еще один вид формы записи Безье для кубической кривой, а именно: Отсюда r-^ + a^ —ro) + P(r2—ro)-(-Y(r3—Го), где 0<а<1, 0<Р<1 и 0 < у < 1, если 0 < и < 1. Если рассматривать вели- величины a, fJ и у как косоугольные координаты вектора г, считая, что начало системы координат определяется вектором г0, а направ- направления осей совпадают с векторами г1—г0, г2—г0 и г3—г0, то Тогда из указанных выше неравенств вытекает, что кривая лежит
Проектирование кривых и поверхностей 113 Рис. 5.3. Рис. 5,4 .Рз(г31 Рис. 5.5. Р3(г3) Рис. 5.6. /3=0
114 Глава 5 полностью внутри тетраэдра P0PtPaPs (рис. 5.6), если 0 < и < 1. В действительности, поскольку 0<а<4/9и0<р< 4/9, область, внутри которой заключена кривая, можно ограничить еще более строго. Это свойство зависимости кривой от ее характеристической ломаной, называемое свойством выпуклости оболочки, имеет боль- большое значение, когда кривая описывается при помощи ее ломаной, 5.1.4. Полиномиальная кривая в форме Бернштейна—Безье Безье A970) дает форму записи полиномиальной кривой в более общем виде: E.9) где г„, rf, ..., г„—радиус-векторы п+ 1 вершин Ро, Р,, ...,Р„ некоторой обобщенной характеристической ломаной. Форма записи кубической кривой Безье является частным случаем такой обоб- обобщенной формы записи, если д = 3. Можно показать, что :@) = Г" [A) = Г»< E.10) г@) = я(г,-г0), гA) = я(гп-гв.,). Следовательно, полиномиальная кривая общего вида проходит через точки Ро и Р„, направления касательных в которых совпа- совпадают с направлениями векторов P0Pj и Р„_,РП. Эта полиномиаль- полиномиальная кривая является обобщением на векторнозначные функции полиномов Бернштейна, определение которых дается в прило- приложении 3. Преимущество кривых высокого порядка состоит в том, что с их помощью можно получить непрерывность нескольких произ- производных в местах сочленения отдельных сегментов сложной кри- кривой. Например, полиномиальная кривая пятого порядка позволяет задать конечные точки, касательные и кривизну хВ в них, остав- оставляя при этом константы а0 и at свободными для дальнейших уточнений. Но, несмотря на то что характеристическая ломаная все еще дает определенные указания относительно профиля соот- соответствующей кривой, эта связь по мере роста порядка кривой ослабевает. Кривая первого порядка г==A—и)го + мг1 есть прямая, и это уравнение совпадает с уравнением прямой, представленным в разд. 2.3.5. Кривая второго порядка задается уравнением г = A— ыJг0-(-2ыA — ы) г, + ы2г8. E.11)
Проектирование кривых и поверхностей 115 Точка с параметром и на этой кривой находится следующим образом. Точку А, делящую Р=РХ в отношении и:A—и), соеди- соединяем с точкой В, которая делит РХР2 в том же отношении (рис. 5.7). Тогда отрезок АВ разделится в том же самом отно- отношении в точке С. Имеем гА = A — и)г„-\-иги Р„ r2 Рис. 5.7, Отсюда гс = A — и) га + игв = A — иJ г„ + 2ы A — и) rx + и*г2. Итак, точка С является точкой с параметром и на параметри- параметрической квадратичной кривой E.11). Безье A970) показывает, что этот метод нахождения точки можно распространить на кривые высокого порядка, записанные в форме Бернштейна — Безье. Можно также показать, что кривая E.11) является параболи- параболической «пропорциональной» кривой, описанной в разд. 1.2.3. Доказательство этого факта здесь не приводится, поскольку в разд. 5.2.1 будет дано более общее доказательство для сегмента конического сечения общего вида. 5.1.5. Частные случаи кубической кривой Определенное практическое значение имеют следующие частные случаи кубической кривой. A) Прямая линия. Всякий раз, когда вершины характеристи- характеристической ломаной коллинеарны, кривая обращается в прямую линию. /Например, если в уравнении E.4) положить r1 = Br0-f-r3)/3 и r2= (ro-J-2rs)/3, то мы получим стандартную равномерную пара- параметризацию г = A— ы)г„ + ыг3. B) Парабола. Чтобы получить кривую г = A — ы)гг0-Ь + 2иA — и)г* + игг3, которая является параболической дугой с конечными точками г0 и г3, причем касательные к ней в этих точках пересекаются в точке г*, нужно положить гг = (r0 -J- 2г*)/3 и г» = (:
ш Глава 5 C) Окружность. Чтобы получить довольно точное приближе- приближение к дуге окружности г = cos 8i -f- sin 9j, 0 <; 9 ^ я/2, нужно поло- положить ro=i, r2 = i-J-&j, rs = ?i-|-j и r4 = j, где fe = 4 A^2—1)/3. Радиус кривизны полученной кривой изменяется между 1 и 1.00027, а максимальное отклонение от среднего радиуса состав- составляет ±0.13%. В работе Госслинга A976) приводится формула дуги окружности более общего вида. 5.1.6. Уравнение порции кубической поверхности в форме Фергюсона Предложенная в работе Фергюсона A963) процедура задания поверхности обобщает способ задания кривой, описанный в разд. 5.1.2, допуская зависимость векторов а0) а^ а2 и а3 от вто- второго парамефа и. Используя подобную кубическую параметри- параметризацию, можно записать a,. = a,.0-(-wa1-f о!а(-2+Л(„ t = 0, 1,2, 3. E.12) По мере возрастания и от 0 до 1 кривая г —г (и) перемещается и изменяет свою форму, и эта варьируемая кривая заметает поверхность, определяемую уравнением г = г {и, v) = а00 -f иа0] -f- и2а02 -f и3а08 -f иа10 -f uv&u -f ии*а,2 -f 3 3 В матричной форме мы имеем г (и, v) виде оо г (и, ») = (luuV)( UAV, или в развернутом Рис. 5.8, ай а22 а23 л п« I- EЛЗ> Из E.13) видно, что для зада- задания поверхности необходимо оп- определить 16 векторных коэффи- коэффициентов. Для этого, например, можно зафиксировать значения г, дг/ди, дг/ди и dh/dudv в четырех углах. (Ниже для крат- краткости будем обозначать дг/ди, дг/ди и d2r/dudv через га, г„ и гв„ соответственно.) Векторы гв и rv пропорцио- пропорциональны касательным векторам Тв и Tv к параметрическим кри- кривым v = const и ы = const. Век- Вектор ruv является мерой «закру-
Проектирование кривых и поверхностей 117 ченности» поверхности, т. е. мерой изменения вектора Та с из- изменением v или изменения вектора Т„ с изменением и (рис. 5.8). Поэтому ruv называется вектором кручения. Вектор rav зависит как от самой поверхности, так и от параметризации, и даже на плоскости он может быть не равен нулю. Его на самом деле следует определить как вектор перекрестной производной. 5.1.7. Уравнение порции поверхности / в форме Безье Можно обобщить форму записи кривой Безье аналогично тому, как это было сделано для формулы Фергюсона. Для этого нужно установить путь, прочерченный каждой из вершин характеристи- характеристической ломаной. Полученный таким способом результат так же, как и формула Фергюсона, симметричен относительно и и v. Поэтому У" 31-3! i -fr'f C-QU!C-/)!/l " ' — иK"/, E.14) где г и — вершины характеристического многогранника, как пока- занр на рис. 5.9. Самой поверхности принадлежат только вер- вершины г00, г03> г30 и г33; периферийные вершины образуют харак- 23 ГЗС Рис. 5.9. теристические ломаные кривых, ограничивающих данную порцию поверхности, причем четыре вершины, расположенные в центре, влияют, как мы увидим ниже, на перекрестные производные в четырех углах.
«18 Глава S В матричной форме порция поверхности Безье определяется уравнением г = г(и, о) = A и и2 и3)МВМг( V2 ], E.15) V где М и В имеют вид /1 0 0 0\ М=~3-6 3 l\ В = | \_1 з -3 1/ соответственно. Значения г и его производных в углах данной порции поверхности вычисляются следующим образом: г @,0) г @,1) г, @,0) г„@, 1) I, 1) г„A, 0) гвA, 1) г, @,0) г„@, 1) г„@,0) rOT@, 1) ,гаA,0) г„A, 1) г„A,0) ГИЛ1,1) 0 0\ /r00 roi r02 гоз\ /1 0-3 f*I0 Г11 Г12 гоо Гю г20 Гзо Гц г« Г02 Гц Г22 Г32 Г г г г 0 0—3 3/ \г30 ги г32 г33 Поэтому, например, значения вектора г и его производных в углу с параметрами и = v = 0 определяются из соотношений г@, 0) = г00, г«@, 0) = 3(гЛ-г„), г„@, O) = 3(roi-roo), г«„(°. 0) = 9(г„—г0/— 5.2. Рациональные параметрические кривые и поверхности 5.2.1. Рациональная квадратичная параметризация сегмента конического сечения Чтобы охарактеризовать сегмент конического сечения Р0Р'Р2 (рис. 5.10), проведем касательные к этому сегменту в точках Ро, Р' и Р2. Точки Ри А и В—точки пересечения этих касатель-
Проектирование кривых и поверхностей 119 ных. Пусть Р„, Pi и Р2 фиксированы; тогда точки А и В варьи- варьируются, если Р' перемещается вдоль сегмента. Таким образом, отношения gi — PjA/PqA и g2 = PJi/P2B зависят от точки Р' и могут быть использованы в качестве параметра, ее определяющего. Рио. 5.10. В разд. 1.2.2 мы показали, что конические сечения, прохо- проходящие через точки Р, и Р, с касательными P0Pi и Р^, обра- образуют пучок. Если P0Pi, PiPg и Р0Р2 имеют уравнения ^ = 0, 12 = 0 и ls = 0 соответственно, то образованный пучок определяется соотношением Это уравнение описывает конические сечения в плоскости Оху, где введена прямоугольная система координат. Целесообразнее было бы использовать здесь косоугольные координаты (а, Р) в плоскости, содержащей Ро, Pt и Рг, беря в качестве начала координат точку Рг, точку Р„ в качестве точки с координатами P,(r,Xo,o) Р2(г2И0,1) Рис. 5.11. A, 0), а точку Pj как точку с координатами @, 1). Как показано на рис. 5.11, произвольная точка Р (a, fi) имеет радиус-вектор г, который определяется уравнением = rt + a(r0— E.17)
120 Глава 5 Прямые РоРх, PtP2 и Р0Р2 имеют соответственно уравнения Р = 0, — а = 0 и oc-J-p—1=0; следовательно, пучок конических сечений описывается уравнением S(ct, Р) = A— А,)сф—А,(а—Р—1J = 0 E.18) в косоугольной системе координат. Выбор знака в уравнении прямой PjP2 (—а = 0, а не +а = 0) объясняется тем, что мы предпочитаем, чтобы конические сечения пучка, проходящие внутрь треугольника Р^Р.,, соответствовали 0<>:< 1. Касательную к этому коническому сечению в точке Р'(а'.р') можно получить, используя уравнение A.13) в косоугольных координатах: Эта касательная пересекает прямую Р„Р( в точке (а, 0), где a'Sg(a', р') 2 A-Ц a'P' — 2X, (a' + P') (a' + p' — 1) _ —21 (a' + P' -1) поскольку 5(a',P') = 0. Следовательно, a Подобным же образом Поэтому, используя E.18), мы получаем + Р' — IJ откуда следует, что gjg2 — постоянная величина для любого за- заданного конического сечения пучка и притом положительная для тех конических сечений, которые проходят через треугольник PoPjPj. Согласно сказанному, можно записать, что для всех таких конических сечений #• E.21) Решая E.19) и E.20) относительно а' и Р', можно точку касания касательной выразить через gt и g2. Имеем Таким образом, точка на коническом сечении, через которую про- проходит касательная, делящая прямые P,,Pj и РгР2 в точках пере-
Проектирование кривых и поверхностей 121 сечения с ними на отрезки в отношении g^l и g2:1 соответственно, имеет радиус-вектор г, определяемый соотношением gi(r0—rt) | gafo — fi) Далее положим g^t^O—ы)Ми и ga = шу^и»! A — и); следова- следовательно, g1gi = k* = wlfii>i/te$, где оуо, а»! и ау2—константы, назы- называемые весами. И наконец, получаем уравнение — рациональное квадратичное параметрическое уравнение для сегмента конического сечения, имеющего касательные РеР] и РХР2 и gig» = иу^Л^- Меняя индивидуальные веса, но сохраняя зна- значение wowjwl постоянным, можно изменить параметризацию кривой. Следует заметить, что если в уравнении E.24) все три веса умножить на одно и то же постоянное число, это уравнение остается без изменения. Поэтому характер кривой и ее парамет- параметризацию определяют отношения wo:w1:w2. Параметризация более общего вида дается соотношениями g1^=(woc/wl)((b—u')/(u'— а)) и g2 = w2(u'—a)/w1c(b—и'), которые, будучи подставленными в (р*>23), по-прежнему дают рациональное квадратичное уравнение. Форма кривой не изменяется, поскольку, как и прежде, g^ = *=wowt/wi. Связь между и и и' имеет билинейный вид Аии' + -f Bu -f Си' 4-0 = 0. Область 0<ы<11 соответствует области а<и'<6, а константа с определяет распределение значений параметра вдоль кривой. Рациональные параметрические кривые наиболее просто пред- представляются в однородных координатах (xw, yw, zw, w) (см. гл. 3). Уравнения xw = xowe(l—u)!s + 2x1w-Lu A —и) zw —,zowo A — uf 4- Zz-sW^u A — u) 4- тождественны уравнениям E.24), что становится очевидным, если, например, записать х в виде xw/w и т. д. Обозначая векторы
Ш Глава $ через Р и Р,, t=0, 1,2, уравнение E.24) можно представить в виде E.25) что аналогично уравнению квадратичной кривой в форме Безье. Однако рациональная квадратичная кривая может представлять сегмент любого конического сечения, а уравнение в форме Безье представляет только параболу. Таким образом, Р@) = Ро, Ра, E.26) 2(Р,-Р0), 2(P,-Pi), где P(uKsdP/du. Далее P — d(wR)/du, где Таким образом, P = uyR4-ayR, откуда R^±(P-WR). E.27) И наконец, используя E.26) и E.27), мы получаем эти соотно- соотношения в декартовых координатах: г@)-г„ ГA)==Г2а' E.28) 0)|1() Итак, рациональное квадратичное уравнение описывает при ^ ^ и ^ 1 сегмент конического сечения с конечными точками Ро, Р2 и касательными в этих точках Р^ и PiP2 соответственно. В разд. 5.1.3 мы показали, что сегмент кубической кривой, записанной в форме Безье, остается внутри тетраэдра, вершины которого являются точками характеристической ломаной этой кри- кривой. Подобным же образом можно показать, что сегмент кониче- конического сечения остается внутри треугольника Р^Ра при 0 < и < 1, если веса имеют положительные значения. Более того, как видно из рис. 5.12, максимально удаленной точкой сегмента конического
Проектирование кривых и поверхностей 123 сечения от хорды Р0Р2 является такая точка Q, касательная в ко- которой к данному сегменту делит определяющие касательные на отрезки в равных отношениях gi = gf2 = ?:l. Тогда максимальное расстояние QM == PiN/(l -f k), где PjN—перпендикуляр, опущенный из Рх на Р0Ра. Таким образом, мера выпук- выпуклости (полнота) кривой опре- определяется константой k. Если положить до0 = доа = 1 — р и до, = р, то мы имеем QM = — pPJi и, следовательно, па- рис 5.12, раметр р определяет полноту кривой. Мы вернемся к этому факту еще раз, когда будем рас- рассматривать рациональную кубическую кривую. Если wo — w1 = wt (или k=l), знаменатель обращается в еди- единицу и мы получаем квадратичную параметризацию в форме пара- параболы Безье. Таким образом, для параболы k— I, fe> 1 дает эллипс, a k < 1 дает гиперболу. Более удобно полноту кривой и ее параметризацию характери- характеризовать либо при помощи заданной касательной и параметра и* в точке касания, либо заданием некоторой третьей точки Р*(г*), отвеМющей значению параметра и*. В первом случае касательная определяется отношениями gi и gl. В этом случае Щ gl U* Щ g2 A—U*) W1~l—U*' Щ~ U* Если же, с другой стороны, нам дан вектор г* = г(м*), то при условии, что Р* лежит в треугольнике P0PiP«, из E.24) мы полу- получаем ш0 A —и*)* (г*--г0) + 2wtU* A—«•) (г*—rj) -f wtu4 (г*—r8) = 0. E.29) Считая, что векторы г0, rj и г2 не коллинеарны, можно найти нормаль п к плоскости этих векторов, и тогда, решая E.29) для отношений доо:до, и т. д., мы получаем ю„{1—м»J 2t24tt»(l — и*) ffi'a«*a /С „„. v- — (о.30) '•—г.) п.(г»—г2)Х(г»—г0) п.(г» —г„)Х(г»—Г1) Можно также, не задавая ни третьей точки, ни касательной, обеспечить непрерывность кривизны в месте соединения с сегмен- сегментом слева. Можно показать, что кривизна при и = 0 определяется соотношением fa— Го)Х(га—rt)|
124 Глава 5 а при и=\—соотношением х A) = | rf —- г013 х @)/| г2 — гх |3. По- Поскольку г0, г? и г2 фиксированы в силу условий непрерывности и касания, эти выражения дают зависимость между кривизной в ко- конечных точках и константой ki = w(lwdwl. Кроме того, из второго уравнения видно, что отношение кривизн в каждой конечной точке определяется векторами г„, гх и г2. Поэтому мы можем подгонять кривизну только на одном конце заданного сегмента или цепочки сегментов. Примеры. A) Чтобы получить в однородных координатах уравне- нение прямой, проходящей через точки г„ и г2, подставляем в E.24) выражения =- (шого 4- ш2га)/2, wt = (ю0 -f щ)/2. Тогда точка гх будет коллинеарна с точками г0 и га, и уравнение прямой примет вид г wo(\ — и Отношение шо:ша определяет параметризацию данной прямой, одно- однородную при шо = ш2; при этом мы получаем обычное параметри- параметрическое уравнение г = г0 A—и) + г2и. B) Чтобы получить уравнение сегмента окружности #2-f-t/2 = 1, 2=0, лежащего в первом квадранте, полагаем ro = i, r, = i-(-j, r2 = j. Щ = V%, Щ=1 и w2 = У 2. Тогда из E.24) получаем х* + + уг = 1. Если положить до„ = щ — 1 и ш, = 2, мы получим ri + J что соответствует рис. 4.3 разд. 4.1.1. 5.2.2. Рациональные кубические кривые Рациональная кубическая кривая является естественным обоб- обобщением рациональной квадратичной кривой, описывающей кони- конические сечения (разд. 5.2.1). С классической теорией неплоской кривой можно ознакомиться в работе Семпла и Нибоуна A952); приложение этой теории в проектировании описывается в работах Кунса A967) и Форреста A968). Точки заданной кривой опять представлены при помощи одно- однородных координат (xw, yw, zw, w), где xw, yw, zw и w—кубиче- w—кубические функции параметра и, а, следовательно, х, у и г—рациональ- г—рациональные кубические функции параметра и. Для сегмента рациональной кубической кривой получаем формулу, подобную формуле Безье, описывающей стандартную кубическую кривую, а именно:
Проектирование кривых и поверхностей125 где : = o, l, 2, з. E.31) Векторы Р,- являются однородными координатами вершин харак- характеристической ломаной, смысл которой подобен смыслу ломаной Безье. Для любого заданного сегмента параметр и в данном случае также лежит в интервале Os^u^l. Значения вектора Р и его производных на концах заданного сегмента определяются из соот- соотношений PS> E-32) = 3(Pi-P0), PA) = 3(PS-P2), полностью эквивалентных соотношениям E.7). И наконец, исполь- используя E.32) и E.27), мы получаем следующие соотношения в декар- товьй координатах: гA)-^(г,-г,). E.33) Таким образом, ломаная, определяемая точками г0, г^, г2, г8, имеет почти тот же смысл, что и характеристическая ломаная Безье, .но в данном случае мы можем приспосабливать и парамет- параметризацию кривой, и ее форму. Можно показать, что кривизны в точках и—О и и = 1 опре- определяются соотношениями ,.((\\—2wowi КГ1 — Го)X(га —1Ч)| н@)—аи \^\> ' — ra) | Величины w^jojvii и w$0t№t определяют кривизну для заданной ломаной так же, как константа fe2 = wawjvo[ в случае сегмента конического сечения. Необходимо заметить, что, как и в случае рациональной квадратичной кривой, используя билинейное преоб-
126 Глава 5 разование Аии'-{• Ви-\-Си' -\-D — 0, можно изменить параметриза- параметризацию рациональной кубической кривой. Чтобы интервал значений параметра не изменялся, конечные точки при этом преобразовании должны переходить в себя. Так, например, можно изменить пара- параметризацию, сохраняя область значений параметра [0, 1]. Тогда, полагая и' = и, мы видим, что уравнение Au2 + (B + C)u + D^3 = Аи(и—1) = 0 должно иметь решения ы = 0 и и—\, следова- следовательно, D = 0 и В-\-С —— А. Таким образом, при любом билиней- билинейном преобразовании вида Аии' + Ви—(А + В)и' = 0 форма кривой и область изменения параметра 0^и^1 сохра- сохраняются прежними. Подробное исследование инвариантности формы кривой можно найти в работе Форреста A968). Оказывается, что конические сечения и параметрические куби- кубические кривые являются частными случаями рациональной кубиче- кубической кривой, в чем и состоит преимущество последней. Так, если все веса до,- равны, мы получаем кубическую кривую Безье; если же Ро—ЗР, + ЗР2—Р3 = 0. то заданная кривая обращается в рацио- рациональную квадратичную кривую, т. е. в сегмент конического сечения. Еще одним частным случаем рациональной кубической кривой является прямая, представленная в однородных координатах. Так, полагая Р, = BР„ + Ps)/3 и Р2 = (Р„+2Р3)/3, мы получаем Р = = A-и)Р0 + иР,. Рациональная кубическая кривая является основой программы CONSURF для построения плазовой поверхности ((Болл A974, 1975)), только в программе CONSURF используется несколько иной полиномиальный базис. Мы же здесь, чтобы быть последо- последовательными, решили сохранить полиномы Бернштейна. В программе CONSURF используются два исключительно важ- важных частных случая рациональной кубической кривой. Первый из них—это линейный параметрический сегмент, когда задается направление п фиксированной оси. В этом случае, зная радиус- вектор г некоторой точки на заданной кривой, мы находим ком- компоненту г-п, линейно возрастающую вместе с параметром и нашей кривой. Итак, r-n = fe, A—u) + kuu, где fe, и ?2—постоянные ве- величины (?,^?2). Тогда P-N =w(u)[k1(l — u) + k2u], где PN = = /^я, -\- РцПц-\- Р3пя—скалярное произведение однородных векто- векторов Р = (Ри Р2, А,, Р4) и N = (rt!, «2, «з, 0). Подставив вместо Р и w кубические многочлены, раскрываем правую часть, прирав- приравниваем коэффициенты и получаем следующие условия для линей- линейного параметрического сегмента: до0—За»! -f ЗоJ—до3 = °. Здо^Гх—г„)-п = до„(г3 — го)-п, E.34) Здо2(г2—г3)-п = до3(г„—rs)-n.
Проектирование кривых и поверхностей 127 Чтобы упростить использование этого сегмента, дадим опреде- определение простого линейного параметрического сегмента, т. е. сег- сегмента, для которого задаются значения векторов г0 и г3, опреде- определяющих конечные точки, а также соответствующие касательные векторы То и Та и описываемое ниже р-отношение. Тогда rt =ro-f а„Т0, га=г3-а3Тз, w = w = p к ' где rt _ Р(Гз—Го)-" „ _ Р(гз—го)-п а"-3A-р)Т0.п' Сйз"~3A —Р)Т8п ' Ясно, что если /j-отношение растет, то точки г^ и г2 перемещаются дальше вдоль касательных и, следовательно, «полнота» сегмента увеличивается. Второй частный случай рациональной кубической кривой—это обобщенный конический сегмент. Само название подсказывает, что речь идет об обобщении рационального квадратичного плоского конического ¦ сегмента. Преимущество нового сегмента состоит в том, что он допускает точку перегиба и не обязательно должен быть плоской кривой. В то время как рациональная квадратичная кривая ограничена определяющим треугольником (разд. 5.2.1), обобщенный сегмент ограничен двумя прямыми круговыми кону- конусами, которые мы сейчас и рассмотрим. Как и в случае линейного параметрического сегмента, считаются заданными векторы г„ и г3, определяющие конечные точки, каса- касательные векторы То и Т3 и /j-отношение. Тогда г^Го + АТ,, и г2 = г3—|дТ3 суть точки, лежащие на окружности, получающейся в результате пересечения конусов, образованных вращением век- векторов Т„ и Т3 вокруг прямой, соединяющей конечные точки (рис. 5.13). Обозначим углы полураствора конусов с вершинами Ро и Pt через 0 и ф соответственно. Тогда „_v = 0, E>36) где d = |r3—го|. Поэтому d siti 0 Болл A975) дает выражения для А, и у. через гв> г3, Тв и Т„.
128 Глава 5 Чтобы, как и в случае линейного параметрического сегмента, возрастание р влекло за собой увеличение «полноты» кривой, по- положим w1 = w2 = р/3 и иH = и),= 1—р. Тогда при и =1/2 Г "о" =A / Следовательно, кривая пересекает прямую, соединяющую среднюю точку М ((г0 + г3)/2) отрезка Р„Р3 и среднюю точку N ((г, + га)/2) отрезка PiP2, причем точка пересечения делит MN в отношении MQ=pMN Рис. 5.13. pi(l—р) (рис. 5.13). Ясно, что это прямое обобщение уэ-отноше- ния, которым мы пользовались для характеристики «полноты» сегмента плоского конического сечения в разд. 5.2.1. 5.2.3. Порции рациональной поверхности Рациональные квадратичную и кубическую кривые можно взять в основу построения рациональной поверхности примерно таким же способом, каким пользовался Безье, беря в качестве основы куби- кубическую кривую и получая в конечном итоге порцию бикубической поверхности в системе UNISURF. Таким образом, порция рацио- рациональной бикубической поверхности определяется уравнением, ана- аналогичным уравнению E.12), в котором векторы представлены в однородных координатах. Отсюда следует, что • = Р(ы, у) = A и иги3)МВ»М7 2 , E.37) где М—матрица коэффициентов Безье уравнения E.6), а В* опре- определяется выражением Р. Р Р 01 *02 г / Р Р Р С Р2« Р21 Р22 Раз/' Рр р р 30 rSl *82 r
Проектирование кривых и поверхностей 129 Порция рациональной биквадратичной поверхности определяется аналогичным образом. Следует заметить, что, хотя параметрические кривые и = const и v = const являются коническими сечениями, эти поверхности в общем случае не являются поверхностями вто- второго порядка. Однако каждую поверхность второго порядка можно параметризовать таким способом. На самом деле рациональная биквадратичная форма содержит все поверхности Штейнера (см. ра- работу Соммервилля A934)), которые в свою очередь содержат все поверхности второго порядка. 5.3. Преобразования параметров для полиномиальных и рациональных параметрических кривых и поверхностей Сегменты полиномиальных кривых в разд. 5.1 были параметри- параметризованы таким образом, чтобы конечные точки отвечали значениям параметра и = 0 и и = 1. Поэтому свойства этих кривых рассматри- рассматривались в связи с такой параметризацией. Если нам нужно иссле- исследовать или модифицировать какой-либо участок подобного сег- сегмента^ то удобно преобразовать параметры таким образом, чтобы коне'чные точки, отвечающие значениям параметра и = и0 им = их, отвечали значениям нового параметра и' = 0ии' = 1, тогда можно будет применить наши стандартные результаты к подынтервалу Мы рассмотрим кривые, определяемые уравнением Безье, а следовательно, и полученные преобразования будут представлены в соответствующем виде. Если степень полинома не изменяется, мы имеем линейное преобразование вида и = A — и')ио + и'1ц. E.38) Ясно, чтр значения параметра и' = 0, I соответствуют, как и требуется, значениям параметра и = и0, и1. Если E.38) представить в виде и = ио-{-{и1 — ио)и' и обозначить их — и0 через Аи0, мы по- получим соотношение л и»=^С?иг0(и' Аио)"~г; E.39) поэтому, беря в качестве примера кубическую кривую в форме Безье, имеем • /1 «о «2 A и и u)-(i и и- и м 0 0 Аи, \0 0 0 . 5 А. Фокс, М. Пратт
|30_ Глава 5 ИЛИ U = U'T. E.40) Теперь уравнение E.6) можно представить при помощи нового параметра и', а именно: где точки модифицированной ломаной задаются уравнением MR' = = TMR или R^M^TMR. E.41) Запишем предыдущие формулы более подробно: 5 2 — ЗМоМО Г2 + ) Уравнения E.40) и E.41) легко обобщаются на полиномиаль- полиномиальные кривые высокого порядка; применяя E.39), мы получаем коэффициенты матрицы Т. Соответствующее преобразование для рациональной кривой, которое снова дает рациональное уравнение, определяется соотношением »'>f»+»>»j E43) A— tt') Значения параметра и' = 0, 1 в данном случае также соответствуют значениям параметра и = иа, щ, параметризация сегмента регули- регулируется с помощью отношения со,,:©!. В частности, значения пара- параметра в конечных точках можно оставить без изменения, и, чтобы установить равномерную параметризацию, положить ы0 = 0, их = 1 в E.43); в результате получим (o)i—ю0) мы' + соои—со1ы' = О. E.44) Уравнения вида E.43) и E.44) являются билинейными Преобра- Преобразованиями между и и и'. С общей теорией таких преобразований можно ознакомиться в монографиях, посвященных проективной геометрии, например, по книге Семпла и Нибоуна A952). Для полиномиальной поверхности вида г (и, y) = UMBMrV, определяемой уравнением E.15), мы выбираем некоторую ее часть, отвечающую значениям параметров uo^.u^ult vo^.v^.vlt одно- одновременно преобразовываем и и v и получаем следующее обобще- обобщение уравнения E.41): В'= (М-^М) В (М-ПуИ)г, E.45) где Тп—матрица Т в формуле E.40), а Т„—соответствующая матрица от v0 и vt.
Проектирование кривых и поверхностей 131 5.4. Площадь, стянутая плоской кривой, представленной в форме Безье При проектировании поперечных сечений, например, трубопро- трубопроводов, большое значение имеет площадь поперечного сечения (см. гл. 8). Если плоская кривая в форме Безье представлена в некоторой системе координат, начало которой лежит в плоско- плоскости кривой, то, используя уравнение D.6), мы найдем площадь, ограниченную нашей кривой и прямыми, соединяющими начало координат с конечными точками кривой. Это дает нам возмож- возможность вычислять площади поперечных сечений любых профилей, нормальные поперечные сечения которых образованы сегментами плоской кривой, представленной в форме Безье. В случае кубической кривой, интегрируя D.46), мы получаем A ^ta-rjxfr.-ro + ^r.-roxfr.-rj-^r.-r,) (rf-r0) E.46) — выражение для площади А, образованной кривой и хордой Р0Р3, представленное через радиус-векторы точек Р„, Рь Р2 и Р3 характеристической ломаной. Для этих плоских кубических Ьх положим Г? = го + аа, ra = r3—Pb, rs = r0 + a + b (рис. 5.14). . Рис. 6.14. Через эти величины общая векторная площадь А*, ограниченная заданным сегментом кривой и прямыми, соединяющими начало координат с конечными точками сегмента, определяется соотно- соотношением . А* = А[2а + 2р"-сф](ахЬ)+А0, E.47)' где Ао—векторная площадь треугольника ОР0Р8. Например, для кривой, аппроксимирующей окружность и описанной в разд. 5.1.5, имеем а=Р = 4 (У2 — 1 )/3; следовательно, | А | = 0.285618. Сравни- Сравнивая с величиной 0.285398, полученной для дуги истинной окруж- окружности, мы видим, что ошибка в площади равна 0.00022, а сред- средняя радиальная ошибка 2бЛ/я—0.00014.
Глава 6. Составные кривые и сплайны 6.1. Введение В этой книге изучаются вычислительные методы проектирова- проектирования изделий, содержащих искривленные поверхности. Матема- Математическое представление таких поверхностей, как указывалось в введении, дает много преимуществ. Иногда это представление несложно, как, например, в случае тела, составленного целиком из простых геометрических форм, таких, как сферы, цилиндры или конусы. Но очень часто это не так; кузова автомобилей, фюзеляжи и аэродинамические поверхности самолетов являются очевидными примерами. Процедура, обычно используемая для математического представления таких более сложных поверхно- поверхностей, состоит примерно в следующем: (i) Поверхность покрывается двумя воображаемыми группами линий; первая идет в продольном направлении, вторая —транс- версальна к первой. Эта сетка линий определяет множество то- топологически прямоугольных ячеек, каждая из которых, в случае гладкой поверхности, будет ограничена четырьмя гладкими кри- кривыми. (ii) Координаты узлов этой воображаемой сетки измеряются на модели или на наборе чертежей поперечных сечений поверх- поверхности . (ш) С помощью интерполяции математически описываются эти две группы линий, образующие сетку. (iv) Каждая ячейка сетки теперь имеет четыре корректно опре- определенные границы, и внутренность ячейки может быть «запол- «заполнена» с помощью двумерной интерполяции. В настоящей главе мы опишем ряд методов, используемых для определения системы кривых, на которой основана описанная процедура. Обобщение этих методов для полного определения поверхности в трех измерениях рассматривается в гл. 7. Математически описанный процесс наиболее прост, когда искривленная поверхность определяется относительно плоскости (а:, у), а сетка составляется из линий х = const и у — const1). г) Здесь авторы допускают неточность—сетка состоит из линий, лежащих на самой поверхности, а не на плоскости, на которую поверхность проекти- проектируется. Таким образом, мы получаем иной способ описания поверхности.— Прим. ред.
Составные кривые и сплайны 133 Все кривые сетки являются тогда плоскими кривыми. Мы будем сначала исследовать построение плоских кривых, а затем'обра- затем'обратимся к более общей задаче построения кривых в пространстве. В дальнейшем будем различать производные по пространст- пространственным координатам и производные по параметрам кривой, исполь- используя штрихи для первых и точки для вторых. Например, будем записывать производную функции / (я) в декартовых координатах как f (х), а производную от r(s), где параметр s—длина дуги, будем записывать в виде r(s), как в предыдущих главах. 6.2. Построение плоских кривых 6.2.1. Классические /методы Сначала рассмотрим применение классических методов числен- численного анализа, которые кратко излагаются в приложении 5. Допустим, что мы хотим построить поверхность в виде графика функции z = z(x, у). Линия у = const на этой поверхности будет представлена линией z = z(x)\ потребуем, чтобы она проходила через набор заданных точек (х0, г0), (хи zx), ..., (хп, г„), где Х„ <>х < • • • < Хп. При наличии (и+1) точек можно записать интерполяционный полином Лагранжа pL {x) степени п, который проходит через эти точки. Однако при большом п возможны нежелательные осцил- осцилляции pL(x), которые могут иметь до (п — 1) максимумов и мини- минимумов, если все нули p'L{x) окажутся вещественными. Ясно, что тенденция к осцилляциям усиливается с ростом степени полинома Pj (x), т. е. с увеличением числа интерполируемых точек. Один из способов устранения осцилляции—это построение составной кривой, в которой полиномы низкой степени (например, кубические) последовательно применяются для интерполяции групп точек. Полученная $ результате кусочно-полиномиальная функция будет непрерывной, но в общем случае может иметь разрывы производных в точках соединения последовательных отрезков кривых. Для большинства приложений это неприемлемо, так как если окончательная поверхность должна быть гладкой, то линии сетки, из которых она строится, должны быть также гладкими. Можно было бы рассмотреть использование во всем диапазоне одного полинома невысокой степени, построенного по методу наименьших квадратов, но в большинстве случаев это не дало бы достаточно хорошего соответствия кривой заданным точкам1 Уве- Увеличение степени полинома для улучшения соответствия снова может привести к осцилляциям. Следующая возможность связана с применением полиномов Эрмита. Для этого должны быть известны величины г' (х) и z{x)
134 Глава 6 во всех точках. К сожалению, в то время как положение точки поверхности может быть измерено достаточно точно на модели или чертеже, точное измерение градиента более трудно. Следовательно, значения градиента менее достоверны, чем значения г(х), а так, как формула Эрмита довольно чувствительна к изменениям зна- значений производных, то скорее всего мы получим лишь плохое представление желаемой кривой. При выборе интерполирующего полинома высокой степени может снова возникнуть проблема осцилляции, поэтому предпочтительнее, использовать кусочную интерполяцию полиномами Эрмита невысокой степени (как описано выше для полиномов Лагранжа). Исследуем последний способ более подробно. Рассмотрим один интервал Х;^х^.х!+1 с г(х) и г'(х), заданными на обоих кон- концах; для него можно построить кубический интерполирующий полином. Если это будет сделано для каждого интервала, то полу- полученная кубическая кусочно-полиномиальная функция будет иметь непрерывность наклона во всех заданных точках. Поэтому поверх- поверхность, построенная по сетке линий этого типа, будет всюду глад- гладкой. Однако следует отметить, что вторые производные (и, сле- следовательно, кривизна) будут разрывными в узлах. Кусочная интерполяция полиномами Эрмита привлекательна тем, что она обеспечивает непрерывность первых производных, не порождая весьма неприятной проблемы осцилляции. Основной ее недостаток—необходимость знания значений производных. Кубическая по 4-ем точкам Квадратичная по з-ем точкам Рис. 6.1. кусочная интерполяция полиномами Лагранжа многозначной функции. Когда измеренные значения производных отсутствуют, часто пы- пытаются получить -их из значений г (x) в узлах с помощью клас- классических методов. Однако этого следует по возможности избегать, потому что вычисление производных по своей природе неточный процесс, как указано в приложении 5. Полученные результаты
Составные кривые и сплайны 135 слишком грубы, чтобы быть использованными в сравнительно точ- точной формуле Эрмита. Заметим, что все классические методы в своей основной форме могут быть использованы только для интерполяции однозначных функций. Многозначные функции (соответствующие поперечным сечелиям складчатых поверхностей) могут быть представлены кусочно-полиномиальной функцией, как было предложено выше. Пример такой функции дан на рис. 6.1. Так как ни один полином не имеет бесконечной производной, будут получаться сравнительно большие ошибки в окрестности любой вертикальной касательной к поверхности. 6,2.2. Полиномиальные сплайны Каждый из предложенных в предыдущем разделе методов имеет по крайней мере один из следующих недостатков: (i) тенденция к осцилляциям, (Н) неспособность дать гладкую кривую или (ш) необходимость знания производных в узлах. Покажем теперь, как можно гладко интерполировать данные с использованием полиномов (невысокой степени для уменьшения осцилляции) при самых минимальных требованиях к знанию значений производных. Рассмотрим снова последовательность- точек (х0, z0), (хи Zf), .... (хп, zn) с х0 < хх <...< хп. Наша цель—провести через эти точки составную кривую (р(х), имеющую следующие свойства: (i) на каждом подынтервале х(^^х^xt, i=*l, 2, ..., п, функция <р(х) является кубическим полиномом, (и) ф(а:) и ее первые и вторые производные непрерывны в узлах. Полученная гладкая кусочно-кубическая кривая называется кубическим сплайном. Сплайны более высокой степени получаются в том случае, когда производные третьего и более высокого по- порядка также непрерывны в каждом узле; например, сплайн пятой степени имеет непрерывную четвертую производную. Сплайны чет- четных степеней используются нечасто, так как они обладают не- некоторыми свойствами, делающими их менее пригодными для наших целей (см. гл. 3 книги Алберга, Нильсона и Уолша, 1967). гЛ Термин -«сплайн» возник по аналогии: это название чертежного инструмента—тонкой металлической или деревянной линейки, которая может изгибаться так, чтобы проходить через заданные точки. Кривая, описанная физическим сплайном, минимизирует энергию его внутренних напряжений. С точки зрения математика такая кривая имеет минимальную среднюю квадратичную кривизну; в этом смысле она «наиболее гладкая» из тех, что проходят
136 Глава 6 через заданные точки. В декартовых координатах кривая мини- минимальной энергии минимизирует следующий интеграл, взятый между ее концами: г"Чх A+ «'«)•/•* Определение соответствующей кривой z — z(x) из условия мини- минимальности этого интеграла является вариационной задачей, не имеющей элементарного решения. Однако, если принять, что | z |' <^ 1 вдоль всей длины сплайна, получается более простая задача минимизации интеграла ¦ > J г»Чх, решением которой оказывается кусочно-кубическая функция, не- непрерывная вплоть до вторых производных, т. е. кубический сплайн в математическом смысле. На практике кривые с большими накло- наклонами могут быть рассмотрены с помощью местного переопределе- переопределения системы координат, как показано на рис. 6.2. Таким спосо- ПерВые и Вторые модифицированные ооа Основные координатные оси х Рис. 6.2. бом в локальной системе координат всегда обеспечивается малость наклона. Процедура интерполяции TABCYL (см. разд. 6.4) исполь- использует этот подход. Можно также применять параметрический сплайн (см. разд. 6.3.4), который имеет то преимущество, что он не зави- зависит от выбора осей координат. Отметим, что процедура построения кривых KURGLA, исполь- использованная Мелумом A969) в его системе для проектирования кораб- кораблей AUTOKON, основана на минимизации исходного интеграла энергии внутренних напряжений, а не на упрощенной аппрокси- аппроксимации. При этом не возникает трудностей с большими наклонами (см. разд. 6.4), так как аппроксимация проводится позже, внутри алгоритма.
Составные кривые и сплайны 137 Теперь рассмотрим построение кубического сплайна ц>(х), кото- который проходит через точки (xlt zt), i = 0, 1,2, ...,«. Вспомним, что (i) ф (х) есть полином стеиени <| 3 в каждом интервале Х{-1 < X < Х{, (И) (iii) p' {x) я ф" (х) непрерывны в точках xt, x2, ..., хп_%. В терминологии сплайнов точки х{ называются узлами, а каждый интервал х!_1^.х^.х1 называется отрезком. На первом отрезке х„ ^ х ^ jca известны ф (#0) = г0 и ф (л^) = Zf. Чтобы определить единственным образом четыре коэффициента интерполирующей кубической функции на этом отрезке, требуется два дополнительных условия. Предположим, что <p'(#o) = zj и ф" (*o) = го также заданы в точке х0. Это позволяет сконструиро- сконструировать кубическую функцию на первом отрезке, для которой значе- значения самой функции и ее производной в концевых точках соот- соответствуют заданным. Когда это сделано, можно определить по кубической функции ф' (#i) и ф"^!)- Эти производные должны быть непрерывны при хй тем самым имеются четыре значения ф(д:1), ц>'(хг), ф" (хг) и ф(*г) = г2. которые определяют кубическую функцию, описываю- описывающую второй отрезок сплайна. Остающиеся части сплайна могут быть последовательно .вычислены таким же образом вплоть до последней точки. Все сказанное выше показывает, что полный кубический интер- интерполирующий сплайн может быть сконструирован по (п+l) зна- значениям функции Z/ и двум дополнительным условиям. На практике сплайны обычно не вычисля- вычисляют этим методом по двум при- причинам. Во-первых, накопле- накопление ошибок округления при наличии большого числа от- отрезков ведет к значительному отклонению от истинного сплайна. Во-вторых, часто удобнее задавать по одной производной на каждом конце сплайна, чем две производные на одном конце, как это де- делали мы. Однако Натбурн A973) описал практическое Рис б 3 применение указанного выше процесса. Теперь приведем метод, который обычно используется на практике и имеет доста- достаточную точность при более или менее равномерном распределении узлов. Рассмотрим сначала только один отрезок сплайна, длина которого X;—лг,_1 = Л,-, как показано на рис. 6.3. Так как ф (х)
138Глава 6 есть кубическая функция, то <р' (х) — квадратичная и <р" (х)—ли- (х)—линейная по х функции. Если <р" (*,•_!) = s,_! и ф" (а:,-) = s,-, тогда ф" (а:) выражается в любой точке отрезка линейной интерполя- интерполяционной формулой гп" / v\ _ si-l ( Ф W Дважды интегрируя, получим Ф(х) = где постоянные интегрирования ct и с2 могут быть найдены из граничных условий ф(х,-_1)=^ zt_u ф(х,-) = гг-, что дает Это есть интерполирующая кубическая функция на отрезке x,_i<I <л:<а:,, выраженная через две известные величины г,_х, zt и две неизвестные величины si_1, ${. Чтобы определить величины sf_x и s;, используем свойство непрерывности первой производной в узлах сплайна. Дифферен- Дифференцируя F.1) по х и принимая х = х{, после некоторых упрощений находим Если теперь заменить i на i-\-1 в F.1), получим кубическую интерполирующую функцию на следующем отрезке х{ <: x^x Дифференцируя ее и полагая х — х-р получим где hl+1 = xl+i—X(. Так как ф' (х) должна быть непрерывной при x = xh правые части F.2) и F.3) должны быть равны. Это дает уравнение 6('y+7'<)-6<'<7'f"l)' F-4) которое линейно относительно трех неизвестных sf_f, s,- и ,+f Можно записать уравнение такого типа для каждого (п—1),внут- (п—1),внутренних узлов хи х2, ..., xn_x. Так как необходимо определить (п+1) значений s, а именно s0, slt ..., sn, надо иметь два до- дополнительных условия, которые позволят замкнуть систему и однозначно определить сплайн. Эти выбранные дополнительные соотношения зависят от физических и иных условий в каждом конкретном приложении. Условия могут быть следующими.
Составные кривые и сплайны 139 (i) Свободные концы: нулевая кривизна сплайна в х0 и хп, т. е. >ох= sn = 0 (это дает естественный сплайн); (и) Заделанные концы: определены первые производные в х0 П 0 'ix^—g,, в F.3), находим ) и хп. Полагая ( = 0 и Можно использовать F.2) для получения подобного соотношения в хп, если ф' (хп) = gn задано: _е„ 6(гя-г»-1). (iii) Квадратичные концевые отрезки: так как квадратичная функция имеет постоянную вторую производную, два дополни- дополнительных граничных условия суть st} = s1 и sn_x = sn. Последнее условие позволяет пользователю избежать опреде- определения значений каких-либо производных. Однако более удобный способ сделать это—найти одну кубическую функцию на двойном отрезке х0 ^ х ^ #2, что влечет за собой выполнение некоторого услошя в точке (хи г,); аналогично поступаем и на другом конце сплайда. В результате получаются уравнения h2s0 — (hj, + h2) st + hxs% = 0, U-i-(A,-i + K) s»-i + K-Jn = 0- Конечно, можно использовать разные ограничения на разных концах сплайна. Для иллюстрации расчета сплайна приведем Заданная шательш Рис. 6.4.-J систему уравнений для случая га = 4 с граничными условиями s0 = 0 и ft4 s8 -f 2/г4 s4 = 6g4 — 6 (г4 — z8)/ft4, что соответствует одному свободному концу и одному концу с заданной производной g-4
140 Глава 6 (рис. 6.4). Уравнения для неизвестных вторых производных, за- записанные в матричной форме, имеют вид Л, К 2ht_ \~> = 6 L J Заметим, что матрица коэффициентов этой системы является трех- диагональной х) (с ненулевыми элементами только на главной и смежных с ней по обе стороны диагоналях). Решение такой си- системы может быть точно и эффективно получено с помощью хо- хорошо разработанных методов, как это показано в гл. 3 работы Гулта и др. A974). Когда все величины будут вычислены, F.1) даст требуемую кубическую функцию для каждого индивидуаль- индивидуального отрезка сплайна. Производные gc = q>'(xl) при желании могут быть вычислены из уравнения F.2). Другой способ —при выведении формул по- поменять ролями величины s,n g , Выкладки' при этом более слож- сложны, но получается аналогичная система уравнений, и в ходе вы- вычислений в явном виде определяются величины glt а не s(. Уравнения, которые заменяют F.1) и F.4) соответственно, сле- следующие: ф (д;) = if, _l j-*)» [2 (*-*<-i I Эти уравнения можно использовать, когда сплайн уже построен и требуется определить величину первых (но не вторых) произ- производных в узлах. Из того факта, что сплайн может быть сконструирован таким х> В отечественной литературе метод решения систем линейных уравнений с трехдиагональной матрицей известен как «метод прогонки».— Прим. ред.
Составные кривые и сплайны 141 альтернативным образом, следует, что интерполяция кубическим сплайном является приложением кусочной интерполяции Эрмита, которая обсуждалась в разд. 6.2.1. По существу сначала рас- рассматривается весь набор данных с тем, чтобы определить вели- величины, необходимые для первых производных в узлах, так что кусочная интерполяция Эрмита здесь имеет также непрерывные вторые производные. Как упоминалось выше, можно рассчитать интерполирующие сплайны и более высокого порядка, чем кубический сплайн. Под- Подробности расчета сплайна пятой степени, например, приводятся в работе Спаата A974), которая также содержит полезные вычис- вычислительные подпрограммы. Подробное описание общей теории по- полиномиальных сплайнов и их, приложений дано в работах Алберга, Нильсона и Уолша A967) и Гревилла A969). Напряженный сплайн (Швейкерт, 1966) является математиче- математическим аналогом механического сплайна, подвергнутого однородному растяжению, приложенному к его концам. Этот тип вызывает все больший интерес, так как можно подобрать растяжение так, что исчезнут нежелательные осцилляции и изгибы, которые иногда встречаются у полиномиальных сплайнов. Клайн A974) и Ниль- сон A974) обсуждают вычислительные аспекты таких кривых. Теперь уже должно быть ясно, что сплайны являются глад- гладкими, но гибкими кривыми, имеющими много приложений в кон- конструировании криволинейных форм и построении графиков. Преи- Преимущества их заключаются в том, что достигается непрерывность вторых производных (так что кривизна непрерывна), а также в том, что для их построения необходима лишь небольшая априор- априорная информация о производных. Однако они имеют и ограничения, в том числе следующие: (i) локальное изменение влечет за собой вычисление заново всего сплайна; (и) рассматриваемые здесь сплайны непригодны для аппрокси- аппроксимации кривых с вертикальными касательными; (iii) могут возникать осцилляции при аппроксимации кривой, имеющей разрывы вторых производных, например, сопряжения прямой линии и дуги окружности; (iv) с точки зрения эстетики сплайны не всегда приемлемы. Кривизна поверхности, сконструированной с помощью сплайнов, изменяется иногда неравномерно, что приводит, например, к при- причудливым искажениям отражений предметов от кузова автомобиля. Из этих четырех ограничений первое можно устранить, исполь- используя В-сплайны, как будет объяснено в следующем разделе, второе может быть преодолено, а третье ослаблено использованием па- параметрических сплайнов (разд. 6.3.4). Четвертое ограничение (проблема «кривого зеркала») менее актуально для напряженных сплайнов, упомянутых выше.
142 Глава 6 6.2.3. В-сплайны В предыдущем разделе мы видели, как можно построить ку- кубические сплайны на п отрезках. Благодаря тому что налагаются условия непрерывности, необходимо иметь лишь значения функ- функций zt в (я+1) узлах, в которых она интерполируется, а также два дополнительных условия, что составляет (я + 3) условий. Учитывая это, рассмотрим построение кубического сплайна Ф(х), у которого на обоих концах у(х) = ц>'(х) — ц>" (х). Эти три условия позволяют определить единственный сплайн, проходящий через три отрезка. Однако этот сплайн есть <р(л:)з=0; в самом деле, он безусловно удовлетворяет условиям на концах и требо- требованиям непрерывности в узлах. Случай четырех отрезков более интересен; здесь мы нуждаемся в дополнительном условии и по- поэтому можем задать ненулевое значение функции во внутреннем узле, а это гарантирует, что сплайн не является тождественно нулевым. Общая форма полученной в результате кривой показана на рис. 6.5. На этом рисунке сплайн продолжен от его конечных точек xi-*> xt прямыми линиями, идущими вдоль оси х. В результате получается кубический сплайн на любом числе отрезков, но он не равен нулю только на четырех из них. Такая функция назы- называется В-сплайном (или фундаментальным сплайном) четвертого порядка (или третьей степени). Про него говорят, что он имеет минимальный носитель (носитель— это число отрезков, на кото- которых сплайн отличен от нуля). Заметим, что кубический В-сплайн полностью определяется множеством узлов, на которых он определен, и только одной за- заданной величиной г. В более общем виде В-сплайн Мт1 (х) порядка т (или степени т — 1) на данном множестве узлов везде равен нулю, кроме т последовательных отрезков #;-т <*<¦*>• Опять-таки Мт1 (х) определяется множеством узлов и одной ве- величиной г. Принято исключать последнюю степень свободы и
^ Составные кривые и сплайны 143 фиксировать амплитуду В-сплайна некоторым стандартным обра- образом. Далее мы будем использовать нормировку согласно правилу xi-m как предлагают Кокс A972) и Де Бур A972). Часто удобно для вычислений использовать нормализованный В-сплайн Nт1 (х), свя- связанный с Мт1 (х) соотношением Nmi (х) = (х{ —*f_ J Ма1 (х). Мы покажем в следующем разделе, что Mmi(x) и, следовательно, Nml(x) всюду >0. Практическое значение В-сплайнов объясняется тем (Карри и Шёнберг, 1966), что любой сплайн порядка т на множестве уз- узлов х0, хи ..., хп может быть выражен в виде линейной комби- наЧцр В-сплайнов, определенных на том же множестве узлов, расши- расширенном (т — 1) дополнительными узлами на каждом из концов интервала, которые можно выбрать произвольно: x_m+i, x.m+i, ..., X-i и xn+i, ..., *n+m_i. Можно построить пг + п— 1 последова- последовательных В-сплайнов на расширенном множестве узлов, каждый из которых отличен от нуля на т последовательных отрезках. Поэтому можно записать т+п- 1 Ф(*)= 2 c.M^ix), F.5) где ф(лг) — любой сплайн степени (т—1) на первоначальном мно- множестве узлов и Mmi(x) есть В-сплайн на расширенном множестве узлов, отличный от нуля при xi^m<^x<^xi\ C( суть числовые коэф- коэффициенты. Можно также записать F.5) с помощью нормализован- нормализованных В-сплайнов Nml (x), подобрав должным образом коэффи- коэффициенты. Этот результат очень важен потому, что В-сплайн является только локально ненулевым. Если сплайн степени т—\ выражен в виде В-сплайнов, то изменение коэффициента у одного из В- сплайнов влечет за собой изменения точно на т отрезках кривой, не нарушая характер ее непрерывности. Этим способом можно производить локальные изменения кривой без полного ее пересчета. Такое свойство желательно в любой системе проектирования. Бо- Более того, представление сплайновых кривых посредством В-сплай- В-сплайнов имеет определенные преимущества с точки зрения устойчивости вычислений (Вара, 1977), и, несомненно, эти функции и далее будут широко применяться в вычислительной геометрии.
144 Глава 6 6.2.4. Другие свойства б-сплайнов Из-за ограниченного объема книги практическое применение В-сплайнов не может быть подробно изложено. Однако в данном разделе представлены, некоторые основные идеи, и он является введением в специальную литературу по этому предмету. Сначала вйедем обозначение для усеченной степенной функции t+, при любой переменной t и положительном целом k определя- определяемой формулой ^'1, график которой показан Затем рассмотрим функцию (х— на рис. 6.6. Рис. 6.6. Эта функция непрерывна при х = х{ вместе со своими произ- производными до порядка (т—2). Поэтому функция (х—л^)™ является сплайном порядка т (степени т—1), и, следовательно, если до- добавить к ней любой другой сплайн порядка т с множеством уз- узлов, содержащим хо то их сумма будет иметь такой же вид. В действительности любой сплайн порядка т на множестве узлов х0, хх, ..., х„ можно представить в виде Ф (х) = р (х) + 2 «г (х-хгу?-1, <-= 1 F.6) где р (х) — полином степени т. — 1, a ar суть константы. Это впер- впервые установили Шёнберг и Уитни A953). Члены до r = k—1 в этой сумме определяют сплайн на промежутке с правым концом хк. Добавление /г-го члена не нарушает условий, которым сплайн дол- должен удовлетворять при хк, но делает разрывной производную фчя-идо в этой точке, и, таким образом, полином, отвечающий отрезку *?_! ^.х^.хк, превращается в полином, соответствующий отрезку
Составные кривые и сплайны 145 Один из методов вычисления Б-сплайнов основан на разделен- разделенных разностях для усеченной степенной функции (см. приложе- приложение 5). Приведем пример для кубического случая (т = 4); обоб- обобщение на сплайны более высокой степени очевидно. Рассмотрим функцию двух переменных F[x; у\=(у-х)\. Фиксируя первоначальную величину х, образуем четвертую раз- разделенную разность этой функции по переменной у, используя для этого множество узлов у — хг_^ x,_s, ..., xt. В теории раз- разделенных разностей известен следующий классический результат для любой функции /[*]: V '^' X/ + i где со (*) = (# —Xj){x—Xj + 1) ... (x—X/ + k), а штрих означает диф- дифференцирование по х (см., например, Хильдебранд, 1,956, с. 39). Для интересующей нас функции имеем ;_3, Xl_2, *,_,, xi]-^%r~i7t- F'7) Отсюда ясно, что правая часть представляет собой кубический сплайн г)) (х) по переменнойх, построенный по узламхг_4, хг_8, ...,л;г. Функция г|э(лг) является кубическим 5-сплайном Mti(x) по следу- следующим соображениям. (i) При х~^х{ все члены под знаком суммы в F.7) равны нулю и 'ф(ж) тождественно равна нулю, (И) При xs^Lxt_t, F[x; у] является чисто кубическим полино- полиномом от у на интервале х(-_4 ^ у^. xt. Как показано в приложе- приложении 5, четвертая разделенная разность любой кубической функции равна нулю и, следовательно, ty(x) равна нулю для Из F.7) видно, что S-сплайн нормирован так, что его инте- интеграл на отрезке хг_4 <лг<!л:г равен 1/4. Из вышесказанного ясно, что имеются два способа вычисления fi-сплайна для данной величины х. Первый — вычисление суммы F.7) и второй — формирование обычной таблицы разностей и вы- вычисление левой части F.7). К сожалению, оба этих способа мо- могут быть неудовлетворительны при вычислении из-за роста оши- ошибок округле'ния. Предлагаемый метод устраняет эту трудность, используя следующие рекуррентные соотношения, введенные не-
146 Глава 6 зависимо Коксом A972) и Де Буром A972): до ЛИ ..... (* — *»•- I*) ^й-fW-l Это дает возможность вычислить Л44,- (х) из таблицы MSii-i(x) столбцы которой содержат соответственно сплайны первого по- порядка (кусочно-постоянная функция), второго порядка (кусочио- линейная функция), третьего порядка (кусочно-квадратичная функция) и четвертого порядка (кусочно-кубическая функция). В-сплайн первого порядка будет ненулевым только на одном отрезке, где его величина постоянна. Если он нормируется обыч- обычным способом, его интеграл на этом отрезке будет равен единице и поэтому можно записать М- (Х)=\ (*'~*'-l)"l> i-1 ' \ 0 вне этого отрезка. На практике приведенная выше таблица может быть упрощена, поскольку из последнего соотношения видно, что некоторые ее элементы равны нулю. Например, если х{_2^.х<дг<д:/_1, то необходимо вычислить только ромбовидную таблицу так как все остальные элементы первоначальной треугольной таблицы равны нулю. Заметим, что, если требуется значение нормализованного В-сплайна Nu (х) — (х{—¦«/_«) Л14,, достаточно опустить деление на (х{—л:,_4) в последнем шаге вычислений. Так как величины в первом столбце неотрицательны и по- последующие столбцы вычисляются сложением неотрицательных
Составные кривые и сплайны 147 величин, то сделанное в последнем разделе утверждение, что Mmi (x) ^ 0 для всех х, является обоснованным. Преимущество метода Кокса—Де Бура состоит в том, что основная операция в F.8)—сложение. Вычисления, основанные на F.7), содержат вычитание, т. е. операцию, которая может вести к значительной потере точности, если разность двух величин мала. Кокс A972) дал детальный анализ погрешностей вычислений величин 5-сплайна по этому методу и разностному методу, осно- основанному на F.7). Метод, описанный здесь, более эффективен и точен. В частности, он более точен при вычислении сплайнов более высокой степени и (или) при значительной неравномерности распределения узлов. Наконец* обратимся к задаче интерполяции В-сплайнами, когда значения функции определены в узлах х0, хи ..., хп. Для про- простоты снова приводится пример кубической функции. Сначала, чтобы расширить множество узлов, нужно выбрать три дополни- дополнительных узла на каждом конце интервала интерполирования. Далее используется очевидное обобщение только что описанного метода для вычисления в каждом из первоначальных узлов х„, xlt ..... х„ значений трех ненулевых в этом узле В-сплайнов. Например, в узле х; ненулевые В-сплайны суть Mitl+i, M4i l+i и М4((.+8 (рис. 6.7). Их значения в xt могут быть найдены из следующей таблицы: О 0 0 О О M.,i+i(xt) 0 Ai,,?+,(*f) О О Если интерполируемое в х{ значение «сть г{, тогда из F.5) имеем Xt sss ср (Xtt ~~~* с • j.1 7W •, «¦ (х •} ~\~ с • JM[ t (Хт>\ *4~ с • j/W (x Л где коэффициенты с неизвестны. Каждому из (п+l) узлов х0, xit ..., хп будет соответствовать одно такое линейное уравне- уравнение. Но на расширенном множестве узлов имеется (п -f- 3) В-сплай-
148 Глава 6 нов и, следовательно, должно быть определено (п + 3) коэффи- коэффициентов сг, с2, ..., сп+3. Поэтому необходимо, как и раньше, иметь.только два дополнительных условия для полного опреде- определения ф (х). На практике они будут, как правило, значениями Рис. 6.7. производных. Например, если г = ф" (х0) = 0, то это приводит к соотношению Если подобное условие задано в хп, то необходимо иметь два дополнительных уравнения для замыкания системы. Производные В-сплайнов в подобных уравнениях могут быть вычислены мето- методом Де Бура A972) и методом Баттерфилда A976), обладающим лучшей вычислительной устойчивостью. Когда все коэффициенты в F.5) определены, можно вычис- вычислить линейную комбинацию В-сплайнов для любого значения х. Четыре Вгсплайна, отличные от нуля для данного значения пе- переменной х, находятся непосредственно из таблицы, основанной на F.8); затем прямо используется F.5). Более элегантной альтер- альтернативой является метод «выпуклых комбинаций» (Де Бур, 1972), но Кокс A976) недавно показал, что непосредственное вычисле- вычисление сравнимо с ним как по эффективности, так и по точно- точности. Для более подробного изучения теории В-сплайнов могут быть рекомендованы фундаментальные статьи Кокса A972) и Де Бура A972). Обобщение описанного здесь процесса интерполяции дано Коксом A975). Среди других статей, в которых описывается использование В-сплайнов в задачах интерполяции и построения кривых, можно назвать следующие работы: Шумакер A969), Кокс и Хейс A973),v. Хейс A974), Хейс и Холлидей A974), Кокс A976) и Де Бур A976).
Составные кривые и сплайны 149 6.3. Составные кривые, заданные параметрическими уравнениями Далее в этой главе будет рассматриваться задача построения кривой общего вида в трехмерном пространстве. С классической точки зрения такая кривая определяется как линия пересечения двух поверхностей. Хотя это определение используется в области числового управления1), оно не очень помогает в работе конст- конструктора, который обычно сначала .желает определить кривую и только затем воспользоваться ею для построения одной или более поверхностей. Другой способ определения кривой в пространстве, в котором введена декартова система координат, заключается в проектиро- проектировании этой кривой на плоскость (х, у) и на плоскость (х, z). Вычерчивая кривую по множеству точек (х{, yh z{), i = 0, 1,..., п, мы строим две плоские составные кривые, проходящие через точки (х{, yt) и (л;,-, г,-). Тогда для любого данного х можно вы- вычислить соответствующие значения у и г. Этот подход удовлет- удовлетворителен в ограниченном числе случаев, но если для х{ не вы- выполняются условия х0 < хх < ... < хп, то возникают трудности (например, если кривая поворачивает назад). Трудности также возникают, если dy/dx или dz/dx становятся бесконечными где- либо на кривой, так как методы, описанные ранее в этой главе, малопригодны для решения таких задач. От этих недостатков свободны методы, основанные на пара- параметрическом представлении кривых и поверхностей, преимущества которых отмечались в разд. 4.1.5. Хотя в дальнейшем мы будем иметь дело с пространственными кривыми, такого рода методы весьма подходят и для расчета плоских кривых, поэтому начнем с их приложения к двумерным задачам. Вначале рассмотрим конструирование составных кривых из различных типов сегментов кривых, параметрическое задание которых введено в гл. 5. Предположим, что нужно соединить сегмент гш (щ), 0 ^ Uj ^ 1 с сегментом г(?'(ы2), 0^«2^1. Обычно требуется, чтобы кривая была непрерывной в точке соединения и имела непрерывный наклон. Тогда г<1>A) = г(?>@) F.9) *.<»_-.-'• F10) х) Управление станком с помощью ЭВМ в отечественной литературе обычно называется числовым управлением.— Прим. перев.
Ой Глава 6 Как и в разд. 5.1.2, точка обозначает дифференцирование по па- параметру, Т есть единичный вектор общей касательной в точке соединения и а1( а2—скалярные константы, которые, как было показано выше, влияют на полноту сегментов кривой. Сложнее добиться непрерывности кривизны кривой. Если в качестве параметра взята длина дуги s, то кривизна х в любой точке кривой представляется в виде где N—единичный вектор главной нормали, а именно линии, Соединяющей рассматриваемую точку с центром кривизны. Если центр кривизны движется непрерывно при переходе через точку соединения, то х и N должны быть здесь непрерывны. Если N и Т непрерывны, то непрерывен вектор бинормали B = TxN и для него справедливо соотношение, выведенное в разд. 4.2.5: хВ-^. F.11) Оно удобно для анализа кривизны потому, что включает произ- производные только по параметру кривой, а не по длине дуги s. Тогда для непрерывности кривизны в точке соединения необходимо г<а» @) х г<2> @) _г»> A) х ifo A) |г<а>@I3 ~~ |г«>AI3 ' откуда, принимая во внимание F.10), получим Это соотношение удовлетворяется при (l). F.12) где jx—произвольный скаляр. Однако в наиболее часто исполь- используемых системах построения кривых ц берется равным нулю; тем самым ради простоты жертвуют одной степенью свободы. В даль- дальнейшем будет видно, что различные методы по-разному подходят к величинам касательного вектора о^ и аа. Важность этих вели- величин обсуждается ниже в разд. 6.3.6.
Составные кривые и сплайны 151 6.3.1. Составные кривые Фергюсона В разд. 5.1.2 было показано, что сегмент кривой в форме Фергюсона может быть записан через конечные точки и каса- касательные в них: г(м) = г@)A— Змг + 2м3) + гA)Cм?—2и8) + г@)(и —2м?—м8)+ + гA)(—и2 + и3), 0<м<1. F.13) Фергюсои A963, Г964) обращается к обычному методу получения иепрерывиости кривизны и подбирает г, г и г в точках соедине- соединения сегментов так, чтобы удовлетворились условия F.9), а± = аа в F.10), а также гшA) = гB)@). Вторые производные легко под- считываются из соотношения F.13), когда последнее условие записано в виде 6гA> @)—6гшA) + 2гA> @) + 4гA) A) = — 6г<2> @) + 6г(В> A)— —4г(?>@) — 2г(?>A). Это выражение упрощается с учетом условий гA)A) = г<2)@) и гшA) = г<2)@), хотя результат лучше записать в иных обозначе- обозначениях. Если строится составная кривая Фергюсоиа, проходящая через точки г0, гх, ..., г„, причем касательные в этих точках суть t0, tit ..., tn, то последнее уравнение дает i3(rf+1—г,.!), 1 = 1, 2, .... п-1. Это есть рекуррентное соотношение между касательными в трех последовательных точках. Достаточно задать t0 и tn, чтобы по- получить систему уравнений, из которой все остальные касательные можно определить через положения точек. Приписывание этих значений касательным обеспечит непрерывность кривизны состав- составной кривой. Ясно, что такая процедура сходна с процедурой вы- вычисления кубических сплайнов из разд. 6.2.2. Фактически состав- составная кривая Фергюсона является частным случаем параметриче- параметрического сплайна, который будет рассмотрен в разд. 6.3.4 и 6.3.6. Мы покажем, что метод Фергюсона хорошо подходит для автомати- автоматического построения кривой по определенной последовательности при условии, что оии расположеиы достаточно равиомерно. 6.3.2. Составные кривые Безье Сегмент Безье кубической кривой, введенный в разд. 5.1.3, описывается выражением г („) = (!_ ы)» Здесь г0, г,, г2 и г3 суть вершины характеристической ломаной, которая в некотором смысле аппроксимируется этой кривой. Безье
152 Глава 6 вводит меньше ограничений, чем Фергюсон, при выборе условий непрерывности внутри сегмента. В то время как подход Фергю- сона используется прежде всего для аппроксимации кривыми за- заданных точек, подход Безье дает больше возможностей выбора при построении кривых. Предположим, что конструируется сегмент кривой гB' (м2), нак- наклон и кривизна которого должны быть непрерывны в точке сое- соединения с существующим сегментом гA) (ы*). Так как г @) = г„ и гA) = г8, то первое требование есть if = ri». F.14) Так как г @) = 3 (п — г„) и гA) = 3(г8—ц), то для непрерывно- непрерывности угла наклона касательной требуется выполнение соотношения IW-ri^-IW'-O-T, F.15) где Of, aa суть длины векторов гA)A) и ^'(О) соответственно; теперь мы допускаем, что они имеют разное значение. Заметим, что если F.14) и F.15) удовлетворяются, то три точки if', if>=sif' и if" должны быть коллинеарны. Далее находим, что f<?> @) =. 6 (г«оа) —2ri2' Условие непрерывности кривизны в точке сопряжения, т. е. не- непрерывность в этой точке величины вследствие F.12) можно записать в виде где к—а2/щ. Тогда соотношения F.15) и F.16) дают 6 (if > - 2if> + if >) = 6№ (if > - 2if > + r<3») + 3(x (if > -if >), и, наконец, использовав F.15) для исключения tj2> и F.14) для исключения if", получаем 1). F.17) Тем самым if' определяется через if', if', r^1' и выбранные ве- величины I и [д,. Вершины if' и if' уже определены условиями непрерывности кривой и ее наклона, и поэтому, сохраняя непре- непрерывность кривизны, можно свободно выбирать лишь четвертую вершину if' характеристической ломаной сегмента г<2) («2). Если вычесть if' из обеих частей F.17), то правая часть может быть
Составные кривые и сплайны 153 выражена в виде комбинации (г^1)— г?") и (it1' — r[l)). Из этого следует, что точка г?2) должна быть компланарна с точками rf, г'1», г^' = Го2) й ri2), как показано на рис. 6.8. „га Рис. 6.8. Непрерывность кривизны между сегментами Безье. Точки г'1', г'1», г"', rj2' и г<22' должны быть компланарны для непрерывности кривизны, точки rf>t rS,1' и г[2) должны быть коллинеарны для непрерывности градиента. Используя эти результаты, можно построить составную кри- кривую Безье, обеспечив непрерывность кривой, ее наклона и кри- кривизны. Будем добавлять по одному сегменту, начав с одного конца. Для определения формы каждого нового сегмента выби- выбираются лишь к, \х и вершина rs, так как вершины г0, Г] и г2 непосредственно определяются через вершины предыдущего сег- сегмента после выбора X и ц. Только в плоском случае можно построить сегмент кубической кривой, задав направления касательных, значгения кривизны на' обоих концах и их положения. В плоскости вектор положения определяется двумячскалярами, направление единичной касатель- касательной—одним, и радиус кривизны тоже одним. Следовательно, имеется восемь скаляров, что в принципе достаточно для задания четырех двумерных радиус-векторов, определяющих вершины ха- характеристической ломаной. Сегмент был бы полностью определен, если бы могли задать подходящие длины касательных векторов на концах, и уравнения для этих длин суть полиномиальные уравнения четвертой степени. Такое уравнение не обязательно имеет действительные решения, т. е. сегмент с требуемыми свой- свойствами может и не существовать. Дальнейшие подробности можно найти у Безье A972, с. 123 и далее). В трех измерениях нельзя построить сегмент кубической кривой, так как для определения векторов положения и кривизны требуется по три скаляра, а для направления касательной—два. Следовательно, необходимо удов- удовлетворить шестнадцати условиям, но имеется только двенадцать
154 Глава 6 степеней свободы — по три скаляра для каждого из четырех век- векторов, определяющих характеристическую ломаную. Очевидно, что гладкость первого порядка составной кривой Безье получить легко, однако гладкость второго порядка требует довольно жестких условий. Больше свободы дают криволинейные сегменты Бернштейна—Безье более высокого порядка, описанные в разд. 5.1.4, причем анализ в этом случае проводится примерно так же, как и в данном разделе. Для дальнейшего знакомства с методом Безье отсылаем читателя к работам Форреста A972b) и Гордона и Ризенфельда A974b). 6.3.3. Кривые, составленные из рациональных квадратичных и кубических сегментов Сегмент рациональной квадратичной кривой описывается урав- уравнением 1—и)*+2w1r1u(l —и)+wiT2u* n«--i,<-l /с iov u)*+2wlU(l-u) + w2u* ' °<«<1- FЛ8) Как указывалось в разд. 5.2.1, это плоская коническая кри- кривая, которая аппроксимирует «ломаную» с вершинами в точках г0, Г] и г2. Первая и вторая производные по и при и — 0 и и = 1 имеют вид г(О) = 2й(Г1_Го), Ю)_2Ь(Г,_Г1), Используя F.11), находим, что кривизны в конечных точках оп- определяются из следующих уравнений: Здесь fe2 = w0w2/w2, как и в разд. 5.2.1. Как и для кривых Безье, непрерывность кривой и ее наклона в точке сочленения сегментов rA) (Mj) и гB) (ы2) достигается коллинеарным расположением трех точек г*!1', Гг1' = if" и г[2). Непрерывность кривизны требует, чтобы хA)A)ВA)A) и хC) @) В<?'@) были равны; следовательно, f») -IP-1?)
Составные кривые и сплайны , 155 Для того чтобы векторы в обеих частях F.19)'совпадали по на- направлению, сомножители векторных произведений должны лежать в плоскости, перпендикулярной направлению вектора В в точке соединения. Таким образом, пять точек rtf\ r[ly, r^x> = rj,2), ri2) иг^8> должны быть компланарны, что не удивительно, так как каждый сегмент является плоской кривой. Абсолютная величина левой части F.19) может быть подогнана с помощью константы ?A). И наконец, можно построить составную рациональную квадратич- квадратичную кривую, обеспечив непрерывность наклона и кривизны. Это будет плоская кривая, и для каждого вновь добавляемого сег- сегмента коистаита k должна выбираться так, чтобы соотношение F.19) удовлетворялось в точке сочленения. Рассмотрим теперь рациональную кубическую крив'ую, сегмент которой определяется уравнением г /,Л _ »№> (I—t F.20) Из разд. 5.2.2 известно, что этот сегмент аппроксимирует лома- ломаную с вершинами г0, ги г2 и г8. При и — О и м= 1 находим г@)=.3^(г, —г.), r(l) = 3^(r8-r2), Непрерывность кривой и ее градиента в точке сочленения требует Коллинеарности трех точек г?\ г^1) = г{,2) и г{2). Рассуждая так же, как и в случае рациональной квадратичной кривой, находим, что для непрерывности кривизны в точке сочленения требуется вы- выполнение равенства (r.2,_r,2))x(r<2)_r,2)) , —Л1 |ГB)_ГB)|3 » \°-гЧ I 1 0 | где Kx^WqWJwI и /C2 = a>iaya$. Отсюда следует, что точки ril), Га1', r81) = rj2), i^2) и г22) должны лежать в одной плоскости, хотя точки г?° и 42) могут и не лежать в этой плоскости; таким об- образом, составная кривая теперь может быть неплоской. Модули обеих частей F.21) можно уравнять с помощью подбора констант К. 2 и /Cj. Заметим, что Ki и /С2 могут подбираться по отдель- отдельности для каждого сегмента изменением весов ш0, wlt w2 и ws. Это позволяет получить заданную кривизну иа обоих концах сегмента, и тем самым теперь возможно поместить сегмент в раз-
156 Глава 6 рыв между двумя заданными сегментами, согласовав положение, наклон и кривизну в обеих получившихся точках сочленения. Метод построения кривой, основанный на использовании ра- рациональных кубических сегментов,, дан Ауджа A968). 6.3.4. Параметрические сплайны Сплайны в двумерном случае рассматривались в разд.' 6.2.2. Если использовать параметрический подход, то можно с неболь- небольшими изменениями применять методы, описанные ранее, и в трех- трехмерном случае. Для заданного множества точек (хс, у,, zt), i = О, 1, ..., п, можно построить три отдельные " сплаиновые кривые, рассматривая их как функции некоторого параметра и: Эти кривые интерполируют множества точек (ис, xt), (и,., yt) и (и,-, z,) соответственно. Как и ранее, нам нужны некоторые до- дополнительные условия на значения производных на концах кри- кривой. Этот вопрос будет рассмотрен в разд. 6.3.6. После того как вычислены эти сплайн-функции, любое заданное значение пара- параметра и определяет точку на искомой пространственной кривой; Использование сплайнов дает кривую с непрерывной кривизной; другое преимущество заключается в том, что не требуется ин- информации о производных во внутренних точках. Сплайны могут быть вычислены непосредственно, т. е. методом, описанным в разд. 6.2.2, или на основе В-сплайнов (разд. 6.2.4). Очевидно, что параметр и лучше всего было бы выразить через длину дуги, но на практике это ведет к трудностям: мы не можем установить длину дуги между точками, пока не вычислим кривую, а для того чтобы вычислить кривую, нужно знать длину дуги. Наиболее естественный альтернативный подход—использовать накопленную длину хорды, т.е. положить ио = О и определить i, i = 0, I, 2, ..., n —1, где d1+i = [(*,+i—x,-J+ («/,-+i—y'iJ + (zt+i—г,J]'/2. С вычисли- вычислительной стороны это более удобно. Можно начать с кривой, пара- параметризованной таким способом, и затем, используя итерационный процесс, получить кривую, параметризованную по длине дуги, но на практике разница между этими, подходами обычно невелика. Другой прием заключается в том, чтобы приписать и в узлах последовательные целые (или другие равноотстоящие)- значения, но это, как указывалось в разд. 6.3.6, может привести к ослож- осложнениям, если в физическом пространстве узлы расположены очень неравномерно.
Составные кривые и сплайны 157 Параметрический подход может быть также использован для определения плоской кривой; тогда нужно построить х = х(и) и У = У{и). При параметри- параметрическом методе ни в двумер- ном, ни в трехмерном слу- случае не возникает трудностей с вертикальной касательной. Поэтому можно строить замк- нутые кривые и кривые, со- содержащие петли. Алберг, Нильсон и Уолш A967) при- приводят результаты аппрокси- аппроксимации единичного круга ку- кубическими периодическими сплайнами х(и) и у (и) при использовании длины хорды в качестве параметра. Для Рис 69 параметризация онлайновой периодического сплайна не кривой с помощью длины хорды, требуется дополнительных условий на концах, так как значения функций и ее первых двух производных подбираются из условия совпадения в концевых точках. Когда точки располагались на равном расстоянии по периферии круга, ошибки в вычислении радиуса оказались сле- следующими: Число отрезков |6г| 4 . 0.01 8 0.00112 12 0.000165 Этот пример показывает, что применение параметрических сплай- сплайнов весьма эффективно даже при наличии вертикальных каса- касательных. На самом деле можно улучшить данные, приведенные выше, если кривизну в узлах сращивать с помощью уравнения F.12), а не простым подбором вторых производных по Фергюсону. В ка- качестве примера можно привести аппроксимацию дуги окружности из разд. 5.1.5. Если эту кривую отразить зеркально сначала от- относительно оси х, а затем относительно оси у, то получится еще лучшая аппроксимация единичной окружности. Фактически ап- аппроксимация достигалась использованием а, = а2 в F.12) и на- нахождением значения \х, которое минимизирует максимальное отклонение от круга, тогда как результаты, приведенные Албергом, Вильсоном и Уолшем соответствуют случаю [д, = 0. Те же авторы сообщают в своих выводах, что тенденция к ос- цилляциям, возникающая при аппроксимации сплайнами функций с разрывами кривизны (см. с. 141), менее выражена для пара- метрических' сплайнов, чем для непараметрических.
158 Глава 6 6.3.5. Кривые, построенные с помощью Б-сплайнов Дадим краткий обзор метода построения кривых с помощью Б-сплайнов; этот класс кривых подобен классу кривых Безье и обладает аналогичными преимуществами при проектировании. Ограничимся здесь случаем кубических х сплайнов; более подробное и общее обсуждение дается Гордоном и Ризенфельдом A974а). Используем обозначения разд. 6.2.3. Пусть Ni{(u)—нор- Ni{(u)—нормализованный кубический Б-сплайн, определенный на подходящем расширении множества узлов ut, занумерованном целыми значе- значениями («,- = ?; t = 0, 1 п), и не равный нулю при м,-_4 < < и < иг Примем, что п^З. Расширение первоначального мно- множества узлов наиболее удобно сделать, положив и_3 = м_2 = u_t = 0 и «„+1 = м„+2 = м„+з = «- Тогда дополнительно введенные отрезки имеют нулевую длину, и первоначальные первый и последний узлы становятся кратными узлами; в данном случае их кратность равна четырем. Алгоритм Кокса—Де Бура для расчета Б-сплай- нов (разд. 6.2.4) позволяет учитывать кратные узлы, если при- принять, что 0/0 = 0. Анализ показывает, что введение кратного узла должно умень- уменьшить порядок гладкости еплайна в этом узле. Таким образом, хотя кубический сплайн непрерывен вплоть до вторых производных в простом узле, он обычно имеет разрывную вторую производную в двойном узле, разрывную первую производную в тройном узле и разрывен сам в четырехкратном узле. Этот эффект иллюстри- иллюстрируется на рис. 6.10, где показан полный набор кубических Б-сплай- 12 3 Рис. 6.10. В-сплайны на -*¦« нов, которые могут быть построены на расширенном множестве узлов 0, 0, 0, 0, 1, 2, 3, 4, 5, 5, 5, б. Видно, что Nu@), #„@), Ni2 @), а также Ntl @), Af41 @) и Nti @) отличны от нуля; в крат- кратном узле и = 5 имеется тот же тип поведения. Для обозначения
Составные кривые и сплайны 159 производных здесь используются точки, так как ниже и будет использоваться как параметр. В разд. 6.2.3 указывалось, что любой кубический сплайн ф (и) на множестве узлов 0, 1, 2, ..., п может быть выражен через кубические В-сплайны в виде где ct суть скалярные коэффициенты. Введение кратных узлов оставляет этот результат в силе., Если имеется множество векто- векторов г0, г1( ..., г„, то можно использовать их для построения векторной аналогии последнего уравнения, положив ?+1(«). F.22) Так как имеется (п + l) векторных коэффициентов, то необходим набор из (я + 1) В-сплайнов, которые определены на расширенном множестве целочисленных узлов 0, 0, 0, 0, 1, 2, ..., (п—3), (га—2), (п—2), (п—2), {п—2). Для 0<ы<я—2 формула. F.22) является уравнением кривой, образованной кубическими В-сплай- нами. Некоторые простейшие свойства такой кривой следуют из тождества 24,,+г(), <<—2 F.23) г=о (см. Гордон и Ризенфельд A974а)). При м = 0 соотношение F.22) дает Как показывает рис. 6.10, только В-сплайн Ы&(и) при и = 0 от- отличен от нуля; из F.23) следует, что W4i@)=;l. Таким образом, г(О)-г.. • F.24) Кроме того, из F.22) следует, что Дифференцируя F.23), получаем
160Глава 6 и так как в этой сумме только Na (и) и Ni2 (и) отличны от нуля при м = 0 (рис. 6.10), то и, следовательно, ^-г0). F.25) Из F.24) и F.25) видно, что кривая, построенная с помощью кубических fi-сплайнов, имеет такие же свойства, как и кубиче- кубическая кривая Безье. Например, если r0, rit ..., г„—вершины не- незамкнутой ломаной, то кривая, построенная на основе 5-сплайнов, начинается в г, и ее касательная в этой точке имеет направление (гг—г0). Аналогичное утверждение верно и для другого конца кривой, и фактически ее можно считать аппроксимирующей ука- указанную ломаную, подобно тому, как кривая Безье аппроксимирует свою характеристическую ломаную. Преимущество кривой, постро- построенной с помощью б-сплайнов, заключается в том, что изменение одной из вершин влечет - за собой изменение только четырех от- отрезков кривой; таким образом, .местная корректировка может про- проводиться без перестройки всей кривой. Далее, с помощью В-сплай- нов можно построить кубическую кривую, аппроксимирующую ломаную с любым желаемым числом сторон, причем свойства fi-сплайнов обеспечивают непрерывность самой кривой и ее первой и второй производных во всех ее точках. В противоположность этому если ломаная имеет больше трех сторон, то метод кубиче- кубических кривых Безье требует использования составной кривой с со- сопутствующими трудностями подгонки кривизны в точках соедине- соединения сегментов для получения нужной гладкости. Кубические кривые, построенные с помощью В-сплайнов, об- обладают некоторыми интересными геометрическими свойствами. Так как для любого нецелого значения и только четыре члена в F.22) могут быть ненулевыми, то каждый отрезок кривой определяется четырьмя последовательными вершинами своей задающей ломаной. Согласно F.23), коэффициенты при четырех соответствующих векторах в формуле F.22) положительны и их сумма равна еди- единице. Таким образом, г (и) для любого и является средним взве- взвешенным этих четырех векторов, и весь отрезок должен лежать внутри их выпуклой оболочки. Два двумерных случая приведены ниже на рис. 6.11. В трех измерениях выпуклая оболочка пред- представляет из себя тетраэдр, определяемый четырьмя вершинами. Как объяснялось в 5.1.3, криволинейные сегменты Безье обладают подобным свойством. Важным следствием этого свойства выпуклой оболочки является вырождение ее в прямую линию, если четыре последовательные вершины ломаной коллине^рны; соответствующий сегмент постро-
Составные кривые и сплайны Отрезок В-сшйня в-сплайна /г+2 Рис. 6.11. Свойство выпуклой оболочки кубической S-сплайновой кривой. Рис. 6.12. Рис. 6.13. 6 А. Фокс, М. Пратт
162 Глава 6 енной с помощью В-сплайнов кривой должен быть прямолинейным. Поэтому такие кривые могут содержать прямолинейные отрезки, что весьма полезно для проектирования. В двумерном случае легко нарисовать соответствующую куби- кубическую кривую для любой данной ломаной. Как уже отмечалось, конечные точки кривой и ломаной совпадают, а касательные к кривой в этих точках имеют направление первой и последней сторон ломаной. Имеются еще два полезных факта: 1) кривая проходит вблизи средней точки каждой стороны ломаной, за иск- исключением первой и последней сторон, и 2) при k = 2, ..., п — 2 кривая проходит через точки ~у rk ~г -g- I " (rk-irrk + i)\ • Эти точки, как показано на рис. 6.12, лежат на одной трети рас- расстояния от гк на прямой, соединяющей rk с серединой отрезка между rft_! и rft+1. Пользуясь этой информацией и свойствами выпуклой оболочки, можно быстро нарисовать кривую, аппроксимирующую данную ломаную, как показано на рис. 6.13. Здесь крестиками отмечены точки, приближенное положение которых определено по указан- указанным свойствам. Существует много полезных модификаций и обобщений изучен- изученного нами класса кривых, построенных из В-сплайнов. Во-первых, можно сконструировать аналогичные замкнутые кривые, используя замкнутые ломаные. В этом случае множество узлов циклично (т. е. «„=«„, un+i «! и т. д.), и можно обойтись без кратных узлов. Кривая может быть построена целиком из В-сплайнов, подобных показанным на рис. 6.10 функций Nti(u) или Nib(u), сдвинутых на целое число узлов вдоль оси и. Вторая возможность состоит в построении В-сплайнов на множестве неравноотстоящих узлов. Гордон и Ризенфельд A974а) исследовали эту возможность, свя- связывая расстояния между узлами с длинами соответствующих сто- сторон ломаной. Полученные таким образом неоднородные кривые весьма напоминают соответствующие однородные кривые, исключая случаи значительного неравенства длин сторон ломаной. Разрывы кривизны или направления кривой можно получить, если допустить совпадение двух или ^рех вершин ломаной; это дает дополнитель- дополнительную гибкость при конструировании. Третьим обобщением является использование В-сплайнов степени выше третьей, хотя уже в ку- кубическом случае многообразие возможностей огромно. Процедура проектирования, предложенная Гордоном и Ризен- фельдом, состоит из следующих этапов: (i) конструктор определяет множество точек, лежащих при- приблизительно на желаемой кривой;
Составные кривые и сплайны 163 (и) вычислительная машина (ЭВМ) выдает интерполирующий сплайн и выполняет обратное построение для определения ломаной, которая соответствует интерполированной кривой; (ш) теперь конструктор имеет дело с ломаной; сдвигая ее отдельные вершины, он может модифицировать первоначальную интерполированную кривую так, чтобы получить более подходящую форму. 6.3.6. Параметризация и касательные векторы Большинство рассмотренных параметрических кривых строится из сегментов с параметром и, изменяющимся от 0 до 1 внутри каждого сегмента. Исключение составляют параметрические сплайны и кривые, построенные из Б-сплайнов, у которых параметр и равен нулю на одном конце кривой в целом и принимает все большие значения в узлах (т. е. точках. соединения сегментов) по мере продвижения к другому концу. Исследуем отношения между кри- кривыми, которые параметризуются этими двумя способами. Сначала рассмотрим один параметрический сегмент кубической кривой, поведение которого типично для параметрического поли- полиномиального сегмента вообще и который мы запишем в форме Фергюсона: з «•(«)= 2 а/и', 0<и<1. Будем говорить, что параметрическая «длина» этого сегмента равна единице. Как показано в разд. 5.3, наиболее общее преобразование параметра, которое сохраняет степень многочлена, это линейное преобразование; запишем его в виде и' = Ьи^с, где Ь > 0 и с суть константы. Тогда ( ? /¦о /»о где aj является линейной комбинацией &j. Степень остается третьей, но интервал изменения и', соответствующий значениям 0<;и<; 1, есть с<1и' ^6 + с, и «параметрическая длина» сегмента становится равной Ь. Так как b и с можно выбрать любыми, то мы можем описать сегмент Фергюсона как сегмент кубической кривой с про-1 извольными границами изменения параметра. Ясно, что обратная операция также возможна1'. 1> Как упоминалось в разд. 5.3, рациональный параметрический сегмент кривой- сохраняет свою природу при дробно-лииейиом преобразовании и' = = (M + Ci)/F2«+Ca)- Здесь мы ие будем на ЭТОМ останавливаться, ио Форрест A968) дает дальнейшие детали,
164Глава 6 Кроме того, замена параметра влияет на длины касательных векторов. Ясно, что где точки обозначают дифференцирование по указанной перемен- переменной. Тогда, умножая параметрическую длину сегмента на Ь, мы умножаем касательный вектор на Ь~х. Так как г(и') = Ь~Ч{и), то вторая производная умножается на Ь~% и т. д. В частности, преобразование параметра изменяет значения производных в кон- концевых точках и тем самым влияет на гладкость межсегментных сочленений составных кривых. Исследуем, что происходит при замене параметра с составной кривой второго порядка гладкости. Для начала заметим, что при b—l налицо простой сдвиг параметра и'= и-\-с, который остав- оставляет значения производных неизменными. Теперь положим и' = и, и' = и+1, и' = м + 2 соответственно в первом, втором, третьем и т. д. сегменте; тем самым составная кривая из п сегментов описана с помощью одного параметра и', который возрастает от 0 до п, принимая последовательные целочисленные значения в узлах. Поскольку первоначальные значения производных остались неиз- неизменными, то сохранились условия гладкости межсегментных со- сочленений и ясно, что кривая представляет собой параметрический сплайн такого же типа, как описанный в разд. 6.3.4, но опреде- определенный на целочисленном множестве значений параметра в узлах: и'=0, 1, 2, ..., п. Ситуация изменится, если первоначальная кривая Фергюсона будет параметризована иным, более общим способом. Полагая w = btu-\-Ci на каждом i-м отрезке или сегменте, можнф получить непрерывность до вдоль всей кривой, приравнивая значения этой переменной на конце каждого сегмента и в начале следующего. В результате получям равенства bt+c{=*c{+i, 1 = 1, 2, ..., п— 1. При наложении этих условий вновь параметризованная кривая будет иметь в узлах значения параметра cit ct, с8 в то время как «параметрическая длина» i-ro сегмента есть bt=cl+i—с{. Как по- показано выше, первоначальные первые и вторые производные на этом сегменте умножаются на bj1 и bf2 соответственно, и, сле- следовательно, непрерывность модулей векторов производных будет нарушена, если константа Ь{ не одинакова для разных сегментов. Если первоначальная кривая описывается с помощью одного па- > раметра, принимающего не равноотстоящие значения в узлах, то сохраняется непрерывность только направления вектора касатель- касательной, но не его длины. Отношение значения производной (т. е. длины касательного вектора) на правом конце сегмента i к ее
Составные кривые и сплайны165 значению на левом конце сегмента f-fl будет равно bi+ilbt для г(ш) и (b{+l/b{y для г (да). На данном множестве узлов только те кривые, для которых выполняются именно эти Соотношения, связывающие значения производных на концах сегментов й Их параметрические длины, эквивалентны первоначальной кривой Фергюсона. Например, у па- параметрического сплайна, построенного на Том же множестве узлов, но со значениями параметра в узлах w = Clt с2, с8, ..., отношение длин касательных векторов при переходе через каждый узел равно единице. Это не согласуется с приведенными выше требованиями и поэтому такая кривая будет отличаться геометрически от ис- исходной. Из сказанного ясно, что непрерывность модулей векторов про- производных в точках сочленения сегментов составной кривой больше зависит от параметризации, чем от реальной геометрии кривой. Геометрически бессмысленно настаивать на таком типе непрерыв- непрерывности, так как составная кривая, имеющая непрерывность только для направления касательной, может всегда быть параметризована по-иному с тем, чтобы и длина касательного вектора стала также непрерывной. Первоначальная и новая кривая будут геометрически идентичны. Однако с практической точки зрейия любая система, которая подгоняет производные в узлах и по направлению, и по величине, упрощает дело, освобождая пользователя от определения отношений длин касательных векторов. Истинный геометрический смысл длины касательного вектора проясняется только сравнением с какой-либо эталонной длиной. Например, предположим, что г (и), О ^ и ^ 1 является сегментом кривой; пусть s обозначает длину дуги кривой. Тогда и так как dr/ds есть единичный вектор (сМ. разд. 4.2.3), то | г (и) | =а = ds/du. Тогда, если S есть полная длина дуги сегмента, имеем Из правила трапеций следует грубая оценка длины дуги. Теперь предположим, что векторы г@) и гA) фиксированы, равно как направления векторов г@) и гA). Будем брать за эталонную длину So = 1,т. е. приближеннуюдлинудугипри|г(О)|= = |f A)|=Ь Ясно, что умножение обеих длИн касательного век- вектора йа р > 1 увеличивает приближенную длину дуги в 0 раз.
166 ' Глава 6 Так как концевые точки фиксированы, это редет и к увеличению полноты кривой. Если р велико, есть опасность, что кривая опи- опишет петлю, чтобы вобрать сильно возросшую длину дуги (см. рисунки в разд. 5.1.2). С другой стороны, если Р<Д, длина ду- дуги будет меньше, чем So, и кривая приблизится к своей хорде гA)-г@). В действительности длина этой хорды более удобный эталон, чем So. Можно показать, что в плоском кубическом сегменте петли не будет, если каждая из проекции г@) и гA) на направ- направление хорды не превосходят утроенной длины хорды. Для неп- неплоского сегмента понятие петли менее определенно; в какой-ни- какой-нибудь проекции такой кривой всегда будет петля.. Тем не менее могут возникнуть проблемы в определении порции поверхности, если предыдущие ограничения нарушены для какой-либо ее гра- граничной кривой. Далее предположим, что |'г@)| и |гA)| изменяются незави- независимо друг от друга. Так как кривизна х определяется по формуле где В—вектор бинормали, то можно ожидать, что кривизна при и = 0 невелика, если | г @) | велико, и наоборот. В этом случае увеличение |г{0)| при постоянном |гA)| может выпрямить часть сегмента кривой вблизи начальной точки г@). То же самое мо- может произойти вблизи конечной точки гA), если |гA)| увели- увеличивается, в то время как |г @) | остается постоянным. Эти предположе- предположения подтверждаются на опыте (снова см. рисунки в разд. 5.1.2). Для иллюстрации этих положений рассмотрим сплайн-кривую г (и), параметризованную так, что«*=0, 1, ..,« в узлах, кото- которые физически расположены очень неравномерно. В частности, рассмотрим, что произойдет, когда длины хорд /-го и (t-f* 1)-го сегментов равны d{ и d,+1 соответственно, причем dt<^di+i. Длина вектора касательной к сплайну непрерывна в узле и = / и, как видно из предпоследнего абзаца, поведение двух сегментов кри- кривой будет в некоторой' степени зависеть от отношения | г (I) \/dt и lr@|/^+i> Если первое отношение велико, а второе мало, это вполне может привести к появлению петли, за которой следует линия, очень близкая к прямой. Такое поведение, по-видимому, неприемлемо для практических целей; оно происходит из-за того, что при аппроксимации значения параметра в узлах брались рав- равноотстоящими, в то время как физически узлы расположены очень неравномерно. Один из путей преодоления этой трудности состоит в том, чтобы пренебречь непрерывностью длины вектора касатель- касательной, взяв |г(и)| малым непосредственно слева от узла u = i и большим непосредственно справа от него., фактически можно за,-
Составные кривые и сплайны ^_^ 167 т тем кривую параметризовать заново', чтобы опять получить неп- непрерывность длины вектора касательной. Тогда окажется, что получившееся распределение значений параметра в узлах отра- отражает действительное физическое распределение узлов. Поэтому параметризация по длине хорды или по какой-либо сходной ме- мере физического распределения узлов рекомендуется в случае их неравномерного распределения. G другой стороны; составные кривые Фергюсона и Безье или однородно параметризованные сплайны'обычно дают приемлемые результаты, когда узлы рас- расположены достаточно равномерно. Наконец, рассмотрим граничные условия, необходимые для полного определения параметрических сплайнов на данном мно- множестве узлов. Как было указано в разд. 6.3.4, такая кривая эквивалентна трем плоским сплайнам. Поэтому необходимы три скалярных условия, которые часто комбинируются в одно вектор- векторное условие на каждом конце. Из четырех приведенных в разд. 6.2.2 методов определения граничных условий для плоских сплайнов, первый, третий и четвертый легко распространяются на парамет- параметрический случай. Они требуют соответственно, чтобы г(«) = 0 в концевых точках, г (и) было квадратично на концевых отрез- отрезках или г (и) изменялось линейно на первой и последней паре отрезков. Однако второй из методов разд. 6.2.2, а именно опре- определение касательных на концах, наталкивается на трудности в параметрическом случае. Часто легко определить желаемое нап- направление для концевой касательной измерением на чертеже или модели. Однако поскольку необходима векторная величина, то нужно задать также и длину вектора касательной. Из того, что было сказано выше, следует, что выбор слишком малого значе- значения этой длины может привести к чрезмерной кривизне вблизи и = 0, а выбор слишком большого значения — к нежелательной выпуклости и даже петле. Если угол между касательной и хор- хордой на конце первого промежутка мал, надежнее всего выбрать | г @) | равным параметрической длине сегмента или несколько большим. Для больших углов лучше приписать это значение проекции г @) на направление хорды, а не самому модулю 6.4. Еще две системы, имеющие практическое значение В этом разделе будут кратко описаны две широко используе- используемые на практике системы построения кривых, которые хотя и не подходят точно ни под один "из заголовков предыдущих разде- разделов, но обладают интересными математическими свойствами.
168 , Глава $ Вначале рассмотрим АРТ-понятие TABCYL. TABCYL (табу- (табулированный цилиндр)—это поверхность, образованная движением прямой линии (образующей) вдоль плоской кривой (направляю- (направляющей), причем образующая всегда параллельна некоторой фикси- фиксированной прямой. Кривая определяется с помощью узлов и пред- представляет собой последовательность сегментов плоских кубических кривых, каждый из которых покрывает интервал между двумя последовательными узлами, уравнение каждого сегмента дается в локальной системе координат с началом в первом из двух уз- узлов (в порядке ввода данных), причем положительное направле- направление оси независимой переменной совпадает с хордой сегмента (рис. 6.14). Порядок SSoda данных о точках Рис. 6.14. Местная система координат в системе определения кривых TABCYL, Уравнение каждого сегмента кубической кривой имеет вид свободный член отсутствует, так как т)@) = 0. Если d—длина хорды сегмента, то необходимо также, чтобы Tj(d) = O; отсюда следует соотношение у=—(ad2 + $d). Таким образом, для пол- полного определения сегмента остается найти аир. В широко используемом варианте TABCYL приближенные величины касательных на концах ^'@) и <г\'(d) вычисляются че- через положения соседних узлов. Затем, потребовав, чтобы в кон- концевых точках кривая t\ (I) имела эти наклоны касательных, опре- определяют аир. Наконец, наклоны во внутренних точках подго- подгоняются с помощью итераций, ведущихся до получения непрерыв- непрерывности кривизны кривой TABCYL. .TABCYL, следовательно, является примером сплайнового ме- метода, использующего переопределение местных осей координат для преодоления трудностей, возникающих у непараметрических сплайнов, когда встречаются большие или бесконечные наклоны. Два дополнительных условия для определения сплайна могут
Составные Крийь16 и сплайны 169 быть заданы пользователем в виде условий на касательные в концевых узлах. Если эти условия не ставятся, то программа будет давать квадратичную, а не кубическую кривую на началь- начальном и конечном отрезках. Это устраняет две Степени свободы (выбор коэффициента а для этих отрезков), и тем самым сплайн становится полностью Определенным. Хотя процедура TABCYL пригодна только для построения плоских Кривых, в 1976 г. То- Томас описал метод, распространяющий этот общий подход на Трехмерный сЛуЧай. Перейдем теперь к рассмотрению процедуры построения кри- кривых KURGLA. Она была развита Мелумом как часть его систе- Рис. 6.15. Сегмент с линейной вариацией кривизны. мы проектиробания кораблей AUTOKON (Мелум, 1969, Мелум и Сёренсон, 1971), которая с Тех пор получила применение и в других отраслях промышленности (Бейтс, 1972, Эммерсон, 1976). KURGLA, подобно TABCYL, строит только плоские кривые, хотя в более поздней работе (МёЛум, 1974) намечен возможный подход к построению трехмерных кривых. Как упоминалось в разд. 6.2.2, изогнутый физический сплайн при наложении на него ограничений Примет форму, минимизиру- минимизирующую его среднюю квадратичную кривизну. Мелум использовал вариационный анализ, чтобы показать, что между ограничиваю- ограничивающими точками кривизна и изменяется линейно по отношению к некоторому фиксированному направлению, лежащему в плоскости кривизны. Это направление можно выбрать совпадающими с хор- хордой, соединяющей последовательные узлы, Т. е. точки, в которых наложены ограничения (рис. 6.15). ' > До этого места анализ был точным, но для использования криволинейных сегментов этого типа в процедуре подгонки кри- кривой необходимы некоторые аппроксимации. Мелум A974) описы- описывает два варианта KURGLA следующим образом.
170 Глава 6 В методе KURGLA I линейное изменение кривизны аппроксими- аппроксимируется кусочно-постоянным (рис. 6.16). Каждый горизонтальный шаг с постоянной кривизной соответствует дуге окружности. Процедура содержит подпрограмму, которая подсчитывает число дуг, необходи- необходимых для того, чтобы расхождение между теоретической кривой и ее аппроксимацией дугами было бы приемлемым. Центры и радиусы дуг окружности вычисляются таким образом, чтобы аппроксима- аппроксимация была непрерывной, обладала непрерывностью наклона if имела заданную кривизну в узлах, соответствующих ее концевым точ- точкам. Рис. 6,16. Кусочная аппроксимация линейного изменения кривизны. Криволинейные сегменты этого рода затем используются для по- построения составных кривых, которые непрерывны и имеют заданные значения кривизны во всех узлах. Эти значения устанавливаются заранее. В общем случае оказывается, что составная кривая имеет разрывы наклона в узлах; пробные значения кривизны модифи- модифицируются в итерационном процессе до тех пор, пока изломы кри- кривой в узлах не исчезнут. Окончательная кривая всюду непрерыв- непрерывна и имеет непрерывность наклона касательной, а ее кривизна изменяется ступенчато. Конечно, разрывы кривизны могут быть сделаны произвольно малыми, если взять достаточно большое число дуг окружности при аппроксимации каждого отрезка. Метод KURGLA II в сущности аппроксимирует длину хорды длиной дуги на каждом отрезке. В этом случае каждый сегмент кривой имеет кривизну, которая изменяется линейно с длиной дуги. Имеется лишь одна кривая с таким свойством— это спи- спираль Корню, которая показана на рис. 6.17. . На этом чертеже координаты точек кривой задаются парамет- параметрически соотношениями С (s) = J cos (l/2no>)da, ! = ] sin A/2)jut2) do, о
Составные кривые и сплайны 171 где s—длина дуги. C(s) и S(s) — интегралы Френеля, применяе- применяемые в основном в теоретической оптике. Система KURGLA II выбирает подходящую часть спирали для каждого отрезка состав- 0.6 0.4 0.2 -0.6 -0.4 -0.2. ' ' I 0.2 0.4 0.6 Рис. 6.17. Спираль Корню. ной кривой, изменяет масштаб и поворачивает ее так, чтобы окончательная кривая была непрерывной и имела непрерывные наклон и кривизну. Практические вычисления спиральных сег- сегментов Корню основаны на хорошо известных аппроксимациях интеграла Френеля (см., например, Абрамовиц и Стиган A964)). Пэл и Натбурн A977) также описали алгоритм синтеза двумер- двумерной кривой с использованием сегментов этого типа. Появление спирали Корню в таком контексте может быть легко объяснено на основе разд. 1.2.4, где показано, что если взять в качестве параметра длину дуги s и задать кривизну х (s) —>¦ 0, то любая кривая может быть описана системой диф- дифференциальных уравнений x+*(s)y = 0) y-K(s)x = l Для простоты допустим, что х@) — у@) — у@) = к@) = 0, лг(О)= 1. Другие граничные условия приведут просто к перемещению и/или масштабированию основной кривой. Умножая второе уравнение на i и добавляя его к первому, получим г— i г@) = г@) =
172 Глма 6 где Это линейное уравнение первого порядка для г и, следовательно, Для рассматриваемого типа кривой можно записать и (s) = as, где а—вещественная константа. В этом случае Интегрирование по s от s = 0 до текущего значения аргумента дает S S г= J el\'niaatdo = J [cos (V2aw2) +1 sinA/2aor2)] d<J, о о . откуда Эта формула выражает лиг/ через параметр s; выбор а = п дает основную кривую, изображенную на рис. 6.17. Существует важное различие между сегментами плоской кри- кривой такого типа, на которых основаны алгоритмы KURGLA, и ранее описанными сегментами полиномиальных кривых. Сегмент у=у(х) в методе KURGLA в принципе имеет кривизну которая изменяется линейно по х. Предположим, что на одном и том же интервале оси х определены два таких сегмента, уг (х) и у2(х). Тогда не трудно видеть, что для произвольных констант а, р линейная комбинация щх (х) + Руа (х) не обладает свойством линейности изменения кривизны. Поскольку линейная комбина- комбинация сегментов KURGLA не является сегментом KURGLA, неп- непрерывные кривые второго порядка, построенные из элементов этого типа, называются нелинейными сплайнами. Напротив, плоские полиномиальные сплайны суть линейные сплайны, поскольку любая лицейная комбинация полиномиаль- полиномиальных сплайнов одинаковой степени, определенных на одном и том же множестве узлов, тоже полиномиальный сплайн. Как пока- показано в разд. 6.2.2, при построении таких кривых предполагается, что величина у' (х) всюду мала, и в этом случае х(*)~ у" (х). Очевидный недостаток метода KURGLA—то, что сегменты кривой не могут быть выражены точно через элементарные мате- математические функции, которые легко вычисляются. Поэтому вы- вычислительная машина может выдать только приближенное пред-
Составные кривые и сплайны 173 ставление желаемой кривой. Некоторый критерий приемлемости аппроксимации должен быть выбран пользователем, и может ока- оказаться, что потребуется очень много вычислений для удовлетво- удовлетворения этого критерия. С другой стороны, полиномиальный сегмент кривой имеет точное представление в памяти вычислительной ма- машины, и его значение легко подсчитывается в любой желаемой точке. Преимущество метода KURGLA — возможность работать с большими или бесконечными наклонами. Но те же самые возмож- возможности дает плоский полиномиальный сплайн, если используется переопределение местных осей координат (как в методе TABCYL) или если сплайн определяется параметрически. Спорно, есть ли смысл вполне точно моделировать поведение физического сплай- сплайна, обычно используемого чертежниками. Однако неоспорим тот факт, что система AUTOKON, в которой кривые строятся мето- методом KURGLA, успешно применялась на протяжении ряда лет и получила широкое распространение. Заметим, что напряженные сплайны (Швейкерт A966), Клайн A974)) также нелинейны, но сегменты кривой выражаются через гиперболические функции, которые можно точно вычислить с по- помощью стандартных алгоритмов. Однако при синтезе кривых, имеющих большие или бесконечные наклоны, они должны исполь- использоваться с переопределением местных осей или как параметри- параметрические сплайны. 6.5. Локальная модификация составных кривых При проектировании составных кривых часто возникает необ- необходимость их локальной модификации. Методы этого раздела, в частности методы, основанные на fi-сплайнах, позволяют легко осуществить такую модификацию. Но другие стандартные методы могут и не позволить составной кривой принять желаемую форму на некотором ее протяжении из-за недостаточной гибкости, остав- оставляемой на долю отдельных сегментов условиями гладкости, неп- непрерывности положения и градиента. Имеются два основных пути преодоления этой трудности. Либо «непослушный» сегмент следует разделить на два или более сегмента, либо увеличить степень по- полинома, на основании которого он построен. Оба этих приема увеличивают возможности локальной модификации кривой. Ниже будут даны простые примеры, иллюстрирующие, какого рода про- процедуры Moryf потребоваться. Разбиение сегмента на части продемонстрируем на примере криволинейного сегмента Фергюсона г (и) = а0 + ахм + аг«2 + а3и8.
174 _ Глава 6 Сделав линейную замену параметра и = A—V)mo + "'"i, пред- предложенную в разд. 5.3, получим выражение исходного сегмента через параметр и', принимающий значения — «0/(Mi — ио) и A—ио)/(«1—"о) на концах сегмента, соответствующих значениям и = 0 и и = 1. И наоборот, и' — О, 1 отвечают значения и = и0 и и = их. Тогда при 0 <| и0, и( <| 1 часть заново параметризован- параметризованной кривой, для которой 0 <! и' <| 1, является стандартным кри- криволинейным сегментом Фергюсона, в точности воспроизводящим ту часть исходной кривой, для которой «„<;«<;«!. Теперь положим мо = О, их — а. Тогда и и и' связаны соотно- соотношением и = аи' или и' = и/а. Сегмент Фергюсона г^м'), отвеча- отвечающий 0 <| и' ^ 1, будет соответствовать той части первоначаль- первоначального сегмента г (и), для которого 0<и^а. Таким же образом можно воспроизвести оставшуюся часть г (и), для которой a<j«<jl, выбрав ио = а, ^=1. Тогда и и и' связаны соотношением и — (\—и')а + и', или, что то же самое, и' —(и — а)/A—а); 0<!и'^?1 снова определяет стандартный сег- сегмент Фергюсона, который назовем г2(и'). Этим завершается точ- точная замена сегмента г (и) сегментами rl(u') и г2(и'), т. е. двумя однотипными сегментами, которые прии = а имеют общую точку. Как показано в разд. 6.3.6, замена параметра приводит к из- изменению модуля касательного вектора. Используя векторы, ка- касательные к г (и), найдем, что Отсюда следует, что разбиение кривой нарушает всякую сущест- существовавшую ранее непрерывность модуля касательного вектора в точках сочленения с предыдущим и последующим сегментами составной кривой. Более того, непрерывность модуля касательного вектора в точке сочленения гх(и ) и г2(и') будет иметь место, только если а = A—а), т.е. а=1/2. С другой стороны, этот пример подтверждает прежний вывод о том, что непрерывность модуля касательного вектора является ограничительным и в то. же время геометрически бессодержательным требованием. Мы сделали точную замену первоначального сегмента, так что гео- геометрия составной кривой осталась неизменной, несмотря на Иное математическое представление. Подобный метод применим для разбиения сегментов Безье, при- причем некоторые детали рассматривались в разд. 5.3. Так как ра- рациональные кубические сегменты могут быть представлены в форме Безье при помощи однородных координат (разд. 5.2.2), то обобщение на них этого метода очевидно. Форрест A968) рас- рассматривает также случай рациональных кубических сегментов. Описанное выше разбиение кривых следует использовать при
Составные кривые и сплайны 175 разрезании порций поверхности, обсуждаемом в разд. 7.7. Однако достижима большая гибкость, если нет причин точно воспроиз- воспроизводить первоначальный сегмент. Предположим, например, что составная кривая Фергюсона содержит сегмент с заданны- заданными граничными величинами г@), гA), г@) и гA), который не проходит через некоторую точку р. Этот сегмент может быть заменен двумя сегментами с граничными величинами г @), р, г @), а{Т и р, гA), а2Т, гA) соответственно. Тогда для модификации формы могут .служить единичный касательный вектор Т и скаля- скаляры а, и а2. Чтобы показать, как гибкость можно увеличить повышением степени полинома, определяющего криволинейный сегмент, опять начнем с кубического сегмента Фергюсона з Г1»1 (и) — 2 а,и', /=о где индекс в квадратных скобках обозначает степень. Он полностью определяется его концевыми точками и касательными в них, ко- которые связаны с коэффициентами af соотношениями Допустим, мы хотим описать этот сегмент полиномом четвертой степени з легко видеть, что концевые точки и касательные в них будут даваться соотношениями Чтобы граничные условия для гй1 (и) и rui (u) были одинаковыми, необходимо выполнение условий Ь0 = а„, bi = alH, следовательно, b2+b3+b4==a2+as, Общее решение последней Дары уравнений имеет вид Ь2 = а2 + к, Ь8 = а8—2к, Ь4 = к, где к—-произвольный вектор. Тогда можно выбрать к так, чтобы кривая r[4J (и) проходила через некоторую заданную точку для заданного значения и, или так, чтобы сегмент имел заданную вторую производную на одном конце. Заметим, что дальнейшее повышение степени позволит полу-
176 Глава 6. чить заданную вторую производную на обоих концах сегмента, т. е. более симметричную ситуацию. Эта одна из причин, по ко- которой процедуры построения и конструирования кривых обычно основаны на полиномах нечетной степени, требующих четного числа условий для их полного определения. Помимо этого, для кривых, основанных на сегментах нечетного порядка, могут воз- возникать некоторые трудности математического характера. Например, полиномиальный сплайн четной степени, интерполирующий значе- значения данной однозначной функции в заданных точках, не обязательно существует (Алберг, Нильсон, Уолш, 1967). Повышение степени полинома, определяющего сегмент кривой Безье, влечет за собой нахождение новой характеристической ло- ломаной для первоначального сегмента кривой с увеличенным числом сторон. Если степени эквивалентных сегментов суть тип, где п > т, можно записать г(и) = [1ииг... r\ml где {г[тЦ и {г\пЦ суть множества вершин ломаных, а МА—матрица коэффициентов Безье для кривой степени к. Эта матрица является обобщением матрицы М, определенной соотношением E.6); она есть нижняя треугольная матрица размером (fe+l)x(fe+l) (все элементы выше главной диагонали равны нулю) с элементами (— 1 )'-/*! тк, I/ = ' i—j)ljl(k—i)r о, где i, j принимают значения 0, 1, ..., k. Можно записать сегменты эквивалентной кривой более сжато формулой и, собирая внизу нули матрицы Мга, представить UJWra в виде : Подставляя это выражение в предыдущее равенство и приравни- приравнивая коэффициенты при одинаковых степенях и, получим так что новые вершины ломаной даются выражением
Составные кривые и сплайны 177 Отсюда следует, что, когда степень сегмента Безье повышается на единицу, от т до т +1, вершины старой и новой ломаной связаны соотношением Получающаяся в результате дополнительная вершина может быть расположена так, чтобы удовлетворялось добавочное условие, кроме уже наложенных на первоначальный сегмент. Использование одно- однородных координат дает возможность обобщить этот результат на сегмент рациональной полиномиальной кривей. Наконец, кратко остановимся на двух других методах, пред- предложенных Для модификации отдельных сегментов кривой. Первый был описан Форрестом A968), который указал, что сегмент ра- рациональной кубической кривой, определенный формулой F.20), преобразуется в обычный сегмент параметрически заданной ку- кубической кривой при wo=*Wi = wt — wa=l. Тем самым любой сегмент составной параметрически заданной кубической кривой может рас- рассматриваться как частный случай сегмента рациональной кубической кривой, и его модификация осуществляется выбором новых весов, отличных от единицы. Это Можно сделать таким образом, что сохраняются первоначальные Концевые точки и концевые каса- касательные. Другой метод принадлежит Кунсу A977), который отметил, что для полинома пятой степени q(«) = F«5 — 15и*-И0и3)[гA)—г(О)] + г(О), 0<и<1, выполняются соотношения q(O) = r(O), q@) = 0, q@) = 0, r(l), q(l) = 0, q(l)~O. Ясно, что это выражение описывает прямолинейный отрезок, про- проходящий через точки г @) и гA). Действительно, так как полином F«6 —15«*4-1 Ои3) растет монотонно от 0 до' 1 на интервале 0^и^1, то конец вектора q(«) описывает в точности отрезок прямой, соединяющий точки г@) и гA). Теперь предположим, что г (и), О^и^ 1, задает некий сегмент кривой и а — некоторый скаляр. Тогда если полином q(«) опре- определен как и выше, видим, что функция задает сегмент с теми же концевыми точками, что г («) и что для 0<!а<1 полученная кривая г*(и) будет лежать между кривой г (и) и отрезком прямой, соединяющим концевые точки, как пока- показано на рис. 6.18.
178 Глава 6 В силу свойств q (и), векторы касательной и второй производ- производной в концевых точках у кривых г* (и) и г (и) совпадают по на- направлению, хотя их модули отличаются множителем 1 —а. Отсюда Ни) по) Рис. 6.18. Модификация сегмента кривой по методу Кунса. следует, что если кривая г (и) первоначально была частью состав- составной кривой, у которой векторы касательной и второй производной были непрерывными по направлению и модулю, то эти свойства сохранятся при условии, что каждый сегмент модифицируется с использованием одной и той же константы а. В более общем случае, как показал Куне, можно считать а функцией кусочно- заданной переменной и. Непрерывность а (и) и ее первых двух производных по всей длине кривой обеспечивает тогда гладкость второго порядка в точках сочленения сегментов. Куне показал, что этот простой метод дает результаты, каче- качественно -сходные с результатами, полученными с помощью напря- напряженных сплайнов (Швейкерт A966), Клайн A974), Нильсон A974)). Они менее склонны к нежелательным' осцилляциям, чем обычные сплайны, но их применение математически существенно сложнее.
Глава 7. Составные поверхности 7.1. Введение: порции поверхности по Кунсу В этой главе обсуждается ряд методов определения поверхно- поверхностей. В разд. 6.1 было объяснено, что некоторые из этих методов основаны на системе построения двух пересекающихся семейств кривых, поэтому начнем с рассмотрения процедур этого типа. Допустим, что необходимая сетка кривых уже построена каким- либо методом гл. 6. Для большей общности будем сначала при- применять параметрическое представление, введя семейства продоль- продольных и трансверсальных кривых; параметры этих кривых обозна- обозначим через и и и соответственно. Потом полученные результаты будут применены и к непараметрическому случаю. Сетка кривых делит поверхность на совокупность топологиче- топологически прямоугольных порций, каждая из которых ограничена парой и-кривых и парой «-кривых, как показано на рис. 7.1. До- Допустим, что и и v изменяют- изменяются в пределах от 0 до 1 вдоль соответствующих границ; тог- тогда r(u,v),0<u,v<\, пред- представляет внутренность пор- порции поверхности, г(и, 0), гA, v), г (и, 1) и г@, о) пред- представляют четыре известные граничные кривые. Тем самым задача определения порции поверхности сводится к на- нахождению функции г(и, v) с подходящим типом «хорошего поведения», которая при и=0, и= 1, v —0 или v = 1 представляет нужную граничную кривую. Рассмотрим сперва более простую задачу построения порции поверхности, если заданы только две ее границы r@, v) и гA, v). Применяя линейную интерполяцию в «-направлении, получим линейчатую поверхность Ио,и рис 7 ^ Параметрически заданная пор- порция поверхности. тг(и, 0) = A- игA, v). G.1)
160 Глава 7 Напротив, линейная интерполяция в «-направлении дает поверх- поверхность, удовлетворяющую двум другим граничным условиям: г, (и, о) = A—о) г (и, 0) + ог(и, 1). G.2) Эти две поверхности показаны на рис. 7.2. Пол) rfo,i) •"I D Г@,0) Рис. 7.2. Порции поверхности, получаемые линейной интерполяцией по парам противолежащих границ. Их сумма г^ + г2 представляет порцию поверхности, каждая из границ которой является суммой заданной граничной кривой и прямолинейного отрезка, соединяющего концевые точки этой кри- кривой. Например, легко проверить с помощью G.1) и G.2), что граница, соответствующая и = 0, определяется не вектор-функцией г (и, 0), а выражением Тогда если мы можем найти порцию поверхности г8 (u, v), границами которой служат вышеупомянутые прямолинейные отрезки, то можно восстановить первоначальные граничные кривые, составив выра- выражение Г] -f- г2—i"s- Построить г8 легко; ее границы, отвечающие V — О и и —0, будут даваться выражениями A— ы)г@, О) + игA, 0), A — и)г@, 1) + ыгA, 1) соответственно, и последующая линейная интерполяция в «-на- «-направлении даст г,(и, о)=-A—и)A—о)г@, 0) + иA—о)гA, 0) + + A — и)от@, 1) + иогA, 1). G.3) Вектор г=гх + г2 — г8, полученный из G.1), G.2) G.3) и опреде- определяющий искомую поверхность, удобно представить в матричном виде: Г(О> l
Составные поверхности Последовательные подстановки и —0, ы = 1, у = 0 и и = 1 без труда подтверждают, что порция поверхности, определенная вектором G.4), имеет четыре первоначальные кривые своими границами. Эта конструкция, использующая только информацию о гра- границах поверхности и некоторые вспомогательные скалярные функ- функции переменных ии v, определяет наиболее простой класс поверх- поверхностей, первоначально изученный Кунсом A967), которые с тех пор известны как поверхности Кунса. Данная здесь трактовка принадлежит Форресту A972а). Вспомогательные функции и, A—и), v и A—v) называются функциями смешения, так как они соеди- соединяют воедино четыре отдельные граничные кривые, чтобы дать одну корректно определенную поверхность. Важное обобщение формулы G.4) может быть сделано сразу же. Линейные функции смешения в уравнении порции возникают в результате использования равномерной линейной интерполяции. В самом деле, можно заменить A—и), и на ао(ы), ах (и), где функции смешения теперь будут любые, для которых выполняются соотношения 1—aj = a0 и о.@) = 1, о,A) = 0, о,@) = 0, ахA)=1. При такой замене интерполяция в ы-направлении, выполненная при выводе уравнения G.4), остается линейной, но скорость дви- движения конца вектора г вдоль линии интерполяции теперь не остается постоянной при равномерном возрастании и от 0 до 1. Соответствующая замена A—v), v на ao(y)> ai(v) приводит к"фор- муле г (и, v) = [о. (и) а, (и)] [rr j°- Л}] + [г (и, 0) г (и, 1)] -Га (и) а Ш\] ГГ(О) 0) Г(О> La«Wa»WJ [гA, 0) гA, Функции смешения а0 и аг выбираются обычно непрерывными и монотонными (другими словами, непрерывно возрастающими или непрерывно убывающими) на интервале Q<u^l. На практике, как правило, по аналитическим и вычислительным соображениям используют полиномиальные функции смешения. Условие 1 — a,=a0 можно опустить, если аа и аг удовлетворяют другим наложенным условиям. Однако в этом случае интерполяции между противо- противоположными границами, соответствующими уравнениям G.1) и G.2), являются нелинейными. Следовательно, порция поверхности, пред- представленная формулой G.5), не становится плоской, когда все ее границы компланарны. Имея сетку кривых, можно сконструировать составную по- поверхность из порций описанного типа. Однако на границах пор-
182 Глава 7 ций эта поверхность будет только непрерывной, но не гладкой. Непрерывность градиента, существенная для большинства прак- практических приложений, достигается более сложным определением порции поверхности не только через ее граничные кривые, но также через граничные наклоны в направлениях, трансверсальных границам, т. е. через г„(ы, 0), ra(l, v), rv(u, 1) и г„@, vI). Уравнение такой порции поверхности может быть выведено так же, как и формула G.5), за исключением того, что теперь используется обобщенная интерполяция Эрмита, а не обобщенная линейная интерполяция. Поверхность о) = аЛ«)г@, у)+ «,(«) г A, о)+?,(«)гя@, v) + h(u)ra(l, v) G.6) интерполирует две граничные кривые r@, v) и r(l, v) и имеет заданные наклоны поперек границ, если четыре функции смешения удовлетворяют соотношениям а„@)= 1, а,A) = 0, а, @)^0, а, @ = 1, (/J) ai@) = a.'(l) = ai@) = ai(l)=»0, ' G.8) Pi(O) = P.(i)^P1(O)=-p1(l) = O, G.9) Эо @)==i, K(i) = ot К(О)=о, K(i)=i. ( } Читатель может это легко проверить, положив ы = 0 .и а= 1 в формуле G.6) и сделав ту же подстановку в этой формуле, продифференцированной по и. Точно так же две кривые г (и, 0) й г (и, 1) с соответствующими данными о наклонах интерполируются формулой г,(и,1») = а,(и)г(и,0) + а1(и)г(и, \) + fb{v)rv{u,O)+$l(v)rv(u, 1). G.11) Как и в выводе G.5), находим, что гх + гя не дает требуемой по- поверхности. Чтобы получить ее, мы должны вычесть дополнитель- дополнительное слагаемое, получаемое с помощью того же метода интерпо- г) Возможно автоматически обеспечить непрерывность градиента поперек границ элементарных порций подходящим выбором функций смешении. Но это дает меньшую гибкость, и искомая поверхность часто имеет нежелательные плоские области (см принадлежащее Форресту приложение 2 в работе Безье A972)).
Срставные поверхности 183 ляции в обоих направлениях при использовании только информации об угловых точках. Искомое уравнение имеет вид г (и, у)- [«„(«) Oi(u) p,(u) p,(u) г г г J @, A. i@ v)~ v) , v) . v) + [г(«,О)г(ы, 1)г,(и, 0)г„(и, «о L 1) > @,0) r@, 1) г„@,0) r(l,0) гA, 1) г„A,0) ra@, 0) ra@, 1) гвг@,0) r,(l,-0) r.(l,l) rat,(l, 1) rw(l,l)J 'anh X . G.12) Здесь три члена в правой части соответствуют г^, г2 н г8 преды- предыдущего анализа. Заметим, что для построения г3 необходимы зна- значения перекрестных производных в углах гагг. Читателю может быть полезно детально проверить, что если функции смешения удовлетворяют соотношениям G.7)—G.10), то поверхность, пред- представленная уравнением G.12), имеет заданные граничные кривые и градиенты в направлениях, перпендикулярных границам. Исполь- Используя такие порции поверхности, можно сделать направления нор- нормалей к ним непрерывными на границах и построить всюду гладкую составную поверхность. Таким же образом можно вывести уравнение порции поверх- поверхности с заданными вторыми производными в направлениях, пер- перпендикулярных границам. Для этого нужно еще две функции смешения* и соответствующая квадратная матрица будет иметь порядок 6. Однако большинство практических систем для опреде- определения поверхностей не содержат этих усложнений. Перекрестная производная rav, входящая в уравнение G.12), часто встречается в этой главе, поэтому полезно вкратце обсудить ее геометрический смысл. Сначала рассмотрим поверхность г— г (х, у)
184 Глава 7 в декартовых координатах. Так как гху = (д/дх)(дг/ду), то ясно, что перекрестная производная измеряет скорость изменения в х- направлении наклона поверхности в «/-направлении. Таким образом, zxy является мерой закрученности поверхности. Если гх есть непрерывная'функция х и у, то можно показать- аналитически, что zyx = zxy. По аналогии со случаем декартовых координат, параметриче- параметрическая перекрестная производная rav часто называется .вектором кручения. Хотя, следуя традиции, мы используем этот термин в дальнейшем, необходимо указать, что он может ввести в заблу- заблуждение, поскольку значение хю в точке параметрически заданной поверхности зависит не столько от геометрических, свойств этой поверхности, сколько от способа ее параметризации. Покажем это на простом примере. Предположим, что а, Ь и с—постоянные векторы, такие, что Ь^с^О, а ы, v—любые скаляры. Тогда формула г (и, v)=a •+• ub -J- ос определяет плоскость, проходящую через точку а и параллельную векторам b и с. Плоскость—это незакрученная поверхность, и поэтому неудивительно, что rat, = 0. Но рассмотрим теперь выра- выражение г (и, v) Эта новая параметризация предыдущего уравнения определяет ту же плоскость, но теперь rst, = c=?0. Отсюда следует, что не- необходима осторожность при геометрической интерпретации вектора кручения, так как rat,^=0 необязательно означает закрученность поверхности. 7.2. Поверхности тензорного произведения Можно значительно упростить уравнение порции поверхности по Кунсу G.12) подходящим определением граничных кривых и градиентов в ортогональных к ним направлениях. Используя на- набор функций смешения, удовлетворяющих условиям G.7)—G.10), можно представить сегмент кривой с помощью положений его концевых точек и значений касательных в них следующим образом: в)^A). G.13) Это выражение позволяет записать граничные кривые и попереч-
Составные првврхности 165 ные градиенты в виде г (i, v) = «0 (v) r (i, 0) + сц (v) r (i, I) + р0 (v) rv {i, 0) + + Vi{v)rv{i, 1), G.14) ra (i, v) - a0 (p) ra (i, 0)+ai (u) ra (t, 1 )+p0 (V) rav (i, 0)+ f)raP(i. 1), G.15) , /) + P,(«)re(O, / где i, / = 0, 1. После подстановки этих выражений в G.12) ока- оказывается, что все три члена одинаковы за тем исключением, что третий имеет отрицательный знак. В результате уравнение G.12) принимает вид г (и, v) = [а0 («) сс( (и) р0 (ы)р4 (ы)]х Ч (о) а, (и) г @,0) г@, 1) г„@,0) г„@, 1) гA,0) гA,1) г.A,0) г.A, 1) г„@,0) г,@, 1) r№@,0) rat,@, 1 гяA,0) г.A, 1) rw(l,0) г,„A, 1). или, более сжато, г(ы, G.16) Это упрощение—следствие того, что мы определили граничные данные через те же самые функции смешения, которые использо- использовались при выводе первоначального уравнения порции поверхно- поверхности G.12). Заметим, что теперь порция ¦ поверхности полностью определена через векторы г, га, гр и га„ в ее четырех углах. Пор- Порцию поверхности этого типа часто называют определенной тен- тензорным (или декартовым) произведением. Тот факт, что градиенты поперек границ определяются выра- выражениями G.14) и G.15) через значения гй) rv и tav в углах пор- порции поверхности, весьма существен, когда мы переходим к пост- построению составной поверхности из порций этого типа. Достаточно добиться совпадения значений этих трех векторов в смежных углах соседних порций, чтобы была достигнута непрерывность градиента во всех граничных точках.
186 Глава 7 7.2.1. Поверхности Фергюсона Простейший набор полиномиальных функций смешения, удов- удовлетворяющий соотношениям G.7)—G.10), есть следующий набор полиномов третьей степени: а|(«) = 3ы2—2ы«, Подставив их в G.13), найдем, что получается в точности сегмент Фергюсона кубической кривой из разд. 5.1.2 (см. также разд. 6.3.1.). Использование этого набора функций смешения приводит к тому, что составная поверхность строится на сетке- кривых, составлен- составленной из сегментов Фергюсона. Можно записать векторы функций смешения G.16) в следующем виде: = [1« и*' и3] Ч (У) p.V) 1 О О О —3 3 2 —2 1 О О О О 1 О О 0 1 2 1 От 0 1 1 =ис» -3 3 -2 -1 2 —2 1 1.  V Ф ¦ф G.17а) = CrV. G.17b) Тогда порция поверхности по Фергюсону задается формулой г (и, y) = UCQCrV, G.18) где матрица Q определяется соотношением G.16). Ранее в разд. 5.1.6 была приведена формула з з г (и, и) =« 2 2 a</"'v =- UAV, i=0/=0 и сравнение показывает, что A = CQCr. Коэффициенты а^, кото- которые являются элементами А и, следовательно, CQCr, суть ли- линейные комбинации значений векторов положения и векторов производных в углах порции поверхности. В первоначальных статьях Фергюсона A963, 1964) функции смешения выбирались таким образом, что перекрестные произ- производные rav в углах порции неявно предполагались равными нулю, так что нижняя правая подматрица размером 2x2 матрицы Q была нулевой. Следует отметить использование такого ограни- ограниченного типа порций поверхности в процедуре построения поверх- поверхности FMILL системы APT. Здесь производные гв и rv в узлах
Составные поверхности 187 сетки приближенно оцениваются с помощью информации о по- положении1' соседних узлов. Направления производных берутся параллельными хордам, соединяющим предыдущую и последую- последующую точки на соответствующей кривой сетки, а модули— равными длине хорды, соединяющей данную точку с предыдущей или с последующей точками. Чтобы возможность появления вы- выпуклостей или петель кривой была минимальной, выбирается крат- кратчайшая хорда (см. разд. 6.3.6). Опасность использования оценок производных вместо их измеренных значений обсуждалась в разд. 6.2.1, Однако разработчики FMILL считали, что это менее серьезный недостаток, чем необходимость дополнительных вычис- вычислений для получения правильных градиентов по исходному методу Фергюсона (см. разд. 6.3.1). На практике система FMILL обычно работает удовлетворительно, поскольку влияние упрощающих допущений достаточно мало, чтобы не появляться на фоне неточ- неточностей, характерных для фрезерованных поверхностей FMILL без окончательной обработки. Некоторые дальнейшие детали этой системы обсуждаются в разд. 7.7. Форрест в его приложении 2 к работе Безье A972) указы- указывает, что условие гиг, = 0 во всех узлах сетки может привести к местным уплощениям синтезируемой поверхности вблизи углов порций. Однако этот эффект можно свести к минимуму, если Цт+1, л-1 и-кривые (постоянный ннвет п) линии сетки проводить примерно по линиям кривизны поверх- поверхности (см. разд. 4.2.9), так как поверхность вдоль таких линий не закручивается. , Если предположить, что имеются ненулевые векторы круче- кручения в углах порции поверхности, то немедленно возникает про- проблема, как их определить. Один из путей сделать это—обобщить Х) Пользователь может также задать все векторы наклона сначада( и<э й прем применяется редко,
188 ^ Глава 7 первоначально предложенный Фергюсоном метод вычисления гп и rv. Предположим, что узлы сетки кривых имеют векторы по- положения rmn, где т = 0, 1, 2, ..., М и я = 0, 1, 2, ..., N, как" показано на рис. 7.3. Из разд. 6.3.1 известно, что когда первые производные согласованы по направлению и величине в узловых точках, вторые производные u-кривых будут непрерывными, если касательные векторы ги> тп вычислены из системы уравнений m=l, 2 М — 1. G.19а) Аналогично вторые производные р-кривых будут непрерывны, если 'о. т, в-1 "г ™v, ши"г'"о. л». ht-i == " Сж п+1 Гл»> п-1/> tt=*l,2 ЛГ — 1. G.19Ь) Рассмотрим теперь условия непрерывности г и на границе двух порций, уравнения которых с помощью G.18) можно записать в виде гш(ы, y)=UCQA)CrV, гB>(ы, v) = UCQ(8!>CrV и которые имеют общую границу rA)(l, v)±=rw@, v). Дифферен- Дифференцируя дважды уравнения порций по а, найдем, что r*g(O, y) = [0 0 Правые части являются кубическими полиномами от v. Для не- непрерывности гии на границе они должны быть равны при 0 ^ v ^ 1 и поэтому, приравняв коэффициенты, получим [0 0 2 6] CQU)Cr = [0020] CQ<«G. Так как Сг—неособая квадратная матрица, то можно умножить обе части справа на (С7"), что приводит к соотношению [6 —6 2 4]Q<1> = [—6 6 —4 — 2]Q<*>. В скалярной форме оно представляет собой систему из четырех уравнений, содержащую значения г, rui rv и rav в углах двух порций поверхности. Эта система упрощается, если мы примем во внимание условия гA>A, 0) = г<я'@, 0), гшA, 1) = г<2>@, 1), г«>A, 0) = г<,а'@, 0) и г<,г)A, 1) = г<*>@, 1), которые необходимо наложить для непрерывности поверхности и ее градиента на гра- границе двух порций. Тогда оказывается, что два из этих уравне- уравнений сводятся к условиям, требуемым, согласно G.19а), для глад- гладкости второго порядка составных граничных кривых поверхности, образованной двумя порциями. Остающиеся два уравнения суть дополнительные условия, обеспечивающие гладкость второго порядка поверхности в целом в ы-направлении. Если они нала- налагаются на всех у-границах большей составной поверхности, то их
Составные поверхности 189 можно представить в виде следующей системы: 'вр, /я —1, п< av\ tin i 'пи, m+l, в = ' P. я>+1> п~~" о» /я—1. n'» m=l, 2, ..., M — 1. G.20a) Здесь градиенты го в правой части могут считаться известными из уравнений G.19Ь). С другой стороны, можно добиться непрерывности гт в р-на- правлении для всей составной поверхности, Потребовав выполне- выполнения аналогичной системы условий Г»в, л», n-i*• *"»И| mn'T'^Vtt, m, n+t^"* С», я>> в+1 *"bi я», п-1/» /1=1, 2 iV — 1. G.20b) При определении порции поверхности с помощью тензорного произведения предполагается, что rav = tva в углах порции; однако никоим образом не очевидно, что решения rav системы G.20а) совпадают с решениями rvtl системы G.20Ь). Если они различны, то нельзя удовлетворить обоим уравнениям одновременно, так что гладкость второго порядка может быть получена только в одном направлении. К счастью, эти два уравнения дают одно и то же множество векторов кручения, поэтому достижима общая гладкость второго порядка. Ниже дается набросок доказатель- доказательства этого утверждения. Если у читателя нет желания воспроиз- воспроизвести самостоятельно все детали, то полезно проследить основные пункты доказательства, в котором реализован практический метод вычисления поверхностей с непрерывной кривизной, основанных на сплайнах. Для краткости будем писать rB = s, rt, = t, rBO = Xi и rva = x2. Уравнение для значений гп может быть тогда записано в матрич- матричной форме следующим образом: 4 1 1 4 1 1 4 0 Sol •fl -3 0 3 —3 0 3 -3
190 Глава 7 ИЛИ = B1R, где Af и В(—матрицы размером {М — l)x(M-f-l), a S и R — размером {M + l)x(N + 1). Будем считать, что элементы первой и последней строки матрицы S известны; в этом случае осталь- остальные ее элементы могут быть определены однозначно. Аналогично уравнение для значений rv в матричной форме есть где А2 и Ва отличаются от А1 и В, соответственно только тем, что они имеют размер {N—l)x(N-f-l). Матрица T = [tmn] раз- размером (M-f- l)x(iV-f-1), и элементы ее первого и последнего столбцов считаются известными с тем, чтобы остальные элементы могли быть определены однозначно. Если S и Т известны, то возможны два альтернативных спо-~ соба вычисления векторов кручения: либо с использованием G.20а), либо G.20Ь).'В матричной форме соответствующие уравнения суть где X! = [Xiimn] и Xt = [x2imn]. Первая и последняя строки ма- матрицы Xt и' первый и последний столбцы матрицы Х2 считаются известными. Исключение S и Т из четырех матричных уравнений показывает, что откуда А1(Х,-Х?)АГ Оказывается (как мы вскоре покажем), что первые и послед- последние строки и столбцы у матриц Xt и X, одинаковы. Поэтому последнее уравнение можно переписать в виде Ч 1 1 4 1 1 4 Ах», Axs, лг-i  1 1 4 1 1 4 'О, где Axmn = xaimn—xit mn. Теперь первый и третий сомножители суть неособые квадратные матрицы, поэтому средний сомножи- сомножитель должен быть нулевой матрицей. Тем самым X, = Х, и си- системы уравнений G.20а) и G.20Ь) дают один и тот же набор решений для значений векторов кручения гцу в узлах сетки-
Составные поверхности Наше утверждение о том, что Xf и Х2 имеют одинаковые периферийные элементы, может быть обосновано рассмотрением способа определения этих элементов. Если они вычисляются с по- помощью системы G.20а), то необходимо найти значения гаг/1 Оп и rav, мП' чтобы система была полностью определенной при любом п. Эти значения можно выразить через четыре вектора кручения «"«*, оо. «"«,, ОЛГ. rav, Mo И ГстЛ|дг. ИСПОЛЬЗуЯ G.20Ь) ПрИ /П = 0 И /П = М, так как значения г„ ранее предполагались известными вдоль гра- границ составной поверхности, соответствующих т = 0 и т = М. С другой стороны, вычисляя периферийные элементы матрицы X с помощью системы G.20Ь), нужно сначала задать значения raVt ma и rav> mN для каждого т. Но эти значения также можно выразить через векторы кручения в четырех углах составной поверхности, используя G.20а) при п = 0 и n~N, так как значения г„ пред- предполагались известными вдоль границ п = 0 и n = N. "Таким обра- образом, в обоих случаях периферийные элементы матриц Xf и Х2 вычисляются одним и тем же способом на основании одной и той же исходной информации и, стало быть, имеют одинаковые зна- значения. Это завершает доказательство. Заметим, что построение всей поверхности с гладкостью вто- второго порядка требует определения касательных векторов во всех узлах сетки на границах, но векторов кручения только в четы- четырех угловых точках. Вся необходимая информация поэтому может быть записана в виде следующей таблицы: Здесь, как и ранее, s = re, t = ro и хя=га„. Поверхность, получаемая в результате описанной процедуры, является частным случаем параметрической сплайновой поверх- поверхности, рассматриваемой ниже в разд. 7.2.4. Там мы будем иметь дело с более общей ситуацией, при которой и и v в узлах сетки могут принимать не только целочисленные значения, а также из- изложим более подробно вычислительную процедуру.
192 Глава 7 7.2.2. Поверхности Безье (UNISURF) Кубические кривые Безье, как упоминалось ранее в разд. 5.1.3, это просто кривые Фергюсона, заданные в такой форме, что не требуется определения каких-либо касательных. Существует такая же тесная связь между порциями поверхностей, заданными в форме Фергюсона и Безье. В разд. 5.1.7 показывалось, что порция по- поверхности Безье проектируется с помощью характеристического многогранника, который определяется векторами положения rif его 16 вершин. Порция в некотором смысле аппроксимирует многогранник, хотя только угловые точки г00, г03, г30 и г33 являются у них об- общими. Заметим, что обозначение xif отличается от гтп последнего раздела тем, что каждая точка х{) лежит на характеристическом многограннике, а не на самой поверхности. Форма многогранника дает конструктору хорошее представление об общей форме соот- соответствующей порции поверхности, и изменение одного или более векторов г,.у модифицирует ее предсказуемым образом. Не тре- требуется задания каких-либо векторов градиента и кручения. Уравнение, определяющее каждую порцию, имеет вид з з г (и, о) =-2 2)г//А(и)Я/(»). 0<«, о<1, G.21) {=0 /а О где 'ЛИ*Г-*' *-0.1.2.8. Функции gk суть кубические базисные полиномы Бернштейна, определенные в приложении 3. Легко показать, что конец г @, v) описывает кубическую кривую Безье, характеристическая ломаная которой определяется векторами гоО, г01-, г02 и г03; на рис. 7.4 «32 Г30 Рис. 7.4. Характеристический многогранник порции кубической поверхности Безье.
Составные поверхности «93 видно, что эта кривая есть одна из границ порции. Три другие границы порции даются соответственно векторами r(l, v), r(и, 0), г (и, 1) и являются кривыми того же типа. Теперь исследуем связь между определениями порции • поверх- поверхности по Безье и Фергюсону. Уравнение G.21) можно записать в матричной форме г (и, o) = G(«)BG*», где В = [г^] есть 4х4-матрица вершин многогранника, а =[1 и и? и3] — иK ЗыA—ыJ . - 1 0 0 0 —3300 3—6 3 0 — 1 3—3 1 = UM G.22) Аналогично G(t>) = MrV, где матрица М определяется соотноше- соотношением G.22), а V = [l vvz v3]T. Используя эти выражения, мы можем записать уравнение порции в виде г (и, w) = UMBMrV. G.23) Уравнение порции поверхности в форме Фергюсона, полученное в последнем разделе, имело вид г (u, tO=UCQCrV, где Q и С определены формулами G.16) и G.17) соответственно. Чтобы эти выражения были эквивалентны, должно выполняться соотношение V- или, что то же самое, Q = (СМ) В (С-*М)*\ Обращая матрицу С и выполняя умножение в правой части, получаем г,@, 0) г,@, 1) Ml, 0) г„A, 1) гто@, 0) гот@, 1 г«,A, 0) гвдA, 1 ¦оо 'о& " \го1 гоо/ " \гоз '02/ '"so 1*зз " vei—*"зо) " (*"зз — '"за) 3(Гю~Гоо) 3(Г13—Г03) 9(Г00—Г10—Г01+Гц) 9 (Го2—Г12—Г03—Г13) .3(г30—г20) 3(г33—г23) 9(г20—г30—г21+г31) 9(г22—r32—r23+r33)J G.24) "Г г @, ¦ <о. 0) 0) 0) 0) г@, гA, г.@. г A, А. Фокс, М. Пратт
194 Глава 7 Из этого последнего уравнения можно получить значения век- векторов градиента и кручения в углах порции через векторы вер- вершин характеристического многогранника. Векторы градиента зави- зависят только от граничных вершин, в то время как четыре внут- внутренние точки ru, г12, г21 и г22 влияют на величины перекрестных производных. Изложенный ниже подход применен в системе конструирова- конструирования поверхностей UNISURF, разработанной Безье A972) для автомобильной фирмы «Рено». Крупное преимущество этой системы в том, что конструктору не нужно задавать для проектируемой порции поверхности никаких векторов градиента или кручения. Таким образом, отпадает необходимость в весьма неудовлетвори- неудовлетворительном упрощающем предположении Фергюсона о том, что гцг,=0 в углах порции поверхности. Нужно знать только векторы поло- положения г,у 16 вершин многогранника. Их геометрическая интер- интерпретация совершенно очевидна, и поэтому система вполне подхо- подходит для" использования оператором без специальной математиче- математической подготовки. гП|A,1|=Л «-Р>|1,0)=г12)|0,0| Рис. 7.5. Рассмотрим теперь, как обеспечить гладкость составной по- поверхностиfeegbgj. На рис. 7.5 представленьРдве смежные порций" кубической" поверхности Безье, заданные соответственно урав- уравнениями: r<» (u, v) = UMBA'MrV, г<2> (и, о) = UMB<2)MrV. G.25) Непрерывность составной поверхности на границе порций будет получена, если гA> A, v) — r(z) @, v) при v ? [0, 1]. Используя G.25), запишем это условие в виде [1 1 1 l]MBA)MrV = [l 0 0 0] MB(z)MrV.
Составные поверхности 195 Обе стороны этого уравнения являются кубическими полиномами от v. Приравнивая коэффициенты, получим соотношение [1 1 1 1]МВШМГ = [1 0 0 0]МВB)Мг, которое после умножения справа на (МР)'1 сведется к следую- следующим 'четырем соотношениям: r<i) _ г<3) ; л I о Ч гы — roiI — и i z о. Это означает выполнение вполне естественного условия: общая граничная кривая между двумя порциями требует наличия общей граничной ломаной у двух характеристических многогранников (рис. 7.6). .12) 33 30 Рис. 7.6. Конфигурация характеристического многогранника, дающая непрерыв- непрерывность поверхности и гладкость сочленения двух порций кубической поверхности Безье (случай (i)). Пары сходящихся тсоллинеарных ребер выделены жирными линиями. Для непрерывности градиента при переходе через границу касательная плоскость к порции 1 при и = 1 должна совпадать с касательной плоскостью к порции 2 при ц = 0 для v — [0, 1]. Тогда направление нормали к составной поверхности будет изме- изменяться непрерывно при переходе через общую границу двух пор- порций, и, следовательно, выполняется условие » (О, w)xr<,2>@, о) = Я,(о)г«>A, , о). G.26) Присутствие положительной скалярной функции % (о) учитывает разрывы модуля вектора нормали к поверхности. Рассмотрим две возможности, удовлетворяющие этому уравнению. 7*
.196Глава 7 Случай 1. Так как г?2)@, и) = г^1)A, v), то простейшее решение состоит в том, чтобы в формуле G.26) положить Это означает, что на линиях v = const составной поверхности направление градиента будет непрерывно; такое условие представ- представляется разумным, если мы хотим, чтобы оно выполнялось для И ¦х&т- Й)| ¦постоянно Рис. 7.7. Постоянные отношения модулей касательных при пересечении гра- границ порций. составных кривых, образующих границы порций. Используя G.25), можно G.27) представить в матричной форме [0 10 0] MB(*'MrV = % (v) [0 1 2 3] MBA)MrV. G.28) Так как левая часть есть кубический полином от v, то отсюда следует, что X (р) = %, т. е. (положительная) константа; в против- противном случае правая часть не была бы кубическим многочленом. Это уравнение должно выполняться для всех t>?[0, 1], и поэтому, как и ранее, приравняв коэффициенты и умножив справа на (Мг)"г, получим четыре уравнения: i = 0,l,2,3. G.29) Эти соотношения означают, что сходящиеся на границе ребра характеристических многогранников смежных порций должны быть ^ллинеарны (рис. 7.6). Предыдущий анализ показал, что А,—отношение длин каса- касательных векторов—должно быть постоянно вдоль общей границы. В силу способа согласования условий в углах порций составной
Составные поверхности 197 поверхности это означает, что отношение модулей производных по и должно быть постоянно при переходе через любую состав- составную и-кривую сетки границ порций и наоборот, как показано на рис. 7.7. В силу G.27) все составные и-кривые и и-кривые будут гладкими и непрерывными. Ограничения, налагаемые этим постоянством отношения длин касательных векторов, оказываются на практике весьма жесткими. Рассмотрим, например, построение гладкой составной поверхности, показанной на рис. 7.7, начиная с порции А и переходя затем к порциям В, С и, наконец, D. Шестнадцать вершин характери- характеристического многогранника порции А можно выбрать по желанию. Затем необходимо определить отношение модулей касательных векторов, перпендикулярных границе порций А и В, взятых по разные стороны этой границы. Как только это сделано, окажется, что не менее чем восемь вершин характеристического многогран- многогранника порции В зафиксированы условиями непрерывности самой поверхности и ее градиента, и только восемь можно свободно выбрать. Аналогично, как только определено отношение модулей касательных векторов для порций А и С, остается только восемь вершин, которые можно свободно выбрать при определении С. Для порции D условия выбора еще более ограничены; отношения модулей касательных векторов для границы В и D и для гра- границы С и D уже фиксированы и поэтому имеется свободный выбор только четырех из шестнадцати вершин при определении этой порции. Если составная поверхность строится на заранее определен- определенной сетке кубических кривых Безье, то у каждого многогранника, соответствующего какой-либо порции, двенадцать граничных вер- вершин уже фиксированы. Число внутренних вершин, которые могут быть свободно выбраны, для порций А, В, С и D равно соответ- соответственно 4, 2, 2 и 1; эти цифры отвечают числу углов, в которых вектор кручения rav еще не определен. Случай 2. Для того чтобы получить большую свободу при конструировании составных поверхностей, Безье A972) отказался от использования G.27) в качестве условия согласования гради- градиентов и для выполнения G.26) предложил определять rjf' @, v) соотношением rf @, v) = К (v) г»' A, v) +11 (v) г'1' A, v), G.30) где \i(v)—некая скалярная функция v. Это просто-означает, что вектор г<„2) @, v) лежит в той же плоскости, что и векторы г?> A, о) и (^'(l, v), т.е. в касательной плоскости к порции 1 в данной граничной точке. Такое условие предоставляет значительно боль- большие возможности. В матричной форме соотношение G.30) имеет
198 Глава 7 вид [0 10 0] МВФ MrV = Л (о) [0 1 2 3] MB'1» MrV О 1 1 2v . G.31) Если используются только порции кубической поверхности, то видно, что h (v) может быть любой положительной константой, а ц (v) — любой линейной функцией v.1) Важно понимать, что когда G.30) используется как условие гладкости, векторы гра- градиента в направлении границ порций не обладают непрерывностью при переходе через границу. Поэтому может быть отброшено условие коллинеарности ребер многогранника, сходящихся на границе. Используя новый, более общий критерий непрерывности градиента, можно построить непрерывную гладкую поверхность, у которой составные границы порций будут непрерывными как в и, так и в ^-направлениях, но их градиенты—разрывными во всех углах порций. Применяя G.30) к любому узлу сетки, можно, однако, заключить, что касательные всех четырех границ, схо- сходящихся в этом узле, должны быть компланарны. Выражение непрерывности градиента при пересечении границ порций через геометрические свойства их характеристических многогранников менее очевидно, чем было ранее. Если положить k(v) — X и \i(v)~\io-hiii(v) в G.31) и приравнять коэффициенты при одинаковых степенях v, как было сделано выше для G.28), то получим следующие четыре соотношения: (гй'-rgf) = Ч1Й>-1Й>) + ц„ («ff-O l* Brfflfi>I$)+ ? —iff) = % (rS» —iff) +y Ho (iff + iff - 2rfi») +4 |ii (гй» -rft»), (га»-iff) - а- (г& -г») + (m,+Hi) (гй' - При ^o = hj = O они сводятся к G.29). Так как из непрерывности поверхности следует гй'^гЦ', то первое уравнение показывает, что три вектора (г^—гй'). (гй'—W) и (г^'—гЙ') должны быть компланарны. Из свойств порций поверхностей Безье известно (см. разд. 5.1.7), что эти векторы пропорциональны г?2) @, 0), г^1' A,0) и г?}A, 0) соответственно. Таким образом, подтверждается заклю- х) Заметим, однако, что эти функции могут быть использованы для полу- получения гладких сопряжений между порциями поверхностей различной степени. Например, если X (v) квадратично no v и ц (v) — кубическая функция, то пор- порция 2 является порцией поверхности пятой степени,
Составные поверхности 199 чение последнего раздела, что касательные к границам порций в узлах сетки должны быть компланарны. .121 Порции Л Рис. 7.8. Конфнгурацкл 'характеристического многогранника, дающая непрерыв- непрерывность поверхности н гладкость сочленения двух порций кубической поверхности Безье (случай 2). Три ребра каждой выделенной жирными линиями группы должны быть компланарны. Четвертое уравнение аналогичным образом, показывает,' что должны быть компланарны г<„*> @, 1), г?'A, 1) и х%*{\, 1). Вы- Выражение этих двух условий компланарности через свойства ха- характеристических многогранников иллюстрируется на рис. 7.8. Второе и третье уравнения непрерывности градиента не имеют такой простой геометрической интерпретации. Даже большая гибкость, обусловленная применением G.30) вместо G.27), недостаточна для обеспечения непрерывности кри- кривизны на всех границах порций, если составная поверхность должна строиться, начиная с одной порции, к которой затем пристраиваются остальные, как предполагалось ранее. При необ- необходимости можно применять порции более высокой степени, чем кубическая. Окончательная версия UNISURF (Безье, 1974 Ь) допускает использование таких порций, поэтому отметим здесь, чтсЛ порция обобщенной поверхности Безье определяется выра- выражением Р Q Здесь gf и g*/" суть базисные функции Бернштейна степени р и q соответственно, а порция теперь задается характеристическим многогранником с (p+l)x(q + l) вершинами. Условия, обеспе- обеспечивающие различные порядки гладкости, можйо вывести обобще- обобщением методов этого раздела. Второй и более высокие порядки гладкости обобщенных поверхностей Безье являются предметом статьи Верона и др. A976).
200 Глава 7 7.2.3. Рациональные параметрические поверхности Рациональная параметрическая поверхность отличается большей общностью, но поскольку ни одна практическая система, осно- основанная на ее общей форме, не получила еще широкого распрост- распространения, здесь будет дан только краткий обзор некоторых ее примечательных черт. Сначала изучим рациональную бикубичес- бикубическую порцию поверхности, определяемую с помощью рациональ- рационального кубического криволинейного сегмента G.32) который рассматривался в разд. 6.2.2. и 6.3.3. Напомним, что г@) = г„ гA) = г„ Можно выразить этот сегмент кривой в виде через егэ концевые точки, концевые касательные и функции смешения. Подставив сюда G.33) и сравнив результат с G.32), увидим, что четыре функции смешения имеют вид )( где w(u) означает знаменатель в G.32). Разумеется, эти скаляр- скалярные функции являются рациональными кубическими функциями. Несложные выкладки показывают, что они удовлетворяют усло- условиям G.7) и G.10), которые ранее налагались на функции сме- смешения для порции поверхности с заданными граничными кривыми и производными по направлениям, перпендикулярным границам. Поэтому можно построить порцию рациональной бикубической поверхности посредством тензорного произведения, подставляя предыдущий набор функций смешения в G.16). Результат может быть выражен в виде г (и, о) = ш (и) ш (v) UCWQWrCrV, G.34) где Q определяется уравнением G.16), U, V и С—уравнением G.17), а ш„ 0 0 0 1 ° ^з 0 0 3(w1—w0) 0 ш0 0 0 3 (wa—w2) 0 ш w=
Составные поверхности 201 Другой способ—начать построение методом Безье, определив порцию поверхности через шестнадцать вершин характеристичес- характеристического многогранника. Так как сегмент рациональной кубической кривой определяется формулой з г(«) = да-1(«) *Ещг,д,(л), с= о где g{—базисные функции Бернштейна из формулы G.21), то нашу порцию рациональной бикубической поверхности можно определить аналогичным выражением з з г (и, v) = W1 (и) да (v) 2 2 Wtf& («) S/ (»)• G.35) ы о /= о Это уравнение может быть записано в матричной форме г (и, o)=a>-1(a)a>-1(o)UMDBDMrV, G.36) где М определяется в G.22), В = [г,7] есть 4х4-матрица вершин многогранника и D --= diag (оуо, wlt w2, ws). Сравнение G.34) и G.36) показывает, что Q = (W'C-^D) В (W-KJ или ГГ(О, 0) г@, 1) г„@, 0) г„@, 1)- гA, 0) гA, 1) г„A, 0) г„A, О г„@, 0) г„@, 1) rw@, 0) гот@, 1) LrB(l, 0) гяA, О гявA, 0) гягA, 1) ^ 92»<г..-г11-г 9^(r20-r30-r2i-r31) . G.37)
Vn Глава 7 Сопоставляя это выражение с G.24), мы видим, что рациональ- рациональная бикубическая порция поверхности является обобщением пор- порции кубической поверхности Безье. В обоих случаях углы пор- порции совпадают с вершинами многогранника г00, г03, г30 и rS3,. в то время как г, и г, в углах порции направлены вдоль соответ- соответствующих ребер многогранника. Однако рациональной бикубичес- бикубической порции поверхности свойственна большая гибкость, так как можно изменять отношения wjwa и wjws для модификации длин векторов градиента и кручения. Порция, определяемая G.36), обладает тем свойством, гчто каждая из ее граничных кривых является рациональной кубичес- кубической кривой с весами w0, wlt w2 и w3. Можно получить еще боль- большую свободу, сохраняя эти веса для «-границ, но выбирая другие веса для и-границ, скажем w't, w[, w^ и w's. В результате исполь- используется один набор функций смешения в «-направлении и другой набор, основанный на новых весах, в у-направлении. Предыдущие формулы остаются в силе, если к обозначениям весов, относя- относящихся к и-направлению, добавляется штрих. Следовательно, общие множители wjwo и w2/ws в третьем и четвертом столбцах правой части G.37) заменяются на w'Jw'o и w'2lws соответственно. Эти два дополнительных отношения можно использовать для изменения формы как свободно выбираемые параметры. Предельно общий вид параметрической рациональной бикуби- бикубической порции получается при замене G.35) выражением E.37) из разд. 5.2.3: Р(«, u)=-UMB*MrV. G.38) Здесь Р = (xw, yw, zw, w)T и В* = [Pf/], где Р;/ = = (XtjWfj-, ytjWtf, ZyWjj, w;j)t суть вершины многогранника в од- однородных координатах, а (и, v)—точка порции поверхности в тех же координатах. Можно записать это менее сжато, но в более привычных обозначениях, замечая, что \_w\ «' [ w;j J Поэтому где двойные скобки обозначают матрицу, элементами которой являются указанные дроби. Следовательно, wr=UM[wurlf]MTV, Окончательное деление тогда дает UM [wu]
Составные поверхности 203 Обратим внимание на следующие черты этой очень общей формы записи рациональной бикубической порции поверхности: (i) He менее шестнадцати весов w^ входят в определение порции. Однако, как и ранее, геометрическая форма порции по- поверхности определяется только отношениями весов, и ровно двенадцать таких отношений требуются для определения векто- векторов касательных и векторов кручения в углах порции. Например, для угла, где « = и = 0, выполняются соотношения г @, 0) == г00, гв@, 0) = 3^-(г10—г00), г„@, 0) = 3-^(г01— г00), которые содержат три отношения йУ01М>00, wu/wm и wu/wao; ана- аналогично три отношения существенны для каждого из остальных углов. (ii) Каждая граница порции есть рациональная кубическая кривая, но противоположные границы теперь определяются раз- различными наборами весов. Следовательно, приложение теории порций поверхности по Кунсу из разд. 7.1, в которой противо- противоположные границы определяются одинаковым образом, ослож- осложняется. Однако здесь нас могут выручить однородные координаты. Положив и = 0 в G.38), получаем остальные три границы определяются аналогичными уравнениями. Различия в весах теперь скрыты в Р-векторах, и функции смешения зависят только от и или V. Теория Кунса может быть применена непосредственно, если точки поверхности задавать векторами Р, а не г. Заметив, что G.38) совпадает с G.23) во всем, кроме замены В на В*, заключаем, что G.24) справедливо для рациональной бикубической порции при замеие всех г на Р. Хотя такие выражения, как Рй@, 0) или РйгДО, 0), не имеют /того же непосредственного геометрического смысла, что гй @, 0) шш гйг,@, 0), но с помощью несложных выкладок можно пере- перевести отношения между Р-производными и Рг7 в отношения между r-производными и г/у. Результаты для угловой точки @, 0) при- приводились в пункте (i). По аналогии с G.38) можно определить рациональную биквад- ратичную порцию поверхности, границы которой будут сегментами конических сечений (см. разд. 5.2.1). Ее можно записать через однородные координаты в виде Р(н, v) = 1 0 —2 2 1 —2 0"! о 1 Г02 it .•20 -1 0 0 2 2 0 1- —2 1_ -1 " V и2
204 Глава 7 по аналогии с порцией квадратичной поверхности Безье. Этот тип порций поверхности также обладает значительнрй общностью и включает все квадратичные поверхности как частные случаи. Однако он не может быть выражен в форме G.16), так как только угловые точки и угловые градиенты могут выбираться произвольно, но не угловые векторы кручения. Очевидно, что использование рациональных полиномиальных порций поверхности обеспечивает значительную гибкость. Здесь возникает только одна проблема, состоящая в том, что сама общность этих функций создает трудности в разработке практи- практической системы определения поверхностей. Желательно, чтобы любая такая система могла бы обслуживаться не математиком, но отнюдь не ясно, каким способом все предоставляемые степени свободы включить в систему так, чтобы каждая имела достаточно очевидный геометрический смысл. В практической реализации системы для всех весов следует выбирать положительные величины, чтобы знаменатели рациональных функций не обращались в нуль при 0<; и, у<! 1. Здесь не обсуждаются условия гладкости составных поверх- поверхностей, образованных рациональными параметрическими порциями. Очевидно, что возможности ее достижения довольно обширны, и необходимый анализ аналогичен тому, который уже был про- проведен для составных поверхностей Безье. 7.2.4. Параметрические сплайновые поверхности Построение параметрических сплайновых кривых в трех изме- измерениях рассматривалось в разд. 6.3.4. Если есть подходящий массив точек, то можно вычислить сетку кривых, в которой каж- каждая из заданных точек является узлом, т. е. пересечением «-кри- «-кривой с и-кривой. Для кубических сплайнов эти кривые будут иметь непрерывные и по направлению, и по величине градиент и кри- кривизну во всех внутренних узлах, поскольку x(u) У (и) г (и) х(и) У (и) i{u) а вычисление сплайнов ведется таким образом, что скалярные компоненты каждого из этих векторов непрерывны в узлах. Сплайновые кривые образуют границы топологически прямоуголь- прямоугольных (т. е. криволинейных четырехугольных) порций составной поверхности. Параметризация сплайновых поверхностей может натолкнуться на трудности, которые будут обсуждены ниже. Сейчас, однако,
Составкые поверхности 205 рассмотрим такую порцию поверхности, что ит^и^.ит+1 вдоль обеих «-границ и vn^v^vn+1 вдоль обеих о-границ. Так как каждая граница порции является одним отрезком кубического сплайна, то вся порция может быть представлена бикубическим полиномом G.39) где hm = um+1 — um, akn=-vn+1—vn. Если положить и' = (u — um)/hm и v' = (v — vn)/kn, так что O^u', o'^l, то это выражение све- сведется к стандартной формуле порции бикубической поверхности Фергюсона 3 3 г (и1, v') = 2 2 а„и V - U'AV*, 1 = 0 /=0 в которой А = [а,7], U'=(l, и', и'*, и'3) и V' = (l, v', v'2, v'3)T. Можно использовать G.18), чтобы представить эту последнюю формулу в виде г (u', u') = U'CQ'CTV\ G.40) где Q' определяется согласно G.16), но все производные берутся ло и' и v', в то время как С определяется согласно G.17). По- Поскольку I , /-, _J)x(u\ v')__dr(u, у) du _^ , . и т. д., легко показать, что Q' = HmQKn, G.41) где He = diag[l, I, hm, hm], KB = diag[l, 1, *„, kn], a "¦("*. »B+i) ГЛ«,»> vn) rv(um, vn+1) I _ r(um+1, vn) r(um+1,vn+1) rv(um+1, vn) rv{um+u vtt+1) ~ rn(Um' Vn) rn{Um,Vn+1) Tttv(um, Vn) rttv(Um, Vn + 1) fin 7) \ V (tJ 7) \ I* (il 7) \ Г (и 7) Эта последняя матрица является обобщением матрицы G.16) на случай, когда область изменения параметра отличается от[0, 1]. Подставив G.41) в G.40) и сравнив два уравнения для г (u', v'), получим выражение А = СНИОКИСГ, G.42) определяющее коэффициенты аг7 в формуле G.39) через значения г, гй, rv и ruv в углах порции.
206 Глава 7 Теперь положения углов порций задаются с самого начала, а векторы касательных в углах определяются в результате по- построения сетки сплайновых кривых. Для полного определения порции поверхности, подогнанной в каждой ячейке сетки, доста- достаточно задать векторы кручения rav в углах порции. Их можно определить таким образом, что вся составная поверхность будет обладать непрерывностью кривизны в том смысле, что г(«) не- непрерывно поперек всех о-границ и наоборот. Здесь используется процедура, сходная с той, набросок которой дан в разд. 7.2.1 для поверхностей Фергюсона с непрерывной кривизной; факти- фактически такие поверхности являются просто частными случаями сплайновых поверхностей, для которых значения параметров « и v сдвигаются и масштабируются так, что они изменяются от 0 до 1 на каждой порции. Процесс подгонки сплайновой поверх- поверхности к топологически " прямоугольному Массиву точек гтп (т = 0, 1, ..., М, п — 0, 1, ..., N) дан ниже. Символ [гт] (т=-0, 1, ..., М) используется для обозначения набора точек 1) Вычисляются сплайновые кривые, проходящие в «-направ- «-направлении через (N+1) наборов точек [гив], [гт1], ..., [rmN], m = 0, I, ..., М. Каждая кривая требует двух дополнительных условий, которые, согласно допущению, будут здесь соответство- соответствовать значениям гв в концевых точках. 2) Затем вычисляются сплайновые кривые, проходящие в v- направлении через (М + 1) наборов точек [гОи], [г1и], ..., [гМп], п = 0, 1, ..., N. При этом используются заданные значения г„ на концах каждой кривой. Тем самым получаем сетку кривых, и величины гв и rv во всех узлах сетки теперь могут рассматри- рассматриваться как известные. 3) В о-направлении вычисляются сплайны, которые соответ- соответствуют двум наборам векторов градиентов [гй,0„], [rBi Мп], п=0,1,... ..., N. Отсюда можно получить векторы кручения rav вдоль и- границ составной поверхности. Для построения этих двух кривых необходимы угловые векторы кручения raVt 00, rWi oN, raV< m и rav, MN- 4) Наконец, в «-направлении вычисляются (jV-j-1) сплайнов, соответствующих наборам векторов градиентов [г„1/в0], [rv,ml]... .. .[rv<mN], m = 0, 1 М. Для этих вычислений необходимы концевые значения rav, которые уже были получены на шаге C). Из этого последнего набора кривых можно получить векторы кручения в углах всех порций. Теперь известны все элементы всех Q-матриц, поэтому G.42) и G.43) могут быть использованы для построения каждой порции составной поверхности. Можно, конечно, поменять местами и и v на шагах C) и D), но в любом случае в результате будет получена та же самая поверхность с непрерывной кривизной. Это устанавливаетея обоб-
Составные поверхности 207 щением доказательства, приведенного в разд. 7.2.1. Поэтому вся поверхность единственным образом определяется через (i) точки гт„, (И) векторы касательных гя вдоль у-границ и г„ вдоль и- границ составной поверхности, рассматриваемой как целое, и (ш) векторы кручения ruv в ее углах, которые на практике часто ради простоты принимаются равными нулю. Каждая из параметрических кривых, определяемых в указан- указанном процессе, вычисляется через плоские сплайны так, как это объяснялось в разд. 6.3.4. Последние могут быть вычислены не- непосредственно методов разд. 6.2.2, или через Б-сплайны, как было предложено в разд. 6.2.3. Последний способ позволяет про- производить местные модификации^ поверхности; их можно сделать так, что сделанные изменения затронут не более чем 16 порций, причем общее число порций может быть намного больше. Параметрические сплайновыё поверхности являются основой системы «Численное управление геометрией» (NMG), разработан- разработанной Сабиным в Британской авиационной корпорации (Уэйбридж), и системы POLYSURF Кембриджского -вычислительного конструк- конструкторского центра (CAD). Детали даны в следующих работах: Сабин A971), Флаттер A974), центра CAD A972), Флаттер и Рольф A976). Коулс A977) описывает роль системы NMG в объ- объединенной системе проектирования и производства с помощью вычислительных машин. В заключение кратко обсудим, как лучше параметризовать сплайновую поверхность. В разд. 6.3.4 и 6.3.6 в качестве пара- параметра для одиночных кривых было признано удобным брать длину хорды; это справедливо и здесь. Но есть много других возмож- возможностей, простейшая из которых—это просто приписать целые значения и = 0, 1, 2, 3, ... последовательным узлам кривой. Опыт показывает, что этот прием удовлетворительно работает при вполне равномерном геометрическом расположении счетных точек. Если же точки расположены слишком неравномерно, то целочи- целочисленная или другая равномерная параметризация кривой может Дать нежелательные плоские области на длинных промежутках ю осцилляции (или даже петли) на коротких промежуках. Эта тенденция ослабляется, если разности значений параметра тесно связаны с действительными расстояниями между узлами; простей- простейший способ достигнуть этого—использовать в качестве параметра длину хорды. Однако при конструировании сплайновой поверхности дело обстоит .не столь просто. Как правило, оказывается, что проти- противолежащие стороны любой порции имеют хорды различной длины, тогда как уравнение порции G.9) требует, чтобы и и с изменя- изменялись в одном и том же диапазоне вдоль ее противолежащих границ. В этом случае простая параметризация по длине хорды оказывается неудовлетворительной. В практических системах
208 Глава 7 должно быть указано, как преодолеть эту трудность. Баттерфилд A978) достиг этого, применив функции смешения, каждая из ко- которых зависит как от и так и от v. Эти функции—частные слу- и Рис. 7.9. Параметрическая сплайновая поверхность. чаи функции смешения, зави- зависящих от границ, которые введены в гл. 17 книги Фор- реста A968). Другой способ, применяемый в некоторых ва- вариантах системы NMG—-до- NMG—-доверить выбор параметризации оператору, который может предпочесть равномерное или неравномерное распределение" значений параметра в узлах для направлений и и v в за- зависимости от набора счетных точек, с которым он имеет дело. Соответствующие узлы на всех «-кривых должны иметь одни и те же значения параметра; это верно и для всех о-кривых. Например, разумный выбор значений параметра для набора точек, показанного на рис. 7.9, может быть следую- следующим: узлы на «-кривой и — О, 1, 2, 3, 4, 8, 12, 16, 17, 18, узлы на о-кривой v = 0, 1, 2, 3. Этот выбор обоснован тем, что в о-направлении узлы располо- расположены вполне равномерно, а в «-направлении — неравномерно. Указанные выше значения параметра в узлах отражают это об- обстоятельство. Очевидно, что не всегда принять обоснованное Рис. 7.10. Поверхность с резко неравно- неравномерным распределением узлов.
Составные поверхности 209 решение столь просто. На рис. 7.10 показан более трудный при- пример. В этом случае, вероятно/'остается только принять в качестве пробного равномерное распределение параметра в обоих направле- направлениях, сознавая некорректность этой процедуры. К счастью, на практике обычно можно избежать таких затруднительных ситуаций. 7.2.5. Поверхности, определяемые 0-сплайнами В-сплайновые кривые были введены в разд. 6.3.5. Они свя- связаны с поверхностями, определяемыми В-сплайнами, точно так же, как кривые Безье связаны с поверхностями Безье (см. разд. 5.1.7, 7.2.2). Подобно порции поверхности Безье, порция такой В-сплайновой поверхности задается характеристическим много- многогранником. Последний весьма точно имитирует общие геометри- геометрические свойства порции, которая определяется для топологически прямоугольного массива вершин многогранника Г/у,. i = 0, 1,2, ..., р, / = 0, 1, 2, ..., д, формулой г (и, v) = S S г„Л74, /+i (и) Nt. /+1 (v) G.43) г=о;=о по аналогии с F.23). Здесь, как и ранее, используются куби- кубические В-сплайны, и О^и^р—2, О^о^^ — 2. Свойства В- сплайнов гарантируют, что поверхность, определенная G.43), будет иметь повсюду непрерывность градиента и кривизны. Теория поверхностей этого типа создана лишь недавно, и пока что публикации о них немногочисленны, но эти поверхности, по всей видимости; являются весьма обещающим нововведением (Гордон, Ризенфельд, A974а)). Одна из их привлекательных черт состоит в том, что В-сплайны являются только локально ненуле- ненулевыми. Исследуем влияние изменения одного векторного коэффи- коэффициента га> ? в G.43). Сплайн Niy a+i(u) ненулевой только для а—13 < и < а+ 1, a Nti p+i {v) ненулевой только для р—3 < v < <pV|-l- Таким образом, единственная часть В-поверхности, под- подверженная изменению, это та, для которой и и v лежат в этих диапазонах; остальная ее часть остается без изменений. Заметим, что указанные неравенства должны быть изменены около краев поверхности в силу ранее наложенных на и и и ограничений. Напомним, что порция кубической поверхности Безье основана на многограннике, определенном в точности 16 вершинами. Одна порция такого рода может представлять только элемент поверх- поверхности с весьма простой топографией. Более того, как уже было показано, порции поверхности Фергюсона и порции, основанные на кубических сплайнах, математически эквивалентны порциям поверхности Безье и, следовательно, имеют те же самые ограни- ограничения. Напротив, число вершин, определяющих характеристиче-
?10 Глава 7 ский многогранник порции кубической В-сплайновой поверхности, неограниченно. Поэтому можно, выбирая достаточно сложный мно- многогранник, представить сильно изогнутый элемент поверхности одним уравнением, таким, как G.43). Можно заключить, что от- отдельная порция В-сплайновой поверхности, основанная на куби- кубических полиномах, обладает свойствами, которые в других упо- упомянутых системах требуют использования или составной поверх- поверхности, или одной порции, основанной на полиномах степени выше третьей. Это преимущество дополняется возможностью локальной модификации и автоматически получаемой непрерывностью второго порядка, свойственными В-сплайновой поверхности. 7.3. Плазовые поверхности До появления ЭВМ большие объекты, например корпуса судов или фюзеляжи самолетов, проектировались обычно с помощью параллельных поперечных сечений, проходящих через ряд точек продольной оси. После определения поперечных сечений можно было построить продольные кривые, соединяющие их в единую трехмерную форму. Традиционно эти кривые вычерчивались в пол- полном размере с помощью механических сплайнов. Единственным помещением судоверфи, размеры которого позволяли сделать это, был плаз, и такая процедура синтеза поверхности стала называться плазированием. Это было скорее искусство, чем наука; не было (и нет) какой-либо количественной меры правильности плазовой кривой. Принятие или непринятие таких кривых зависит в основ- основном от эстетического суждения чертежника, и два чертежника почти наверняка проведут значительно различающиеся «наилучшие» кривые при одних и тех же ограничениях. Усовершенствование ручного плазирования было связано с ис- использованием кусочно-аналитических плоских кривых (в особен- особенности конических). Эта методика применялась большей частью британской авиапромышленности в пятидесятых и в начале шести- шестидесятых годов. До того как стали широко использоваться ЭВМ, необходимые вычисления делались на настольных вычислительных машинах. С появлением высокопроизводительных ЭВМ стало возможным автоматизировать плазовый процесс. Одной из созданных в ре- результате систем была система NMG («Численное управление геометрией») (разд. 7.2.4), которая использовала сплайновые кри- кривые как для определения формы поперечных сечений, так и для построения продольных кривых и, следовательно, ранее обсужда- обсуждалась в связи с методом тензорного произведения. Другая система —CONSURF, разработанная Боллом A974, 1975, 1977) в бывшей Британской авиационной корпорации (Вартон), действует более
Составные поверхности ' 211 в духе традиционной плазовой процедуры. Система CONSURF основана на двух специальных формах рациональной кубической кривой—линейном параметрическом сегменте и обобщенном кони- коническом сегменте, ранее описанных в разд. 5.2.2. В простейшем случае все поперечные сечения плоские и параллельные; они строятся с помощью обобщенных конических сегментов. В про- продольном направлении обычно используются линейные параметри- параметрические сегменты, хотя здесь в значительно искривленных местах, таких, как новые части фюзеляжей, могут быть также применены обобщенные конические сегменты. После построения сетки кривых для определения каждой порции поверхности используется подхо- подходящая модификация уравнения G.38). Кривые поперечных сечений и Рис. 7.11. Полоса порций поверхностей в сисгемс CONSURF. Рассмотрим вкратце построение продольной полосы порции, показанной на рис. 7.11. Допустим, что все поперечные кривые лежат в параллельных плоскостях (хотя Болл A975) описывает, как это условие может быть отброшено). Вспомним (разд. 5.2.2), что обобщенный конический сегмент может быть определен через его концевые точки, его концевые касательные и через его р- отношение. Система CONSURF определяет полосу поверхности при условии, что ее поперечное сечение в любой точке продоль- продольной оси будет обобщенным коническим сегментом. Поэтому , необходимо иметь четыре векторные функции и одну скалярную функцию, зависящие от и, со следующими свойствами: (i) го(ы) и г3(м) являются уравнениями нижней и верхней границ на рисунке; для любой величины и они дают две требуе- требуемые концевые точки. Эти кривые будут рациональными кубиче- кубическими кривыми, составленными из линейных параметрических сегментов с непрерывностью направления касательной в точках их соединения. (ii) цг (и) и q2 (и) также должны быть определены. Это состав- составные, определяющие наклон кривые, они также строятся из линей- линейных параметрических сегментов. Вместе с го(м) и г3(ы) они при-
212 Глава 7 меняются для определения касательных на концах кривых попе- поперечных сечений для любых значений и вдоль нижней и верхней границ выражениями "V,. о (и) = Я! (и)—г0 (и), rv< , (и) = г3 (и)—q2 (и) соответственно. (iii) функция р-отношения р(и) конструируется из известных значений р на поперечных границах порций с использованием интерполяционного метода (Акима, 1970). Как только определены эти пять функций, r0, r8, rv< 0, rVt, и р можно вычислить для любого значения и. Как показано в разд. 5.2.2, можно тогда найти такие скаляры к и \i, что точки O, r2 = rs—(xro>s ^ вместе с г0 и г3 определяют характеристическую ломаную обобщен- обобщенного конического сегмента, р-отношение которого равно р. Этот сегмент является кривой поперечного сечения для данного значе- значения и. Это очень упрощенное описание системы CONSURF. О даль- дальнейших деталях читатель может узнать из статей Болла, учиты- учитывая, что здесь его формулировки были несколько видоизменены с целью сохранения неизменными обозначений книги. Болл ука- указывает, что математические сложности системы скрыты внутри программ так, что пользователь может работать исключительно с простыми геометрическими понятиями. Кривые поперечных сечений, сегменты продольных кривых и определяющие наклон сегменты, которые он должен задать, строятся только через кон- концевые точки, концевые касательные и полноту кривой, ха- характеризуемую параметром р. Как только полоса поверхности определена, система печатает величины А и \i для различных сечений вдоль полосы. Они обеспечивают контроль со стороны пользователя; любое их нерегулярное изменение в продольном направлении указывает на то, что вычисленная поверхность неудовлетворительна и, вероятно, содержит нежелательные складки. Другая известная плазовая система,- BSURF, создана авиаци- авиационной фирмой «Боинг» для числового управления. Она исполь- использует язык числового управления APT для определения набора плоских сечений тела. Они могут быть либо аналитическими кри- кривыми, или кривыми, определяемыми по точкам, которые созда- создаются интерполяционным методом TABCYL, упомянутым в разд. 6.4. Затем сечения соединяются семейством близко расположен- расположенных кривых, идущих в продольном направлении. Вычисляются также соответствующие смещения фрезы для обработки на фре- фрезерном станке вдоль этого направления. Третья процедура, разработанная фирмой «Локхид» для пред- предварительного проектирования фюзеляжей самолетов, известна под
Составные поверхности 213 названием формирования поверхностей (Фланаган и Хефнер, 1967). Она имеет интересную черту, состоящую в том, что все попе- поперечные сечения составляются из дуг плоских сверхэллипсов, опре- определяемых уравнениями а" ~1~ Ъп Для л = 2 это уравнение обычного эллипса с полуосями а и Ь, но для л>2 выпуклость кривой увеличивается, и при п-г+оо кривая приближается к прямо- угольной конфигурации в квад- квадранте х > 0, у > О, показанной на рис. 7,12. Как мы видели, плазовое чер- черчение является в основном про- проблемой интерполяции поверхности между двумя фиксированными кри- кривыми. Традиционно это был дол- долгий и кропотливый процесс, так как кривые, проведенные через два набора взаимно перпендикулярных поперечных сечений, обычно ока- оказывались не пересекающимися, т. е. не лежали на одной поверх- поверхности. Устранение такой несовме- несовместимости часто требовало большого числа проб и ошибок. Использо- Использование вычислительных машин и современных систем определения поверхностей освобождает от боль- большей части этой утомительной ра- работы. Более того, теперь можно Рис. 7.12. Дуги сверхэллипсов, служащие для задания поперечных сечений в системе формирования поверхностей. определять плазовую поверхность целиком, а не просто строить плазовые кривые, лежащие на искомой поверхности. Аналитически плазовая поверхность проще, чем поверхность Кунса, так как она использует смешение границ только в одном направлении, а не в двух. Возвращаясь назад к разд. 7.1, заме- заметим, что G.1) и G.2) определяют простые плазовые поверхности, которые были использованы как компоненты при построении порции поверхности Кунса. Аналогично первые члены в правых частях G.4) и G.12) дают плазовые поверхности, определяемые через более общие функции смешения. Во втором случае опре- определяются наклоны поверхностей в направлениях, перпендику- перпендикулярных двум фиксированным кривым. Плазовый метод обсужда- обсуждается далее в гл. 8 в связи с проектированием поперечных сече- сечений.
214 Глава 7 7.4. Непараметрические поверхности В разд. 4.1.5 и в других местах были указаны недостатки декартовых координат по сравнению с параметрическим подходом к проектированию кривых и поверхностей. Однако непараметр.и- ческие методы могут быть эффективно использованы при опре- определении однозначных поверхностей, не имеющих больших гради- градиентов по отношению к некоторой базовой плоскости. Там, где эти методы применимы, они предпочтительней параметрических методов в смысле объема вычислений (см., например, Димсдейл и Беркли, 1976). Простейший алгоритм построения поверхности в декартовых координатах подгоняет полиномы от скалярных величин х и у вида z(x, у) =2 ? %*<>'' (=.0 /= 0 к значениям г, заданным в узлах фиксированной прямоугольной сетки на плоскости (х, у), что показано на рис. 7.13. Шаг сетки может быть переменным. Рис. 7.13. Определение поверхности на фиксированной прямоугольной сетке. Если мы согласны взять р я q достаточно большими, можно применить обобщение метода Лагранжа для нахождения единст- единственного полинома, который будет интерполировать все заданные точки. Но построенной таким образом поверхности свойственны нежелательные осцилляции, которые часто появляются при ис- использовании метода Лагранжа для подгонки большого числа
Составные поверхности J1J точек (см. разд. 6.2.1). Поэтому большинство практических сис- систем применяет один полином низкой степени от х и у для каж- каждой отдельной ячейки сетки и использует условие непрерывности градиента поперек границ порций, соответствующих этим ячейкам, чтобы синтезировать гладкую составную поверхность. Этот алгоритм используется в двух системах, FMESH (описан- (описанной Безье, 1972) и GEMESH (Myp, 1959, Доллрис, 1963). Пер- Первая была разработана в Японии Инабой для компании «Фудзицу»ч и вторая—компанией «Дженерал электрик» в США. Обе системы используют для порции поверхности бикубическую функцию з з *(*.#)=» 2 2a<v*V- G-44) f=0/=0 Как и в случае ранее рассмотренных порций параметрических бикубических поверхностей, коэффициенты ai;- могут быть вычис- вычислены через значения координат и производных в углах порции. В FMESH используются значения z, zx ¦ и zy\ кроме того, для однозначного определения каждой порции необходимы еще четыре величины, которыми могут быть, например, координаты четырех заданных точек внутри порции. В системе GEMESH для опре- определения каждой порции необходимы значения z, zx, zy и гху в ее углах. Непрерывность градиента между порциями обеспечива- обеспечивается, как в случае параметрических бикубических порций, согла- согласованием этих четырех величин в углах соседних порций. В сис- системе FMESH векторы кручения, т. е. перекрестные производные, не требуются в явном виде, но их значения можно вычислить изимеющейся информации. Главным недостатком CHCTeMbiGEMESH было то, что значения гху обычно оценивались через значения z в углах соседних порций и поэтому содержали погрешности. Это вело к появлению нежелательных морщин вдоль диагоналей пор- порций (Шу, Хори и др., 1970). Как и в параметрическом случае, можно в значительной сте- степени избежать трудностей с определением перекрестных произ- производных в углах, использовав бикубические сплайны. Хотя при этом требуется больше вычислений, но полученная поверхность обладает тем дополнительным достоинством, что вторые произ- производные всюду непрерывны. Пусть имеется прямоугольная сетка MfxN ячеек, и значения zmn — z(xm, yn) заданы во всех узлах сетки, где т = 0, 1, 2, ..., М и п = 0, 1, 2, ..., N. Мы хотим построить порцию бикубической поверхности на ячейке сетки х,„^х^.хт+1, yn^y^yn+i, которую удобно представить поли- полиномом i=0/=0
214 Глава 7 В этом уравнении hm = xm+1—хт и kn = yl3+1 — yl3. Можно пока- показать, что коэффициенты aif в G.45) связаны с угловыми точками порции и производными соотношением А = СНЯС1К„СГ, _ G.46) где А[а,у] — постоянная матрица, определяемая G.17), Нт и К„ даются G.41), а n + i ^у, тп ^у, т, и+1 х, тп ^х, т, n + i ху, тп ху, т, п + 1 Л1 m+i, n ^х, m+i, n + i xy, m + t, n ^xy, m+i, n + i— Уравнение G.46) есть скалярный аналог G.42). Соответствующие производные элементы Q вычисляются с помощью сплайновых кривых, проходящих через заданные точки, так же как и в пара- параметрическом случае, хотя здесь они будут плоскими сплайнами. Эти кривые выстраиваются вдоль всех линий сетки в обоих нап- направлениях, х и у, и по ним вычисляются градиенты гх и гу в заданных точках. Затем можно вычислить сплайны от градиен- градиентов гу вдоль дг-границ поверхности и получить zxy в заданных точках этих границ. Использовав значения гх, можно построить по ним сплайны вдоль всех линий сетки в ^-направлении и, на- наконец, получить гху во всех внутренних узлах сетки. Тогда, зная Q для каждой ячейки сетки, можно использовать G.46) и G.45) для определения каждой порции поверхности. Нетрудно пока- показать, что zxx и zyy непрерывны по всей поверхности в целом, поскольку все граничные линии составной поверхности имеют непрерывные вторые производные (будучи сплайновыми кривыми). Заметим, что, как и в разд. 7.2.1 и 7.2.4, всю поверхность можно вычислить по заданным точкам, значениям производных в нап- направлениях, перпендикулярных ее границам во всех граничных точках (необходимым для построения сплайнов, соответствующих функциям в точках), и значениям перекрестных производных в ее угловых точках (необходимым для построения сплайнов, соот- соответствующих величинам первых производных). Произвольный выбор гху (скажем, гху = 0 в этих четырех угловых точках) ска- сказывается, вероятно, только в окрестности этих точек, чем можно пренебречь, а градиенты поперек границ в большинстве прило- приложений могут быть определены без больших затруднений.
Составные поверхности 217 7.5. Двумерная интерполяция поверхности по заданным кривым Возвратимся теперь к параметрическим координатам и иссле- исследуем обобщение метода порций поверхности Кунса. Как мы виде- видели, подход Кунса позволяет интерполировать каждую ячейку заданной топологически прямоугольной криволинейной сетки пор- порцией поверхности. Выбрав правильный вид порций, можно быть уверенным, что полученная составная поверхность, кроме прос- простой непрерывности, имеет любой желаемый порядок гладкости. Однако можно также построить одну, несоставную поверх- поверхность, которая интерполирует всю криволинейную сетку и кото- которая может удовлетворять условиям гладкости любого порядка. Чтобы продемонстрировать это, снова рассмотрим уравнение G.5), определяющее четыре граничные кривые порции. Можно записать его в виде 1=0 /=0 i=0/=0 G.47) где О^ы, u^l. Предположим, что вместо четырех граничных кривых г (и, /), / = 0, 1, и r(t, v), t = 0, 1, имеется полная сетка г(". /). / = 0, 1, ..., N, r(i, v), t = 0, 1, ..., М. Здесь 0<«< <Л1, О^и^Л'' и криволинейная сетка имеет (M + l)x(N + 1) точек пересечения r(t, /). По аналогии с G.47) можно надеяться подогнать всю систему кривых, положив М N М N г (и, v) - 2 а/ (")г О"» и)+ 2 а«- (и)г ("' /)— 2 2 а« (")а/ (и)г О"» /)• <=о ¦ /=о »=о/=о G.48) Рассуждая так же, как в разд. 7.1, придем к выводу, что под- подходящие условия для функций смешения а, таковы: О, Ьф1 . t = 0, I max(Af, N). Нетрудно найти набор функций, удовлетворяющих этим услови- условиям; для этого достаточно, например, классической теории интер- пбляции. Удобно выбрать at в виде кубических сплайнов, осно- основанных на наборе целочисленных узлов О, 1, 2, ..., тах(М, N); это позволяет обойтись без полиномов высокой степени. Полу- Полученная поверхность интерполирует криволинейную сетку в целом и благодаря свойствам функций смешения имеет тот же самый порядок гладкости, что и первоначальные кривые, гладкие вплоть до вторых производных. Если необходим более высокий порядок
218 Глава 7 гладкости, то можно, взять для at сплайны более высокого по- порядка. Поверхности этого вида отличаются от ранее изученных сос- составных поверхностей в двух отношениях. Во-первых, поверхность теперь несоставная, разве что в том смысле, что ее функции смешения (будучи сплайнами) составные. Во-вторых, желаемый порядок гладкости обеспечивается теперь не видом уравнения порции (как, например, для уравнения G.12)), а выбором функ- функций смешения. Такие поверхности, интерполируемые по сетке кривых, были впервые описаны Гордоном A969). Заметим, что начальная^сетка может состоять из кривых любого вида, составных или иных, при условии, что они имеют гладкость второго порядка. Поэтому этот метод интерполяции более гибок, чем метод тензорнего произве- произведения, описанный выше. 7.6. Вырожденные порции поверхности Все порции поверхности, рассмотренные в этой главе, были топологически прямоугольными, т. е. определялись через четы- четыре граничные кривые. Иногда, однако, необходимо применить топологически треугольные порции, как показано на рис. 7.14. В этом случае в рамках системы, которая в основном исполь- использует четырехсторонние порции, можно получить трехстороннюю порцию, устремив длину одной граничной кривой к нулю. Такая порция называется вырожденной. • Треугольные пврциц Рис. 7.14. Треугольные порции в системе топологически прямоугольиых порций. Рассмотрим выделенную жирными линиями трехстороннюю порцию на рис. 7.14. Здесь граница г@, у) имеет нулевую длину. Таким образом, г@, v) постоянна для 0<и^1 и 1^,@, v) =» = rvv @, v) =...== 0. Для того чтобы порция была корректно
Составные поверхности 219 определена, направление нормали к поверхности в точке А должно быть однозначным. Обычно направление нормали к поверхности на кривой г @, v) вычисляется по формуле ra@, u)xi\,@, v), но так как в нашем случае г„@, v) равна нулю, то векторное про- произведение имеет нулевой модуль, и поэтому невозможно устано- установить его направление. Тогда следует применить предельный пере- переход, основанный на рядах Тейлора, следующим образом. При малом и можно записать г«(и, о) = г„@, v) + O(u), rv(u, a) = U0. v) + urav@, v) + O(u*) = urttv@, v) + O(u*). Отсюда следует, что г*(и, »)хг„(и, ») = игв@, v)xraz,(O, v) + O(u2). Это дает вектор нормали к поверхности в точке (и, v). Поэтому единичная нормаль в этой точке „/„ -л «гц@, f)xrCT(Q, ^"' и> | «га @, v)xrav (О, v) + O (и2) * Тогда, устремляя и к нулю, получаем limn (и г) r"(°-0>xr"»(°'0> Го 1' ' "г@, v)Xrav@, v)\- Если предел существует, эта формула дает направление нормали к поверхности в точке А; оно определяется единственным обра- образом, только если правая часть не зависит от и. Это будет так, когда г0 @, и) и ratl@, v) лежат в общей плоскости, касатель- касательной к порции в точке А, для всех v в интервале 0 ^ и^ 1. Ука- Указанное условие необходимо и достаточно для корректного опреде- определения вырожденной порции. I Проиллюстрируем приложение предыдущего условия в прак- практической системе, рассматривая вырожденную кубическую порцию поверхности Безье. Уравнение порции есть G.23) г (и, v) = UMBJVFV. Дифференцируя и полагая « = 0, найдем, что г, @, о) = @ 1 0 0)МВМгA v и» и8)г, г»@. о)-@ 1 0 0) МВМ7" @ 1 2v Зи2)г. Но @ 1 O0)MB-=3(rlo-roo, i-tf — r,i, r12-r02, rls-ros), G.49) и поэтому как га @, v), так и rav @, v) являются линейными ком- комбинациями четырех векторов в правой части G.49) с коэффици- коэффициентами, являющимися функциями от v. Тогда если га@, и) и
220 Глава 7 rUv @, v) должны лежать в одной плоскости при всех v, то четыре вектора, от которых они зависят, также должны лежать в этой плоскости. Так как в рас- рассматриваемом вырожденном случае г00 = г01 = г02 =• г03) то у заключаем, что пять вершин многогранника r00> r10, rn, г12 и г1я должны быть комп- компланарны, как показано на рис. 7.15. Вероятно, стоит упомя- упомянуть, что составные поверх- поверхности, целиком основанные на треугольных элементах, обычно применяются для чис- численного решения некоторых вариационных задач методом конечных элементов. Подроб- Подробности можно найти в гл. 4 монографии Митчелла и Уэйта A977). В период написания авторам не было известно ни одной практической системы для построения инженерных поверх- поверхностей, основанной на трехсторонних порциях, хотя некоторые предварительные разработки содержатся в статье Барнхилла, Бирк- гофа и Гордона A973); см. также Барнхилл A974) и Грегори A974). 01 02 03 Рис 7.15. Характеристический миогограи- иик вырожденной порции Безье. Компла- Компланарные вершины и векторы выделены жирно. 7.7. Кривые на параметрических поверхностях; разбиение порций Предположим, что у является функцией от х, заданной уравне- уравнением ф(лс, у) = 0, и что график зависимости у от х в двумерной декартовой системе координат содержит дугу, которая лежит внутри единичного квадрата О^лс, ^^ 1. В этом случае <p(u, v) = 0 представляет кривую, лежащую на порции параметрической по- поверхности г —г (и, v), Os^u, y^l. Если зависимость между и и v можно задать параметрически в виде« = «@. v = v(t), то урав- уравнение кривой легко находится через новый параметр t. Проил- Проиллюстрируем это, рассмотрев кривую, определяемую полиномами
Составные поверхности 221 (где ak и рА —скаляры) на порции поверхности Фергюсона 3 3 г {и, v) — 2 2 &tju!vL Если подставить выражения для и и v в уравнение порций, то получится уравнение кривой г@= 2 2л 18 = 2- р=о G-50) где векторы Ър являются линейными комбинациями а(у. Заметим, что даже в этом сравнительно простом случае кривая имеет во- восемнадцатую степень, что весьма обескураживает! В принципе можно использовать такие кривые для разбиения порций на меньшие части. Например, если ABCD на рис. 7.16 есть порция с известным урав- уравнением, a EF—кривая на по- поверхности порции, определен- определенная как было сделано выше, то можно получить уравнения для двух подпорций ABFE и EFCD. Для этого параметр t в G.50) должен изменяться от 0 до 1 поперек порции;если t заменить на и, то получится уравнение для кривой EF, рассматриваемой как граница порции. Границы по v, т. е. АЕ, ED, BF и FC, можно получить разбиением кри- кривой, как описано в разд. 6.5. Тогда ABFE и EFCD можно представить как обобщенные D _ tc _ . порции поверхности Фергюсона Рис' 7Л6> Разбийеои0ит* порций повеРх- восемнадцатой степени в «-нап- «-направлении и третьей степени в w-направлении. Выкладки, связанные с разбиением порции, как правило, до- довольно сложны. Однако они тривиальны в простом случае, когда кривая на поверхности определяется соотношениями и — t, v = va = — const. Линия EF выражается параметрически кубично через t, и она делит исходную порцию на две стандартные порции поверхности Фергюсона. Программа FMILL/APTLFT для станка с числовым управле- управлением использует кривые этого последнего типа. Сначала искомая поверхность определяется через некоторое число порций, как описано в разд. 7.21. Затем строятся линии, идущие вдоль всей поверхности и расположенные одна от другой на небольших
222 Глава 7 равных параметрически расстояниях в поперечном направлении. Далее на каждой из этих линий задаются близко расположенные точки с параметрически равными интервалами в продольном на- направлении. В каждой точке получающегося в результате массива вычисляются гц х rv, чтобы найти направление нормали к поверхнос- поверхности. И наконец, эти нормали используются для вычисления соответст- соответствующего положения верхушки фрезы, как будет показано в разд. 9.3. Программно управляемая фреза движется так, что ее верхушка между каждой парой последовательных вычисленных положений следует по прямой линии. По достижении любого края поверх- поверхности фреза перемещается в поперечном направлении до следую- следующей линии и затем возвращается по ней. Таким образом обра- обрабатывается вся поверхность. Дополнительную информацию о программе FMILL/APTLFT можно найти в работе Гулда A972). Диалоговая система проектирования поверхностей, основан- основанная на разбиении порций, описана Чеззи и Тизато A973). Общая форма объекта сначала грубо определяется через небольшое число крупных порций. Затем в областях, где необходимо уточнение деталей, порции разбиваются на меньшие, возможно, несколько раз. Любые требуемые изменения проводятся с этими малыми порциями; они имеют только местное значение и не влияют на общую первоначально определенную форму.
Глава &. Конструирование с помощью поперечных сечений 8.1. Проектирование изделий с прямолинейной осью с использованием порций поверхности Безье Существует много изделий, обладающих «естественной» осью, относительно которой они обычно имеют некоторую степень сим- симметрии. Эти изделия, как правило, конструируются заданием ряда поперечных сечений, нормальных к оси. В этом случае форма поверхности между заданными поперечными сечениями вычис- 1рофиль боковой Профиль передней проекции вечвиие ВВ Шение СС Рис. 8.1. ляется путем интерполяции, использующей в качестве опорных одно или несколько определяемых проектировщиком продольных сечений, или профилей (рис. 8.1), как описано Фоксом A978).
224 Глава 8 Отдельные поперечные сечения могут быть заданы явными, неявными или параметрическими уравнениями, и интерполяция между этими сечениями тоже может соответствовать одной из этих трех форм представления. По соображениям, высказанным в разд. 4.1.5, мы будем использовать здесь параметрический ме- метод, но из этого не следует, что данный выбор наилучший при всех обстоятельствах. ^ При наличии прямолинейной оси в качестве оси z берется ось проектируемого изделия, так что поперечные сечевия будут при- принадлежать семейству кривых х = х(и, v), y = y(u,v). Здесь пара- параметр v определяет отдельные поперечные сечения и в дальнейшем будет называться профильным параметром. Параметр попереч- поперечного сечения и описывает отдельные точки данного поперечного сечения. Изменение поперечного сечения вдоль оси г можно задать, определив z как функцию параметра v; поверхность тогда пред- представляется уравнением (8-1) Проекцию радиуса-вектора г на плоскость соответствующего поперечного сечения можно обозначить через s = xi + yi. Тогда, например, символы Sj и s (и) обозначают соответствующие состав- составляющие векторов гх- и г(м). При этом уравнение (8.1) можно за- записать короче: )k. (8.2) Конструирование с помощью поперечных сечений может, конеч- конечно, проводиться с применением порций поверхности, основанных на бикубических или бирациональных сплайнах, которые рас- рассматривались в разд. 5.1 и 5.2. Так как параметрические кривые при постоянном v являются кривыми поперечного сечения, то характеристические ломаные этих кривых являются плоскими многоугольниками в плоскостях поперечных сечений. Если в качестве примера взять метод построения порции би- бикубической поверхности Безье, то кривая поперечного -сечения для данного значения v составляется из сегментов, описанных уравнениями вида я (и, v) = (l-u)* г = г(о), (8.3) где so(v), &i{v), s2 и s3w указывают положение вершин характе- характеристического многоугольника поперечного сечения при z = z(p).
Конструирование с помощью поперечных сечений 225 па) ib.a) Если кривые поперечного сечения обладают некоторой сим- симметрией, скажем симметрией относительно оси изделия или сим- симметрией относительно плоско- плоскости, проходящей через эту ось, то достаточно сконструи- сконструировать лишь часть кривой. При этом остальная ее часть строится с помощью преоб- преобразований координат, описан- описанных в гл. 3. Так, например, для кривой Безье на рис. 8.2 ось г является осью симмет- симметрии четвертого порядка, по- поэтому необходимо определить только сегмент в первом квад- квадранте, задав so = ai, st = i [а,Ь\ <аО) Остальные квадранты полу- Рис, §.2. чаются отражением относи- относительно осей Ох и Оу. Продольные изменения поперечных сечений в уравнении (8.3) определяются характеристическими ломаными кривых r0 (v) = so(w)+ + г (v) к и т. д. 8.1.1. Конструирование с помощью пропорциональных поперечных сечений Если поперечные сечения имеют постоянную форму, но раз- различные размеры, то все они пропорциональны одному основному поперечному сечению, в качестве которого выберем сечение с параметром р=*0. Таким образом, ) = а(о)8(и, 0), (8.4) где ос (и) и z(v) вместе задают продольный профиль. Ясно, что положения вершин характеристических многоугольников попе- поперечных сечений будут изменяться аналогично: s0 (v) = a (v) s0 @) и т. д. (рис. 8.3). Обозначим вершины основного многоугольника через s00, s10, s20 и s80. Масштабная кривая а = а (v), г = г (v) может быть теперь пред- представлена двумерной кривой Безье в плоскостях а—г; ее харак- характеристическая ломаная есть PoPiPtPs> как показано на рис. 8.4. Таким образом, (8.5) 8 А Фокс, М. Пратт
226 Глава 8 Например, если основное сечение является приближенно еди- единичной окружностью, получаемой с помощью комбинации неко- некоторого числа кубических сегментов, то поверхность, соответствую- соответствующая рис. 8.4, имеет колоколообразную форму, показанную на рис. 8.5. г. 3 'о 0 \ «2 .-***¦"" ° т «0 ^ Ро Of Пересчитанная ломаная 0 / х Основная ломаная Рис, 8.3. Рис. 8.4< Рис. 8.5 Тогда радиусами /? поперечных сечений при г = г0 и г = гй являются соответственно а0 и а3. При г = г0 поверхность каса- тельна конусу, определяемому окружностями /? = а0, г = г0 и # = аь z — Zt. Подобный касательный конус при гзг8 опреде-
Конструирование с помощью поперечных сечений 227 ляется окружностями R = сс2, г = г2 и R — a3, г — z3, как пока- показано на рис. 8.5. Тогда 16 вершин характеристического многогранника любой порции представляются в виде [г„г,г2г3]. (8.6) г- г._ г_ г.. S-. к в= 1"оо 1"ю Г2о -Г3о Г.1 Гц «\st Г31 1*02 ГИ «2 1*82 Г03~ Г13 г23 Г88- *00 ^10 S20 -S30- [а0, а 1. «2. «з] к к к .к 8.1.2. Интерполяция двух поперечных сечений с использованием только одной профильной кривой Сечения v = 0 и v = 1 могут быть различны как по форме, так и по размеру. Простое семейство промежуточных форм представ- представляется уравнением s (и, v) = A — а (о)) s (и, 0) + a (v) s (и, 1), (8.7) где а@) = 0 и аA)=1. Так как используется только одна функция смешения a(v), то промежуточная поверхность определяется одним профилем. Для любого данного параметра w — v0 сечение есть геометрическое место точек, делящих отрезки, соединяющие точки на кривых s(«,0) и s(u, 1) в постоянном от- отношении [1— a (wo)J:а (и0), как по- показано на рис. 8.6. Характери- Характеристические многоугольники интер- интерполируются таким же образом. Пусть многоугольник для попереч- поперечного сечения s(«, 0) имеет вершины s00, si0, s^ и s80, а много- многоугольник для сечения &(и, 1)—вершины s08, s18, s28 и s88. Если функции a(v) и z(v) представляются уравнением (8.5) с а„ = 0 и а„=1, то вершины характеристического многогранника определяются формулой 1 1-е Рис. 8.6. 1oo ^oi •"ю rii •0 1*21 Гао Га1 Г»2 Гц Г22 г82 Г08 Гц. Г28 Г83- soo S10 S2U -sao S03 Sis s23 S88- Г1 1—ax 1—a, 01 [0 aj a2 lj k k LkJ (8.8)
228 Глава 8 Эта простая формула требует от пользователя задания плоских характеристических многоугольников для поперечных сечений на каждом краю порции поверхности, а также ломаной, описываю- описывающей в плоскости а—z выбранный профиль (как, например, на рис. 8.4). Это составляет 22 единицы информации на порцию. Когда поперечное сечение строится из нескольких сегментов, все соответствующие порции должны иметь те же самые значения аг, а2, z0, ги гг и г3, так что для этой простой формулы можно заранее определить только один профиль. Коллинз и Гулд A974) использовали подобный метод для интерполяции поперечных сечений, определенных через полярные координаты, введенные в разд. 1.2.1. В этом случае два попе- поперечных сечения описываются функциями г = го(9) и r — r1 (9) через один параметр 0. Промежуточные поперечные сечения да- даются (в тех же координатах) уравнением (v)r1(Q). (8.9) Функция смешения может быть определена, если известно про- продольное сечение какой-либо плоскости 9 = 90. Таким образом, если сечение плоскостью 9 = 0 представлено в виде г = R (о), z = z(v), то функция смешения есть Преимущество этого метода состоит в том, что он прост и на- нагляден. Заметим, что необходимо выбирать поперечные сечения и профильную кривую так, чтобы г[0)Фго@). 8.1.3. Интерполяция двух поперечных сечений с использованием двух профильных кривых Более общий случай интерполяции двух заданных кривых поперечных сечений, в котором профили задаются обеими сторо- сторонами порции, описывается уравнением В = 800 808 »io Sis л о S20 S23 с с азо 'зз-1 rl 0 1 .0 1 1 —«oi «oi —«31 1 1 — «02 «02 — «32 «32 о- 1 0 1. I -r k k k _k . (8.11) В интерполяции первых двух вершин многоугольников попе- поперечных сечений участвуют aol, a02, z0, 2,, г2 и г8, тогда как для последних двух вершин она определяется величинами a8J, a82, zt, zu z2 и 23. (Пример показан на рис. 8.7 и 8.8.) Ясно, что сво- свободно может быть выбран3только один профиль (основной профиль). Хотя другой, вспомогательный профиль имеет заданные касатель-
Конструирование с помощью поперечных сечений 229 Вспомогательный профиль -v 1 А *00 *20 .«30 V \Г/юВный профиль ¦z=z0 профили Рис. 8.7. Характеристические ломаные одной порции (схематически),
230 Глава 8 ные на каждом конце, его полнота фиксирована, потому что в обоих профилях использовались одни и те же значения г. Это является следствием выбора уравнения (8.1), в котором г есть функция только v. Хотя при ослаблении этого ограничения могут быть получены поверхности более общего вида, здесь это не делается, поскольку наша задача—проиллюстрировать простые методы определения с помощью небольшого числа плоских кривых. Более общая поверхность, основанная на двух сечениях и двух профильных кривых, описывается уравнением г (u, o) = a1(o)81(u) + a>(o)8,(u) + 2(o)k, (8.12) которое естественно обобщает метод 'конструирования с помощью пропорциональных сечений из разд. 8.1.1. Все поперечные сечения принадлежат семейству конфигураций, порожденному двумя основными сечениями s = s1(«) и s = s2(«). С помощью этого уравнения поверхности, состоящие из многих порций, легче конструировать, чем с помощью уравнения 8,11. При гладких кривых сечений и интерполирующих кривых, опре- определяемых аДи), z(v) и аа(у), z(v), полученная поверхность также будет гладкой. Функции ax (v), a2 (v) и г (v) наиболее удобно вычислять по двум продольным профилям, заданным в координатной форме. Можно обобщить метод на семейства поперечных сечений, порожденные тремя и более основными сечениями. Однако в таких случаях может возникнуть проблема осцилляции, характерная для интерполяции по точкам. Если требуются более сложные семей- семейства поперечных сечений, то рекомендуется интерполяция сплай- сплайнами из разд. 7.5. 8.2. Проектирование изделий е прямолинейной осью с использованием порций обобщенных поверхностей Безье Хотя полиномиальные уравнения Безье обычно используются для описания кривой в декартовых координатах, они могут быть применены для описания осевого изменения любого свойства кри- кривых поперечных сечений. Например, семейство поперечных сечений n«j (8.13) Представляет семейство окружностей переменного радиуса а,
Конструирование с помощью поперечных сечений Если радиус изменяется линейно по г, то образующаяся по- поверхность является конической. Это соотношение может быть за-, писано в параметрической форме уравнениями Поверхность вращения, показанная на рис. 8.5, может быть описана уравнением (8.12) и полиномами С помощью полиномов Безье можно описать изменения более чем одного параметра. Так, например, кривые поперечного сечения s = (a—Ь cos 4«) cos mi -\-(a—&cos4«).sinMJ (8.15) описывают для малых величин Ыа окружности, к которым добав- добавляется некоторая «квадратноеть». При больших Ыа получается картина клеверного листа. Следовательно, изменяя а и Ь вдоль оси г, можно получить гладкую поверхность, показанную на рис. 8.9. Рис. 8.9. Поверхность на рис. 8.9 образована с помощью кубической кривой Безье, определяющей осевое изменение а и Ь следующим образом: а = A —vfa0 + 3v(I — t»J а, + 3»! A — v)a, + v3a3, b^(l~vKb0 + 3v(l— t»)a6,+3y3(l— v)b2 + v%, (8.16) г = A—vKz0 + 3t» A —vyz1 -f 3v*. A —v) z2 + v6za.
232 Глава 8 Однако заметим, что, как и в предыдущем разделе, где лишь один из профилей мог проектироваться свободно, изменения а и b не могут задаваться незави- независимо. Один параметр должен быть выбран как основной; дру- другой же параметр, который ис- использует те же самые величины 20, zlt z2 и z3, будет называться вспомогательным. Поперечные сечения не обяза- обязательно описывать параметриче- параметрически. Семейство конических кри- кривых -1)(у-1) = 0 (8.17) является однопараметрическим семейством кривых, с помощью которого построена поверхность, если задать зависимость % от г. Таким образом, например, формулы (8.18) дают поверхность, показанную на рис. 8.10. Эти обобщения кривых Безье являются примерами «непрямых конструкций», описанных Уилингой A974). Рис. 8.10, 8.3. Конструкции поперечных сечений, основанные на пропорциональной развертке Уже многие годы графический метод, известный как пропор- пропорциональная развертка, используется в кораблестроении, самоле- самолетостроении и автомобилестроении. В этом методе с помощью ли- линейных комбинаций четырех граничных кривых строится поверх- поверхность. Коэффициенты линейных комбинаций этих кривых пропор- пропорциональны расстоянию, взятому по направлению соответствую- соответствующей оси конструирования. На рис. 8.11 кривые DHC и AGB являются поперечными сечениями в плоскостях, нормальных оси г. Мы хотим образовать йромежуточное сечение EJF. Вначале определим соответствующие точки G и Н на АВ и DC следующим образом. Проведем горизонтальную линию А'В'
Конструирование с помощью поперечных сечений 233 через вертикали, выходящие из А и В. Проведем A'D' и В'С как параллельные линии до пересечения с вертикалями DD' и СС в точках D' и С соответственно (для D'A'B' и C'B'N' мо- Рие. 8.11. жет быть выбран любой подходящий угол). Точка, соответствую- соответствующая G, получается проведением вертикальной линии GG', затем линии G'H' параллельно A'D' и, наконец, вертикали Н'Н, кото- которая при пересечении с DC дает точку Н. Для задания точек G и Н использован параметр а, где A'G':G'B'—а:A—а). (Заме- (Заметим, что E'J':J'F' =D'H':H'C =а:A— а), поскольку линии A'D', G'H' и В'С являются параллельными.) Тогда кривые АВ и DC линейно параметризуются по х, сле- следовательно, G имеет координаты Xg = Л1 (у-) ~ \1 —а/ X где х13 и хи — х-координаты А и В, a yt (а) — функция, опреде- определяемая формой кривой AGB. Кривая DC параметризуется таким же образом. Аналогично параметризуем AED и BFC линейно по у, исполь- использовав § в качестве параметра. Получим следующие уравнения
234 Глава 8 для граничных кривых, включающие координаты, отмеченные на рис. 8.11: AGB: *=*j(a) = (l— a)xi3 + axu, у = у?(а), DHC: x«*x,(a)-(l — a)xis + axUf y = yt{a\ (R ]q. AED: *=*3(P), у-у,(р)=-A-Р)у + Рл l ' BFC: x=xt<P), t/=*/4(P) = (l-p)< Промежуточные точки, такие, как J, в новом поперечном се- сечении EJF строятся следующим образом. Линия H'G' представ- представляет точки с параметром а. Тогда J' — это пересечение E'F' и G'H'. Координата х точки J есть Xj = (l — a)#E4-a#F> и, исполь- используя (8.19) для описания Е и F, получим и подобным образом Ui = У («. Р) = A —Р) У1 <«) + Ру, (а). (8.20) Так как кривые AGB, EJF и DHC являются поперечными сече- сечениями, образованными плоскостями, нормальными оси г, и отли- отличаются значением параметра Р, то форма поверхности определяется соотношением между г и р. Окончательное уравнение поверхности имеет вид r = r(a, P) = x(a, P)i + 0(a, P)j + z(p)k, (8.21) где x(a, P) и у (а, Р) записаны в форме (8.20). Сравнение с (8.1) показывает, что это частный случай построений, рассмотренных в разд. 8.1. Если, например, функции *3(Р). xt (Р), Ы°0, УАа) и 2(Р) яв- являются кубическими полиномами, то мы имеем частный случай бикубической поверхности Безье, в котором х линейно по а, а у линейно по р. Это означает, что четыре характеристические ло- ломаные, расположенные поперек порции поверхности, имеют рав- равные ^-приращения между точками, как показано для ломаной ABCD на рис. 8.12. Подобным же образом четыре ломаные, рас- расположенные вдоль порции, имеют равные «/-приращения между точками, как показано для ломаной AEFG. Эти ограничения су- сужают возможности обеспечения гладкости сочленения порций, поскольку длины касательных векторов заранее определены гра- граничными кривым». Отметим здесь, хотя это и не имеет непосредственного отно- отношения к материалу данной главы, что пропорциональная раз- развертка возможна даже в тех случаях, когда кривые DHC и AGB являются не поперечными сечениями, образованными па- параллельными плоскостями, а обычными пространственными кри- кривыми. Этот более общий случай изучили и Мейр, и Дункан
Конструирование с помощью поперечных сечений 235 A975); пропорции по г получаются тогда из второй проекции. В этой работе описана программа для ЭВМ, реализующая такую развертку, в связи с предложенным авторами методом числового управления металлорежущим станком. Рис 8.12. 8.4. Проектирование конфигураций с искривленной осевой линией При конструировании трубопроводов и туннелей большое вни- внимание часто уделяется поперечным сечениям, нормальным к на- направлению потока. Если трубы или туннели искривлены, то обынно конструирование их поверхностей производится с помощью некоторого количества поперечных сечений, нормальных к неко- некоторой средней линии тока. Если эта кривая (известная как осевая линия) имеет пара- параметрическую форму г = г,(у), то можно использовать векторы нормалей N (у) и В (у), определенные в разд. 4.2.4, в качестве единичных векторов локальной системы координат, плоскость которых нормальна осевой линии в каждой ее точке. Если поперечное сечение в этой нормальной плоскости опи- описывается параметрически уравнением s = /(«, v)N(v) + g(u, у) х X В (у), то уравнение точки поверхности можно представить в виде г=г(и, v) = rs{v) + f(u, v)N(v) + g(u, у) В (у), (8.22) как показано на рис. 8.13. Это есть непосредственное обобщение уравнения (8.1), в котором осевая линия была прямой г,A>)=ч =z (у) к.
236 Глава 8 Однако такая «естественная» система координат имеет два не- недостатка: во-первых, при перемещении она вращается относительно осевой линии, что затрудняет геометрическую трактовку компо- Т Сп/юйнаЬая кривая Рис. 8.13, нент f (и, v), н g(u, v), и, во-вторых, система не определена, если осевая линия имеет какие-либо прямолинейные отрезки. Система «Duct», описанная Госслингом A976), основана на ло- локальных осях в нормальной плоскости, причем оси выбираются так, что одна ось всегда находится в горизонтальной плоскости. Таким образом, в основном устраняются оба недостатка (8.22). Тогда уравнение поверхности имеет вид г = г(«, v) = rs(v) + f(u, v)n1(v)'{-g(u, w)n2(y), (8.23) где nf = (г, х к)/1 г, х k |, na = (щ X rs)/\ rs |. Следовательно, единичный вектор п, параллелен плоскости Ох у и лежит в нормальной плоскости. Единичный вектор па ле- лежит в нормальной плоскости и перпендикулярен пг. Уравнения (8.22) и (8.23) имеют одну особенность, заключаю- заключающуюся в том, что вектор нормали к поверхности имеет компоненты, зависящие от второй производной уравнения осевой линии. Таким образом, непрерывность нормали к поверхности зависит от непре- непрерывности кривизны осевой линии, если специально не выбирать f(u, v) и g~(u, v). Система «Duct» В качестве осевой линии использует кривую Безье, так что непрерывность ее кривизны не гарантируется, как было показано в разд. 6.3.3. Однако программа составлена так, чтобы минимизировать получающуюся разрывность направления нормали к поверхности. Функции f (и, v) и g(u, v) определяются порциями поверх- поверхности Безье бикубического типа, вроде показанной на рис. 7.4.
Конструирование с помощью поперечных сечений 237 Так как линии v = const должны быть плоскими кривыми, то отсюда следует, что вершины ломаных (г00, rf0, r20, r30), (roi, rfi, r2i, г31), (Г02> Г121 Г22> ГЗа) И (Г03> Г13> Г23> ГЗз) должны быть четырьмя наборами компланарных точек. Первый и последний наборы являются характеристическими ломаными истинных поперечных сечений и должны быть выбраны с учетом данных, предоставленных конструктором для этих двух поперечных сечений, которые автоматически будут плоскими кри- кривыми. Если конструктор не предусмотрел иного, то система «Duct» будет подгонять ряд сегментов приблизительно эллиптической фор- формы, выдерживая непрерывность производных в точках членения. Точки г0]-, г02 и r3i, r32 завершают построение характеристи- характеристических ломаных продольных кромок порции. Их положения на плоскостях точек (гю1, r1I( r2l, г31) и (г02, г]а, г22, г32) вычисля- вычисляются программой такими, чтобы разрывы нормалей к поверхности были минимальными. Внутренние вершины многогранника располагаются так, чтобы eav = 0 в углах порции; большое число порций служит гарантией того, что полученная поверхность окажется удовлетворительной. Для ознакомления с дальнейшими деталями метода, включая случай вырожденных порций, читателю рекомендуется обратиться к работе Госслинга A976). 8.5. Площади и объемы осевых конфигураций Объем изделия, форма которого задана уравнением (8.2), мо- может быть вычислен интегрированием по г площади сечения А (и). Таким образом, для заданной порции поверхности Безье вида, рассмотренного в разд. 8.1, объем определяется интегралом [(v)dz=) A (v)z(v)dv. (8.24) о Площадь A (v) может быть определена аналитически следую- следующим образом. Векторная площадь A (v) берется из уравнения D.46). При условии что направление возрастания параметра и образует правый винт с положительным направлением оси г, величина площади А (и) представляется интегралом A (v) = j'\k-sxs,ldu. (8.25)
238 Глава 8 Вектор s(u, v) может быть выражен через векторы s^ вер- вершин многогранника из разд. 8.1 формулой • (и, f) = 22|]2/S;;W'. (8-26) где m,y есть элемент ij матрицы М коэффициентов Безье, вхо- входящей в уравнение E.6), и каждый индекс, по которому произ- производится суммирование, принимает значения от 0 до 3. Аналогично su(u, y) = 2'222P«/'~lmo<?serm*r!;'*» (8.27) р q r s где символ 2' означает суммирование только от 1 до 3. После подстановки этих выражений в (8.25) мы получим урав- уравнения где = 2 2 2 2 mlkmsrv"*dkr, (8.28) dkr=т ? ? Е' Е fk • «/л* х я»*v/»'*' d«- (8-29) ' i р я о Уравнение (8.29) может быть упрощено следующим образом: где a,A = 2>/,s/A. (8.31) Уравнения (8.28), (8.30) и (8.31) могут быть применены для быстрого и точного получения площади любого сечения. Для вычисления объема упростим (8.28), заменив qls = !JAdftrmsr; при этом получим 22^У*. (8.32) Выражение для z(v) дается в форме Безье z (v) = 2 2 ^пЦ/Zf так, что производная z(v) представляется в виде г (v) = 2' 2 iv'-'m^zj = 2' »V-»o/t (8.33) где C, = 2m,/Z/. (8_34)
Конструирование с помощью поперечных сечений 239 Остается подставить (8.32) и (8.33) в формулу (8.24) для по- получения объема V. После интегрирования получим уравнение Подобный анализ возможно сделать и для порций полиноми- полиномиальной поверхности более высокого порядка, но вычисления для порций рациональных полиномиальных поверхностей обычно тре- требуют численного интегрирования, поэтому здесь прямое численное определение объемов будет, вероятно, занимать такое же время.
Глава 9. Применение ЭВМ для конструирования и изготовления поверхностей 9.1. Пересечения кривых и поверхностей 9.1.1. Вводные замечания Кривую пересечения двух поверхностей определяют, решая соответствующую систему нелинейных уравнений (эта система линейна, только если поверхности являются плоскостями). Для их решения обычно приходится применять численные методы; исклю- исключение составляют некоторые простые поверхности, например квад- квадратичные, в случае которых для упрощения вычислений можно использовать аналитические методы (Левин, 1976). Вычисление кривой пересечения С двух поверхностей St и S8 может рассматриваться либо как задача нахождения решения си- системы уравнений (в общем случае нелинейных), либо как задача минимизации, в которой квадрат расстояния 1^—га|а между пе- переменными точками Р1 (i^) на St и Р2 (га) на 5а минимизируется за счет подбора точек rt и га. Метод, основанный на решении систем, требует известных мер предосторожности. Мы опишем его довольно подробно, так как это прояснит трудности, которые могут возникнуть при примене- применении любого другого метода. Кроме того, имеется много общего между этим методом и итерационным методом, использованным в программе APT III ARELEM для вычисления движения инстру- инструмента в станках с программным управлением. Как было отмечено в разд. 1.1.8 при обсуждении вопроса о пересечении плоских кривых, задача несколько упрощается, когда одна поверхность определена неявно, а другая параметрически. Если «неявная» поверхность задается уравнением /(г) = 0, а «па- «параметрическая»— соотношением г = г1 (и, v), то, как можно видеть, кривая пересечения имеет вид F(u, y) = 0. Нахождение пересечения двух неявно заданных поверхностей /!(г) = 0 и /а(г) = 0 связано с решением системы двух уравнений с тремя неизвестными. Наконец, если обе поверхности заданы параметрически фор- формулами г-г1(и„ Vj) и г = га(иа, у2), то их пересечение описы- описывается уравнением ^(ы^ vt)—га(«а, У2) = О. Этому векторному уравнению соответствуют три скалярных уравнения с четырьмя неизвестными. В каждом случае число неизвестных на единицу больше, чем число уравнений, поскольку точки кривой имеют в общем случав
Применение ЭВМ для конструирования и изготовления поверхностей 241 одну степень свободы. При решении этих уравнений мы получаем последовательность точек вдоль кривой, налагая на каждом шаге дополнительное ограничение g (г) = 0. Следовательно, решается последовательность задач на пересечение трех поверхностей. Если мы рассмотрим смешанную задачу /(г) = 0 и г = г1(ы, и), то увидим, что ограничение g (г) = 0 эквивалентно дополнитель- дополнительному уравнению G (и, v) = 0. Таким образом, на каждом шаге нам надо решать систему Р(и. о)«0. G(u, о) = 0. ( ¦ > В случае двух неявно заданных поверхностей ff (r) = 0 и t2 (г) =.-. 0 введение дополнительного уравнения g (г) =¦ 0 дает си- систему из трех уравнений с тремя неизвестными Мг> = 0, (9.2) Очевидно, стоит посмотреть, нельзя ли какую-нибудь из этих поверхностей преобразовать к параметрическому виду, так как это позволяет свести задачу к задаче (9.1). Например, плоскости могут быть параметризованы, как это было описано в разд. 4.1.4. Квадратичные поверхности можно представить с помощью рацио- рациональных квадратичных функций, используя стереографическую проекцию на плоскость (см. Соммервилль, 1934). Однако при при- приведении к параметрическому виду допустим определенный произ- произвол, поскольку такое приведение может быть осуществлено не единственным образом. \ В случае двух параметрически заданных поверхностей г = =Г1(«1, vt) и г2 = га(ма, у2) ограничение g(r) = 0 можно преобра- преобразовать к виду G1(u1, v^ — 0 или же G2(m2, и2) = 0. Эти эквива- эквивалентные уравнения можно скомбинировать. Присовокупляя их линейную комбинацию к уравнению поверхности, приходим к системе «i) — га(иа, wa)*0, За' счет выбора % и \i можно упростить уравнение ограничения. Большая выгода достигается, если удается одну поверхность пре- преобразовать к неявному виду. К сожалению, наиболее часто ис- используемые параметрически задаваемые поверхности —порции бикубических поверхностей—не могут быть представлены. Перед тем как более подробно обсуждать упомянутые ограни- ограничения и соответствующие методы решения, заметим, что до сих пор мы рассматривали эти кривые пересечения безотносительно
242 Глава 9 к их приложениям. Если желательно получить проекции кривой пересечения или найти кривую отклонения в численном процессе управления, часто выгоднее объединить эти два процесса. Так, например, Сабин A976) показал, что задача нахождения цент- центральной проекции кривой пересечения двух квадратичных поверх- поверхностей на заданную плоскость решается наиболее экономично прямо в координатах этой плоскости при условии, что не тре- требуется много различных видов; следует лишь позаботиться о том, чтобы избежать ошибок вблизи двойных точек проектируемой кри- кривой. Помимо того, в этом случае выбор ограничения на данном шаге осуществляется надлежащим образом с помощью этих коор- координат. 9.1.2. Решение систем уравнений Хотя смешанная задача (9.1) приводит, несомненно, к про- простейшим уравнениям, часто возникают трудности, которые лучше всего проиллюстрировать, рассмотрев систему (9.2), где решение проводится в пространственных переменных. В приложении 4 показано, что система уравнений типа (9.2) может быть решена итерационно с помощью метода Ньютона— Рафсона (который в последующем для краткости называется ме- методом Ньютона) при условии, что известно хорошее начальное приближение и что матрица Якоби J неособая в каждой точке аппроксимации. • В случае системы (9.2) один шаг метода Ньютона может быть записан следующим образом: гн.1==г; + бг/. Здесь г( есть t-я ите- итерация и поправочный член бг^ задается в виде J(r,Nr, F(r,); (9.4) матрица Якоби J и вектор-функция F представлены соответственно в виде V/' , F= /, Геометрическая интерпретация уравнения (9.4) состоит в том, что г,+1 лежит на пересечении трех плоскостей, которые парал- параллельны касательным плоскостям к поверхности fi(r) = f1(rl), /•(г)я/•(•"/) и g(r)==g(r,) в точке г==г,. На рис. 9.1 этот случай иллюстрируется на плоскости для се- семейства поверхностей /,(r)=:const и jfg(r) = const. «Смещенные» плоскости OPj и ОРа проходят близко к пересечениям М и N нормалей к этим плоскостям, проведенным через точку Р, с по- поверхностями /i = 0 и /2 = 0, если fi(r*) и /а(г<) достаточно малы.
Применение ЭВМ для конструирования и изготовления поверхностей 243 Мы предполагаем, что g выбрано так, что пересечение соответ- соответствующей смещенной плоскости с линией пересечения плоскостей ОР и ОР2 хорошо определено. Рис. 9.1. Однако если две смещенные плоскости ОР, и ОР2 параллельны при т — г{, то они либо пересекаются в бесконечности, либо сов- совпадают. В обоих случаях простая процедура Ньютона не годится. Обычно причина состоит в том, что начальное приближение было слишком далеко от точного решения; положение часто можно исправить, используя информацию, полученную на предыдущих шагах. Более трудная проблема возникает, когда поверхности St и 52 имеют совпадающие нормали в одной или нескольких точках линии пересечения. Сколь бы хорошим ни было начальное при- приближение, смещенные плоскости совпадают или почти совпадают, и их пересечение не определено или плохо определено. Матрица Якоби J в этом случае особая или «плохо обусловленная». Это и не удивительно, так как кривая пересечения поверхностей сама плохо обусловленна, в том смысле, что малые изменения поверх- поверхностей приводят к большим изменениям кривой пересечения. Если мы хотим, чтобы наша процедура могла справиться с подобными затруднениями, следует прибегнуть к более сложным методам, таким, как модифицированный метод Ньютона, предло- предложенный Дёфларом A974). Будем писать J(. вместо J (г,-) и F,- вместо F(r,). Тогда шаг итерации Ньютона запишется как бг,- = — Jf1 F,-. Модификация Дёфлара состоит в том, что берется подходящий шаг в направле- направлении скорейшего спуска — \Т функции уровня Т = 1/2 (J71F/)rJ,Fi-. Для этой функции уровня — VT = — ij^Fi, так что направление скорейшего спуска то же самое, что и для шага по Ньютону.
244 Глава 9 Однако длина шага теперь определяется линейным поиском вдоль этого направления, имеющим целью отыскать точку, в которой Т достигнет минимума. В случае когда матрица Якоби плохо обусловленная или осо- особая, Дёфлар при определении функции уровня Т использует псев- псевдообратную матрицу Jf (см. Пенрозе, 1955) вместо обратной мат- матрицы Jjl. Бен-Израэль A966) показал, что получающийся метод локально сходится к некоторой точке г, удовлетворяющей урав- уравнению Таким образом, точка г есть либо решение уравнения F (г) = О, либо точка, где матрица J (г) особая, т. е. нормали к нашим трем поверхностям компланарны, как мы видели выше. Для разрешения этой трудности надо привлечь к рассмотрению вторые производ- производные. Вопрос об использовании вторых производных мы обсудим в разд. 9.1.4 в связи с алгоритмами минимизации. Дальнейшие подробности об этом методе читатель может найти у Дёфлара A974), а общее обсуждение систем нелинейных урав- уравнений— у Рабиновица A970) и Денниса A976). Та же проблема возникает в более скрытой форме и с урав- уравнением (9.1). Если поверхности /(г) = 0 и г = г,(и, v) имеют одну и ту же нормаль в некоторой точке, то вектор V/ параллелен roxiv Отсюда следует, что dF/du=:\F-ra = 0 и dF/dv-=0. Сле- Следовательно, матрица Якоби системы (9.1) особая независимо от вида G(u, v). В этом разделе мы предполагали, что может быть найдена последовательность ограничений g(r) = 0, обеспечивающих схо- сходимость ньютоновых итераций и дающих разбиение кривой пере- пересечения, подходящее для наших целей. В следующем разделе процедура определения шагов рассматривается более подробно. 9.1.3. Определение длины шага Выбор длины шага, естественно, зависит от рассматриваемого приложения и применяющейся схемы интерполяции. Здесь мы будем применять линейную интерполяцию, которая используется в графопостроителях и многих механизмах с программным управ- управлением. Кривая пересечения аппроксимируется в этом случае последовательностью прямолинейных сегментов, как показано на рис. 9.2. Оптимальный выбор для случая интерполяции дугами парабол и окружностей не будет обсуждаться, хотя последующие замечания до некоторой степени относятся и к нему. При использовании линейной интерполяции обычно устанав- устанавливают допуски на максимальное отклонение б истинной кривой
Применение ЭВМ для конструирования и изготовления поверхностей 245 пересечения от хорды, соединяющей две последовательные точки, измеряемое по нормали к хорде, как показано на рис. 9.2. Рис. 9.2. В случае малых шагов приемлемой аппроксимацией кривой служит ее соприкасающаяся окружность, так что кривизну кри- кривой пересечения в данном месте можно использовать для опре- определения длины шага. Используя теорему Пифагора, можно по- показать, что L* = 4SBp-S), (9.6) где L — длина шага, а р —радиус кривизны (рис. 9.3). Кривизна кривой пересечения двух поверхностей Sj и S2 может быть выражена через нормальные кривизны хп1 и и„2 этой кривой на 5, и 52 соответственно и еди- единичные нормали tij и п2 к этим поверх- поверхностям (см. разд. 4.2.9). Пусть кривая пересечения имеет урав- уравнение r = r(s), и пусть Т, N и В—соот- В—соответственно касательный вектор, нормаль и бинормаль к этой кривой. Касательный вектор перпендикулярен обеим нормалям к нашим поверхностям, так что lhXna| (9.6) Рис. 9.3, Таким образом, хВ = — «N хТ = =F xN х (tii хng)/| nf X п21. Раскры- Раскрывая это тройное векторное произведение, получаем .fR — (9.7) Если угол между нормалями к нашим поверхностям обозначим через 9, то кривизна кривой пересечения дается формулой
246 Глава 9 Заметим, что эта кривизна стремится к бесконечности, когда нормали становятся параллельными, если только не имеет место равенство ип1=ип2; в таком случае и = ия1 = ича. Первое приближение к нормальной кривизне кривой С на поверхности S может быть получено из рассмотрения двух близ- близких точек кривой С и нормали к поверхности S в одной из них. Пусть Р и Q—близкие точки на кривой r=r(s), которым отве- отвечают значения длины дуги s и s + 6s (рис. 9.4). Рис. 9.4. Разложение функции r(s) в ряд Тейлора дает г (s + 6s) = r (s) + Ssr (s) + Ig- г (s) + О Fs3), где точки обозначают дифференцирование по s. Таким образом, согласно формулам Френе—Серре, r(s + 6s)—r(s) = ^ где векторы Т и xN вычисляются в s. Так как наша кривая лежит на поверхности S, касательный вектор Т перпендикулярен нормали п к поверхности; отсюда вытекает, что Приближая длину дуги 6s длиной хорды и пренебрегая оста точным членом, получаем _ n.[r(s+6s)-r(s)] п~ |r(s + Ss)-r(s)|2 • Кривизну к можно также выразить прямо через r(s), r(s + ) и Т (s). Так как Т вычисляется по формуле (9.6), прямая запись ничуть не более эффективна, чем аккуратное выполнение вычис- вычислений (9.8) и (9.9), хотя формально выражение для к намного проще: )—r(s))xT|/|r(s + 6s)—r(s)\\
Применение ЭВМ для конструирования и изготовления поверхностей 247 Мы предпочли выразить результат через нормальные кривизны, чтобы показать чувствительность кривизны к к углу между нор- нормалями к поверхностям. Из соотношения (9.8) видно, что кри- кривизна может стать очень большой, когда этот угол мал, так что длина шага должна быть очень мала. Таким образом, имеются две сложности, возникающие, когда нормали параллельны или близки к параллельным: трудность приложения метода Ньютона из-за плохой обусловленности матрицы Якоби и трудность в опре- определении длины шага. Выбор поверхности g(r)=*0, определяющей длину шага, может быть сделан многими различными путями. Хотя сфера радиуса L представляется наиболее очевидным кандидатом, вычислительная простота уравнения плоскости обусловила ее использование в таких программах числового управления, как APT III (II TPI, 1967) и HAPT-3D (Хиодо, 1973). Эта плоскость может быть выбрана нормальной к текущей касательной к кривой пересечения. Исходя из приближения со- соприкасающейся окружностью, расстояние d от плоскости до те- текущей точки полагается равным d = L{\ — 6/р), где L опреде- определяется из (9.5). Если текущий касательный вектор обозначить через То, а текущий вектор положения—через г0, то &(г)-(г—г,).Т,—d (9.10) (рис. 9.6). В программах числового управления, где требуется вычислить смещение фрезы, процесс обычно является итерационным и плос- плоскость g (г) = 0 выбирается нормальной к касательной в конечной тбчке Q, а не в точке Р. Об этих программах будет сказано бо- более подробно в разд. 9.3. В заключение настоящего ра- р, здела рассмотрим пересечение по- верхности с плоскостью. Эта ва- \ й / \*_ir-roiTo=d жная задача возникает, когда тре- требуется определить поперечные се- сечения для проверки геометрии по- поверхности на стадиях проектиро- проектирования, изготовления и техническо- Рис g 5 го контроля, а также при кон- конструировании нервюр, поддержи- поддерживающих листовые металлические поверхности. Рассмотрим случай бикубической поверхности, хотя после- последующие замечания применимы и к другим параметрически задан- заданным поверхностям. Поскольку функция rt(«, v) для данной по- поверхности теперь бикубична по и и у, а уравнение плоского сечения /(r) = n2-r—р линейно по г, кривая пересечения опре-
Щ Глава 9 деляется кубическим уравнением относительно и и и. Если шаги определяются условием вида (9.10), то получаем систему бикуби- бикубических уравнений F{u, и) = Па-1Ч(". «)—/>=" 0, О (и, и) =з (r^u, v) — r0)T0—d = 0 для каждого шага вдоль кривой пересечения. 9.1.4. Решение задачи о пересечении поверхностей с использованием алгоритма минимизации по методу наименьших квадратов Задача (9.2) о пересечении поверхностей может быть также представлена как задача минимизации. Будем искать точку Р* (г*), в которой функция ф (г) = 1/2 (Jl (г) +/I (r) + gz (r)) достигает мини- минимума. Ясно, что глобальный минимум этой функции достигается, когда fx (г) = fa (г) = g(r) = 0. Теория такой минимизации по методу наименьших квадратов была предложена Пауэллом A972), и чита- читатель может ознакомиться по его работе с деталями теории, вкратце излагаемой ниже. В точке локального минимума Р* функции ф (г) эта функция достигает минимума вдоль любой кривой г = г(м), которая про- проходит через Р*. Отсюда следует, что dq/du = 0 и (d\/du*) > 0 для каждой кривой г = г(м), проходящей через Р*. Используя цепное правило, можно выразить эти условия через градиент и вторые производные ф по х, у и г. А именно, ( *LY д2ф ( ду_\* д2ср ( dz_\s . ^ д2ф dx dy du* ~~ дх* \1п) "¦ ду*\ди) + дг* \1п) + дхду du~du dy dz д а2ф dz dx ^ф d2>: ^ф d*y dy d* du du^~ дг дх du du + dx du* + dy dui ~*~ дг ~! ^ дудг du du ' дг dx du du ^ dx du* ^ dy du* г дг ИЛИ nV<P, (9-12) где \q>—градиент ф (см. разд. 4.3.2), а Н—матрица Гессе (матрица вторых производных) ф. В стационарной точке функции ф мы имеем dq/du — 0 для любого касательного направления г. Таким образом, г^ф == 0 для любого г, так что условие стационарности можно записать в виде
Применение ЭВМ для конструирования и изготовления поверхностей И9 В точке локального минимума должно также выполняться неравенство tPyldu2 > 0 для любого ненулевого касательного век- вектора, так что ггНг > 0 для любого гфй. (Точка минимума яв- является стационарной точкой, поэтому член rrv<p нулевой.) Всякая матрица А, удовлетворяющая условию vrAv > 0 для всех векто- векторов v Ф 0, называется положительно-определенной. Отсюда сле- следует, что матрица Гессе должна быть положительно-определенной в точке минимума функции (р. Если ггНг < 0 для всех г^=0, то матрица Гессе является отрицательно-определенной, cPyldu2 <t0 и рассматриваемая точка Р есть точка локального максимума. Если значения ггНг иногда положительны, а иногда отрицательны, то матрица Гессе называется знако-неопределенной и Р есть сед- ловая точка; в таких точках ср достигает максимума на одних кривых и минимума на других. Алгоритм, который не делает различия между разными видами стационарных точек, вполне может выдать седловую точку. Используя обозначения, введенные в (9.4), можно представить градиент ф следующим образом: V<p = JrF. (9.13) Следовательно, стационарные точки ср являются решениями урав- уравнения JrF = O. (Таким образом, модификация Дёфлара метода Ньютона, описанная в разд. 9.1.2, выдает в качестве результата стационарную точку ср, которая может и не быть решением перво- первоначальных уравнений.) Матрицу Гессе функции ф можно представить в виде где А—матрица с элементами gfegik. (9.H) Алгоритмы, использованные для минимизации ф, являются в действительности методами Ньютона для системы уравнений Vcp = O с соответствующими модификациями. Так как матрицей Якоби этой системы служит матрица Гессе Н, то основной ите- итерационный шаг этих методов задается соотношением Н6г = —\?ф, или (JJr + ANr = — JrF. (9.15) В окрестности точки-решения г* значения fu f2 и g должны быть малы, так что матрицей А можно обычно пренебречь в срав- сравнении с JJr. Исключения имеют место, когда рассматриваемые тройки поверхностей не имеют общих точек или когда нормали к поверхностям почти компланарны, так что матрица Якоби J
ПО Глава 9 плохо обусловленна. Если удастся избежать этих трудностей, то пренебрежение матрицей А в (9.16) ведет к системе уравнений JSr = — F, и мы получаем обычные уравнения Ньютона (9.4) для задачи о пересечении. В общем случае пренебрегать матрицей А нельзя, и должна -использоваться полная матрица Гессе JJr + A. Хотя приращение бг, полученное из уравнения (9.15), может быть прямо использовано для определения следующего прибли- приближения к г*, более обычным является использование направления приращения бг как направления поиска, вдоль которого осущест- осуществляется минимизация функции ср. В случае положительной опреде- определенности матрицы Гессе это направление всегда ведет в сторону убы- убывания функции ср. Если же матрица Гессе не является положительно- определенной, то это направление может и не быть направлением спуска. Марквардт A963) и Гилл и Мюррей A974, 1976) описали два метода, которые всегда гарантируют получение направления спуска за счет подгонки направления, предписываемого уравне- уравнением (9.15), в сторону направления скорейшего спуска —Уф. Гилл и Мюррей A976) также предложили методику вычисле- вычислений при наличии седловых точек. В седловой точке уравнение (9.15) имеет решение бг = О, так что обычный итерационный про- процесс остановится. Гилл и Мюррей дают метод распознавания зна- знаковой неопределенности матрицы Гессе и вычисления направления спуска, позволяющего продолжить вычисления. Баттерфилд A978) описал процедуру минимизации для случая пересечения двух параметрически заданных поверхностей г = = rx («f, vt) и г = г2(ы2, у2). Пользователь выбирает какую-нибудь одну переменную, предназначая ей роль параметра точки на кривой пересечения, и алгоритм минимизирует функцию | rt (ых, vt) — — га(ы2, иа)|а по трем остальным переменным. Алгоритм исполь- использует полную матрицу Гессе и может работать при наличии сед- седловых точек. 9.2. Смещенные поверхности Когда поверхность обрабатывается с помощью режущего ин- инструмента (фрезы) с круглой головкой, центр инструмента дви- движется по параллельной поверхности, отстоящей от первоначаль- первоначальной на расстояние, равное радиусу фрезы R. Например, в системе FMILL-APTLFT, описанной в разд. 7.2.1, программа FMILL выдает последовательность точек и нормалей для поверхности Фергюсона, а программа APTLFT добавляет смещение на R по нормали к поверхности в каждой точке плюс последующее смещение на R вдоль оси инструмента, с тем чтобы получить положение верхушки фрезы (при установке инструмента
Применение ЭВМ для конструирования и изготовления поверхностей 251 удобнее использовать в качестве точки отсчета верхушку фрезы, а не ее центр). Выдаваемые точки определяют прямолинейные сегменты траектории фрезы, так что точность обработки зависит ОТ радиуса фрезы и размещения лекал и стрингеров, задаваемых пользователем в качестве данных для программы FMILL. Смещенные поверхности нужны также, к примеру, для обес- обеспечения допуска на толщину листовых металлических поверх- поверхностей. Поэтому, перед тем как подробно рассмотреть программы числового управления в разд. 9.3, мы напомним некоторые общие сведения о параллельных поверхностях. Рассмотрим параметрически заданную поверхность г = г1 (и, v) и соответствующую смещенную поверхность на расстоянии d по нормали пх (и, v), задаваемую уравнением г' = г,(и, v) + dn1(u, v). (9.16) Уиллмор A958) показал, что нормали отвечающих друг другу точек на поверхностях гиг' направлены вдоль одной и той же прямой, но в разные стороны, если d больше одного из главных радиусов кривизны. Если G и G'— матрицы первых фундамен- фундаментальных форм наших двух поверхностей, то |G'|n' = |G|(l-dKe)(l-dxft)n, (9.17) где ка и хь—главные кривизны исходной поверхности. Главные кривизны смещенной поверхности х'а и х'ь равны К'== K'b Таким образом, когда d = KaX или d = Xj1, кривизна параллельной поверхности бесконечна, так что она имеет ребро. Это случается, когда смещение производится в сторону вогнутости поверхности. При обработке поверхности радиус фрезы не должен, очевидно, превосходить минимального радиуса кривизны поверхности, иначе будет происходить выдалбливание. Если начертить сечение сме- смещенной поверхности, то опасные точки будут появляться в виде точек заострения или петель (см. Флаттер, 1974). 9.3. Путь режущего инструмента при числовом управлении Сравнительно простое вычисление пути фрезы, описанное в разд. 9.2, не годится для программирования числового управ- управления по трем соображениям. Во-первых, пользователь должен выбрать надлежащим образом расположенные кривые на смещен- смещенной поверхности, с тем чтобы гарантировать, что обрабатываема^ поверхность будет отвечать определенным допускам. Во-вторых^
252 Глава 9 на практике используются фрезы более сложной формы, что делает аналитическое определение смещения неосуществимым. В-третьих, что более важно, поверхности не являются нео- неограниченными; обычно обра- обработке подлежат поверхности, ограниченные с одной или нескольких сторон другими поверхностями, которые так- также должны быть точно обра- обработаны. На рис. 9.6 изображены поверхность Sif которая под- подвергается обработке в данный момент, и поверхность S2, ко- которая будет обрабатываться позже. При резании вдоль граничной кривой С инстру- инструмент должен двигаться так, чтобы выдерживались точные допуски обработки в отношении как поверхности St (называемой обрабатываемой поверхностью), так и поверхности S2 (называемой ведущей поверхностью). Эти допуски определяют по паре смещен- смещенных поверхностей для каждой из поверхностей Sx и St, так что точность граничной кривой устанавливается лишь косвенным образом (рис. 9.7). Допуск Шщш поверхности Допуск срезаемой поверхности Рис. 9.6. Граничная крибая еде-то бщ/тризтого объема Рис. 9.7, Заметим, что обрабатываемая и ведущая поверхности меняются названиями, когда мы начинаем обрабатывать S2 с Sj в качестве границы. Для того чтобы полностью обработать Si, надо задать после- последовательность путей инструмента. Выбор этих путей осущест- осуществляется на основе компромисса между высотой гребней и дли- длительностью обработки. В системе APT III (II TRI, 1967) проходы инструмента за-
Применение ЭВМ дяя конструирования и изготовления поверхностей 253 даются при помощи ряда промежуточных ведущих поверхностей с заключительным проходом вдоль границы. Если поверхность 5Х ограничена еще какой-нибудь третьей поверхностью S3, то каждый проход должен заканчиваться внутри допуска для поверхности S,. Такую поверхность называют контрольной поверхностью. Путь фрезы при каждом проходе аппроксимируется последовательностью прямолинейных сегментов. Каждая из концевых точек этих сег- сегментов определяется положением верхушки фрезы, когда инстру- инструмент находится внутри допуска обрабатываемой поверхности, веду- ведущей на данный момент поверхности и одной из последовательности псевдоконтрольных поверхностей, положение которых определяет длины шагов вдоль траектории. Эти псевдоконтрольные поверх- поверхности играют ту же роль, что и ограничения g(r) = 0 в задаче о пересечении, разобранной в разд. 9.1.1—9.1.3. В то время как выбор поверхности-ограничения определяется требуемой точностью кривой пересечения, здесь главная задача состоит в том, чтобы выдержать требуемый допуск для обраба- обрабатываемой и, возможно, контрольной поверхностей. В случае когда важна и точность кривой пересечения, эти допуски должны быть аккуратно выбраны, если угол между нормалями к поверхности мал. Процедура ARELEM в программе APT следует методике, аналогичной описанной для кривой пересечения. Для того чтобы определить касательную к пути фрезы по формуле (9.6), надо определить единичные нормали nt и п2 к по- поверхностям St и S2. Однако теперь мы не следуем точно кривой пересечения, и г^ и п2 берутся в направлении общих нормалей PiNt и P2N2 (рис. 9.8). Так, нап- например, PiNi есть нормаль к обраба- обрабатываемой поверхности St и поверх- поверхности инструмента, и P^Nj пред- представляет кратчайшее расстояние между инструментом и обрабатывае- обрабатываемой поверхностью для любого данного положения Т (г() верхушки фрезы. Точки Рх, Nlt Р2 и N2 вычис- вычисляются итеративно. Отправляясь от точки N, где нормаль инстру- инструмента имеет направление п, мы отыскиваем пересечение Р этой нормали с поверхностью St и вычисляем угол между PN и нормалью к поверхности QP. Есда он меньше, чем 0.01 рад, то точки Р и N принимаются. Если же нет, то N изменяется с учетом оценок кривизны поверхности в точке Р. У Рис. 9.8.
254 Гяава 9 Для любой заданной поверхности программа APT III требует подпрограмму DDST, чтобы та определила точку пересечения Р для данных точки N и направления п, а также программу UNRMAL для вычисления нормали к поверхности в точке Р. Программа DDST обсуждается в разд. 9.4. Используя эти общие нормали пх и п2, программа APT III на каждом шаге определяет «касательное направление» к пути фрезы для любого заданного положения инструмента Т. Если Т не лежит в пределах допуска, то это лишь прибли- приближение к касательной к пути фрезы, который сам плохо опреде- определен из-за допусков, разрешаемых для St и S2. Отправляясь от заданного положения инструмента в пределах допуска для обрабатываемой и ведущей поверхностей, ЭВМ вы- вычисляет его последующие воображаемые движения, с тем чтобы получить очередную точку. Сначала шаг делается вдоль теку- текущего направления касательной г^ХПа, причем длина шага уста- устанавливается по текущей оценке кривизны с помощью соотноше- соотношения (9.5). Так как новое положение инструмента Т' (г,') лежит, вероятно, за пределами допуска, для возвращения его на правиль- правильный путь используется соответствующая итерационная процедура. На каждом шаге этой процедуры изменение brt положения фрезы находится из уравнений n;6rt = sit n^rt = s2, (9.19) (n;xn;;)firf = o, где п[ и n2'—общие нормали к Т', a s( и s2—расстояния по нор- нормали от инструмента до поверхностей Sj и S2. Два первых урав- уравнения представляют касательные плоскости в точках Pi и Рг на рис. 9.9, а третье—проходящую через Т' плоскость, нормаль которой совпадает с «касательным направлением» njxnj. Эта последняя плоскость есть псевдоконтрольная поверхность, назна- назначение которой было описано ранее. Инструмент продвигается до достижения контакта с касательными плоскостями, как показано на рис. 9.9, и процесс повторяется до тех пор, пока расстояния Sj и ss не окажутся внутри допусков, назначенных пользователем. В действительности, для того чтобы извлечь максимум выгоды из допусков, разрешаемых для S, и S2, в смысле уменьшения числа расчетных точек, инструмент продвигается до достижения контакта с параллельными поверхностями, смещенными в сторону выпуклости поверхностей Sx и S2, а расстояния Sj и s2 подго- подгоняются так, чтобы приблизить инструмент к соответствующему краю полосы допуска. Нормали п[ и п2' вычисляются заново при каждой итерации, так что псевдоконтрольная поверхность в конечном счете оказы- оказывается нормальной к пути фрезы в конце шага.
Применение ЭВМ для конструирования н изготовления поверхностей 2$$ После нахождения новой точки на пути фрезы вычисляется фактическая длина шага; она сравнивается с требованиями до- допуска для обрабатываемой и ведущей поверхностей при помощи соотношения (9.5) и (9.9). Если шаг слишком велик, его уменьшают и процесс повторяется. В противном случае новая точка Т* для инструме- инструмента принимается и выдается на кон- контрольную ленту как точка, следую- следующая за точкой Т, от которой мы от- отправлялись. Когда инструмент оказывается в окрестности границы контрольной поверхности, третье уравнение в (9.13) заменяется на уравнение и;вг; = в„ (9.20) рде rig и s3 определяются так же, как п[, Па, Sj и sa. Программа APT ARELEM выглядит довольно громоздкой, но еледует помнить, что она предназначена для работы в широком диапазоне форм режущего инструмента и способов задания поверх- поверхностей. Рис. 9.9, 9.4. Пересечение кривой с поверхностью В программе APT ARELEM необходимо предусмотреть под- подпрограмму для каждого типа поверхности, которая определяет место ближайшего пересечения заданной кривой г = го4-Яп с рас- рассматриваемой поверхностью. Если поверхность определяется неявно с помощью уравнения f (г) = 0, то можно просто подста- подставить в него значение для г и по- получить уравнение f (ro-^-kn) = =F (к)*=Ь. За исключением слу- случая, когда наша поверхность явля- является плоскостью, это уравнение не-, линейно относительно к и вычис- вычислить нужный для наших целей наименьший положительный корень можно с помощью мето^ да Ньютона. Итерационный процесс не пройден, если dl/dX окажется слишком мало на каком-нибудь шаге. Так как dF/dk= =dr/dk'4f = n-V/, мы видим, что так бывает, когда п почти" перпендикулярно нормали V/ к нашей поверхности, как это пока- Рис. 9.10.
2M Глав» 9 зано в точке Q на рис. 9.10. Поправка ЬК тогда становится очень большой. В последних вариантах программы APT были добавлены пара- параметрически задаваемые поверхности, так что и для них надо дать соответствующий метод. Если поверхность S имеет уравне- уравнение г = г1(и, у), то нужно решить три уравнения F(K, и, v) = ra + kn — r1(u, d) = 0 относительно трех неизвестных X, и и у. Матрица Якоби этой системы имеет вид так что метод Ньютона может не пройти, когда | J | == п• (г1ыхг1о) мало, опять-таки потому, что п почти параллельно S в точке пересечения. Эти уравнения можно также решать, минимизируя функ- функцию | г0 + Яп — гх(и, у) | ? по К, и и v примерно так же, как опи- описано в 9.1.4 для задачи о пересечении поверхностей. Метод мини- минимизации имеет то преимущество, что он успешно справляется с трудностями, которые возникают, когда кривая r = ro-f-?ui либо касается поверхности, либо не пересекается с ней, при условии, что используется полная матрица Гессе, как это описано у Бат- терфилда A978). Если параметрически заданная поверхность состоит из не- нескольких порций, итерации могут распространяться на более чем одну порцию, и полезно ограничить поиск, вычислив грани пор- порций; порции, грани которых не пересекаются нашей кривой, могут быть отброшены без дальнейших вычислений. Такие методы обсуждались Димсдейлом A977). Другое полезное приложение алгоритма, описанного в этом разделе, связано с проекциями кривых на поверхности. Напри- Например, при конструировании автомобилей часто бывает нужно характерные линии, нарисованные дизайнером как плоские кри- кривые на виде сбоку, спроектировать на кривую поверхность корпуса. В таких случаях ряд точек на данной плоской кривой проеци- проецируется на поверхность с помощью метода, описанного выше. Для того чтобы обеспечить гладкость кривой, проходящей через эти точки, можно затем применить технику сплайнов. 9.5. Развертка развертывающихся поверхностей При изготовлении развертывающихся поверхностей (типа при- применяемых для крыльев самолетов) необходимо вычислить раз- развертку такой поверхности на плоскость, с тем чтобы на плоском
Применение ЭВМ для конструирования и изготовления поверхностей 257 листе наметить точки, соответствующие заданным точкам на кривой поверхности. Сначала рассмотрим развертку поверхности, представляющей собой огибающую семейства касательных плоскостей (см. разд. 4.2.13). Метод получения развертки основан на том факте, что кривизна кривой на развернутой поверхности равна кривизне v.g проекции первоначальной кривой на касательную плоскость; %g называется геодезической кривизной кривой (рис. 9.11). Геодезическая кривизна дается формулой п(гхг) (9.21) где п—единичная нормаль к поверхности и кривая имеет урав- уравнение г = г(м) (см., например, Уиллмор, 1958). Пусть поверхность является огибающей семейства касатель- касательных плоскостей к двум кривым г = г1(и) и г = га(м). Для любой точки Р с параметром и на первой кривой г = rt (и) со- соответствующая образую- образующая пересекается со вто- второй кривой в некоторой точке Q с параметром и'; [ri («) — га (и')] ¦ г, (и) х ХГ,(и')=-0 (см. D.44) из разд. 4.2.13). Поэтому уравнением нашей поверх- поверхности будет Рис. 9.11, и вычисляем направление Если, например, кривые задаются параметрически кубическими уравнениями, то нам надо решать урав- уравнение пятой степени отно- относительно и' при любом данном и. Сначала мы ре- решаем это уравнение относительно и' и длину образующей. После этого уже можно вычислить нор- нормаль к поверхности п', что позволяет нам найти xg по формуле (9.21). Теперь известна кривизна развернутой кривой, и мы можем получить саму кривую, интегрируя уравнения A.38), записанные в терминах параметра и. Так как длина и направление образующей в каждой точке Р известцы, можно получить на развертке точку Q, замечая, что угол между касательной к первой кривой и образующей не изменяется при развертке. 9 А. Фокс, М. Пратт
258 Глава 9 Подобным способом можно найти расположение на развертке любых промежуточных точек вдоль образующих, так что для всех интересующих нас мест на кривой поверхности, определяе- определяемых значениями и и v, может быть найдено их расположение на развертке. Для линейчатой поверхности r = ro(w)-f-t/To(w), как легко показать, %g = %0, кривизне исходной кривой. Поэтому развертка таких поверхностей является частным случаем описанной выше процедуры. 9.6. Кусочно-линейная аппроксимация параметрически заданной кривой В разд. 9.1.3 обсуждалась аппроксимация кривой /j (г) = /2 0")=0 с помощью последовательности прямолинейных сегментов, при- пригодная для чертежных и других машин, использующих линейную интерполяцию между заданными точками. Поскольку кривую пересечения мы могли вычислять лишь точка за точкой, решая соответствующие системы уравнений, то для определения длины шага L, гарантирующей, что максимум б расстояния по нормали между кривой и хордой (см. рис. 9.2) не превышает предписан- предписанного допуска, использовались надлежащие аппроксимации кри- кривизны. В случае, когда надо вычертить кривую с известным пара- параметрическим представлением г = г(м), можно использовать более надежные и непосредственные алгоритмы. Вычислим для этого случая максимум б расстояния по нор- нормали до хорды, соединяющей точки и = 0 и и — 1. Для полино- полиномиальных или рациональных кривых можно преобразовать любой сегмент ио^и^иг в сегмент О^.и'^.1, используя результаты разд. 5.3. Обозначим вектор АВ, соединяющий точки А (н = 0) и В (и = \) через с (рис. 9.12). Пусть NP = p — перпендикуляр к хорде АВ, проходящий через общую точку Р(г(м)) нашей кривой. Тогда р = г(и) — г@)— Хс, (9.22) где с-р = 0. Отсюда следует, что с-[г (и) — г@)] = Л|с|?, так что
Применение ЭВМ для конструирования и изготовления поверхностей 259 В матричной записи р=Р[г(и)—г@)], (9.23) где Р есть проекционная матрица I—ссг/сгс. Рис. 9.12. Вектор р равен нулю при м = О и н — 1. Из теоремы Безу вытекает, что для полиномиальных кривых р имеет множитель и(и —1). Для квадратичной кривой Безье р = 2мA-м)Р(г1-г0), (9.24) а для кубической кривой Безье Р = ЗиA-и)Р[A-и)(г1-го) + ио(г|-го)]. (9.25) При максимальном перпендикуляре касательная к нашей кри- кривой перпендикулярна р, т. е. ггр = ггР[г(м)—г@)] = 0. (9.26) Для кривой степени п это—полиномиальное уравнение сте- степени 2л—1, однако поскольку здесь выделяются те же множи- множители и (и—1), что и в (9.24) и (9.25), фактически нужно решать лишь уравнение степени 2п—3. Для квадратичной кривой Безье (параболы) у этого уравне- уравнения существует ровно один корень, а именно и =1/2. Так как корень только один, он и должен соответствовать максимуму. Для кубической кривой Безье имеются три стационарные точки 'ъ корнях уравнения Х[A-м)Х(г1-г0) + м(г2-г0)] = 0. (9.27) В точке максимума должно выполняться неравенство ггр < О, так что каждый корень уравнения (9.27) надо проверить на вы- выполнение следующего уравнения: X [A — и) (ii—г„) + м (г2—г,)] < 0. (9.28) 9*
260 Глава 9 Эти результаты вместе с преобразованиями, указанными в разд. 5.3, позволяют подсчитать искомое максимальное расстоя- расстояние по перпендикуляру для любого сегмента «„^ws^Wj нашей кривой. Используя это, можно при помощи надлежащего итера- итерационного процесса вычислить последовательность сегментов макси- максимальной длины, лежащих в пределах предписанного допуска. Время, потребное для подсчета максимального расстояния по пер- перпендикуляру, является лимитирующим обстоятельством для этого метода. Баттерфилд A978) предложил использовать интерполяцию квадратичными сплайнами для последовательности точек на пло- плоских проекциях кривой. Как мы видели, для параболического сегмента максимальное расстояние по перпендикуляру имеет место при м=1/2 для сегмента 0^н^1. В общем случае для сег- сегмента Ug^u^Ui максимум имеет место при и=1/2(иа-\-и1). Баттерфилд обобщил этот результат для работы с кусочно-квад- кусочно-квадратичными сплайнами. Это ведет к быстрому вычислению макси- максимума для общих параметрически заданных кривых. Совсем иной и более общий подход предложил Кокс A971), рассматривавший выпуклые функции y = f(x). Применяя миними- минимизацию по методу наименьших квадратов, Кокс ищет наилучшее приближение ломаными, вершины которых не обязаны лежать на кривой. Однако непосредственно распространить этот подход на аппроксимацию параметрически заданных кривых нельзя, так как нет прямого соответствия между точками ломаной и точками кривой.
Приложение 1. Элементарная матричная алгебра П1.1. Некоторые определения Матрицей называется прямоугольный массив элементов, под- подчиняющийся законам матричной алгебры, речь о которых пойдет ниже. Элементами массива, как правило, являются числа. Матрица, имеющая т строк и п столбцов, называется тхп- матрицей. Матрица, состоящая из одной строки, называется вектор-строкой, матрица, состоящая из одного столбца, назы- называется вектор-столбцом. Матрица обычно обозначается жирной заглавной буквой, например буквой А. Элемент, принадлежащий строке г и столбцу s матрицы А, обозначается через arsi обычно элементы матрицы обозначаются малыми буквами, соответствующими букве, обозна- обозначающей саму матрицу. Если матрица является вектор-строкой или вектор-столбцом, то ее элементы имеют один индекс. Так, матрица В= \п i с называется 2хЗ-матрицей; эле- элемент этой матрицы Ь13 равен 4. Матрица А = [2 1 —1] является 1хЗ-матрицей (или вектор-строкой), причем ее элементы суть ах = 2, а2 = 1 и а3 = — 1. П1.2. Законы матричной алгебры Две mxft-матрицы А и В считаются равными, если все соот- соответствующие элементы этих матриц равны, т. е. А = В, если ars — brs для любых г и s, таких, что l^r^/n, l^s^n. Между матрицами разных размеров никакого равенства быть не может. Суммой двух mxft-матриц А и В является некоторая тхп- матрица, элементами которой являются суммы соответствующих элементов матриц А и В. Таким образом, С = А + В, если crs= = ars + brs для любых г и s, таких, что l<Cr</n, l<s<«. -Например, если А. = | ^ g g и В = I g ~\ (^|, то A-f-B= = . . „ . Матрицы разных размеров складывать нельзя.
262 Приложение 1 Для любой тхл-матрицы А можно найти соответствующую матрицу "—А" с элементами вида—ars, причем А + (—А) = 0, где 0 есть нулевая матрица тхп, все элементы которой явля- являются нулями. Разность двух /пхл-матриц А и В находится по формуле Г 2 1 31 А—В = А + (—В). Например, если А= 145 и ^= _ Г—1 —3 41 А .Г 3 4-11 ~~[ 4 2 3J ' т0 А~в-[—5 2 2} ¦ Матрица, получаемая в результате умножения каждого эле- элемента тхл-матрицы А на одну и ту же скалярную величину (число) К, обозначается через ЯА. Так, если Ъ--КА, то brs—'kars для любых г и s, таких, что l^r^m и l^s^n. Эта опера- операция называется умножением на скаляр. На основании этих законов легко доказать следующие свой- свойства сложения матриц и их умножения на скаляр. ii) iii) iv) v) при условии, что А, В и С — матрицы одного размера, а!иц — скалярные величины. П1.3. Произведение двух матриц Определяя произведение двух матриц, мы учитываем те при- приложения, которые имеет матричная алгебра, и особенно ее при- приложение к изучению систем линейных уравнений и линейных преобразований. Если хи х2 связаны с уи у2, у3, которые в свою очередь свя- связаны с гг, г2, z3, z4 уравнениями 1гу2 + а1ау3, 3ys + bJ3z
Элементарная матричная алгебра 263 то, подставляя (П1.2) в (П1.1), мы установим прямую зависи- зависимость между хи х2 и гх, z2, г3, z4. Таким образом, Xi = («1 А, + a12b2i + а13ЬЛ1) г, + (anbn + а12Ь + (aubi3 + al2b2S + ^1 Аз) 2з + К А4 + a12b2l + а136;,4) г4, (П1.3) х2 = (a2ibn + а226г, + a23bsi) zt + (а2,612 + «22^22 + a23b32) z2 + + («2 Аз + «22^23 + «23^3з) 23 + («21^14 + «22^24 + «2Фы) ««• Если представить это преобразование в той же форме, что и вы- выражения (П1.1) и (П1.2), т.е. 4» .„. "Т" С232з Т С2424» то коэффициенты с„ можно получить непосредственно из (П1.3). Так, например, с13 — ацЬ13 + a12b23 + a13b3S, Рассмотрим матрицы A(a" T 7)' B = F" ^ &" Ь")И С== ''24 коэффициентов, описывающих эти преобразования; мы видим, что коэффициент с13 получается умножением соответствующих эле- элементов строки 1 матрицы А и столбца 3 матрицы В и последу- последующим суммированием полученных произведений. В общем виде з crs=arlbu + aribis+ ar3b3s= 2 aribtt. Матрица С является матрич- матричным произведением матриц А и В, которое обозначается через АВ. Таким образом, результат двух последовательных преобразований вида (П1.1) и (П1.2) получается умножением соответствующих матриц А и В. Следует обратить внимание на тот факт, что про- произведение АВ получается умножением элементов строк матрицы А на элементы столбцов матрицы В. Порядок матриц имеет боль- большое значение, как мы увидим в разд. П1.4. В общем виде: произведение АВ mxft-матрицы А и пхр-мат- рицы В есть некоторая mxp-матрица С, элементы которой вычис- вычисляются но формуле (=1 (П1.5)
264 Приложение 1 Г 1 —П Г2 1 7] Например, если А= „ Л и В= Л, ТО 1х2 + (—1)хЗ (-3)х 1 х 1 + (—1)Х2 (-3)xl+2x2 1 -1 о 1х7 + (—1)Х4] | Г-1 -1 31 ~[ о 1 —13J ¦ Заметим, что число столбцов матрицы А должно быть равно числу строк матрицы В, в противном случае произведение не определено. 1 , x2j z z3 UJ обозначить через X, Y и Z соответ- ственно, то, используя формулу (П1.5), соотношения (П1.1) и (П1.2) можно представить в более сжатом виде, а именно X=AY и Y = BZ. Следует помнить, что, например, хх обозначает эле- элемент хи матрицы X, поскольку матрица X имеет всего один столбец. Таким образом, сочетание двух приведенных выше преоб- преобразований дается соотношениями X = AY = A (BZ) = (АВ) Ъ = CZ. П1.4. Свойства матричных произведений Свойства матричных произведений в большинстве своем сходны со свойствами произведений обычных чисел. Так, при условии, что размеры матриц А, В и С позволяют определить их произве- произведение, мы имеем (i) (AB)C = A(BC), (ii) A(B + C) = AB-fAC, (iii) (A+B)C = AC + BC, (iv) A {№) = X (АВ) = (Щ В. Чтобы получить другие важные свойства, необходимо дать определение единичной матрицы \т. Единичной матрицей назы- называется квадратная mxm-матрица, элементы которой irs удовлет- удовлетворяют соотношениям f 1, когда г = s, "~\0, когда гф8.
Элементарная матричная алгебра 265 1.=  0 0 0 1 0 0' 0 1_ Следовательно, где элементы главной диагонали (идущей от левого верхнего угла к правому нижнему углу)—единицы, а все остальные элементы — нули. Предположим, что А есть т X л-матрица, тогда (v) 1ВА = А, (vi) А1„ = А. Часто размеры единичной и нулевой матриц можно установить из контекста, и поэтому они просто обозначаются через I и 0 соот- соответственно. И наконец, предположим, что А есть тх л-матрица, а 0—лхр-нулевая матрица, тогда (vii) AO = 0. Все перечисленные выше свойства матричных произведений соот- соответствуют свойствам произведений простых чисел, если I считать единицей, а 0 —нулем. Однако матричные произведения имеют еще ряд присущих только им свойств. Прежде всего произведения АВ и ВА могут и не быть равными. Например, С 1 2 <!> [з 2] но [: )Г i) Г2 = г7 2 7i [17 5 16J ' Г Ч [3 2J не определено. 1 О' 1 2 Ж _! -U - в то время как 1 " 4 1 0 1 2 Г 2 —3 Г4 О 1 2 но :]¦ П 21Г1 11Г5 31 L3 1J L2 lJ-[5 4j- 8 -—2 5 1 О —3 —6
266 Приложение 1 Если для двух заданных лхя-матриц А и В имеет место соот- соотношение АВ= ВА, то говорят, что матрицы А и В коммутируют. Умножая матрицы, необходимо тщательно соблюдать порядок их умножения. Так, выполняя сложное преобразование перемен- переменных, как, например, в разд. П1.3, важно соблюдать правильную последовательность умножения матриц. Другое свойство, присущее только матричным произведениям, состоит в том, что соотношение АВ = 0 (нулевая матрица) может иметь место даже в том случае, когда ни А, ни В не являются нулевыми матрицами. Например, Г1 21 Г 2 -21 ГО 01 L2 4J [-1 lj - [О 0j * Следовательно, если АВ —АС и А^О, нельзя сказать, что В = С; и если А (В—С) = 0 и А=^=0, тем не менее может иметь место соотношение В—С П1.5. Неособые матрицы Для заданной пх«-матрицы А бывает возможно найти обрат- обратную матрицу А, для которой AA"x==In и A-1A=In. В таких случаях говорят, что матрица А является неособой. Если А—неособая матрица, то, умножая уравнение АВ = АС слева на А, мы получаем соотношение ААВ = А~1АС, откуда следует, что IB = 1С и, наконец, В = С. Таким образом, в этом случае можно совершенно свободно исключить А, поскольку она является неособой матрицей. Однако выше мы видели, что можно найти такие ненулевые матрицы А и В, для которых АВ = 0. Но А0 = 0, следовательно, АВ = А0; если бы А была неособой матрицей, то, исключив ее, мы получили бы В = 0. Приведенный в разд. П1.6 пример гово- говорит о том, что это не обязательно верно. Таким образом, матрица " 21 21 4J А = L , является особой. Если переменные X = и Y = Л*. связаны преобразова- нием AX = Y, где А—неособая матрица, тогда A"lAX = A XY, откуда X = A Y Следовательно, с помощью обратной матрицы А можно обратить преобразование.
Элементарная матричная алгебра 267 Методы вычисления обратных матриц рассматриваются во мно- многих руководствах по линейной алгебре, а также в учебниках, посвященных методам прикладной математики, см., например, Гулт и др. A973). [См. также Д. К. Фадеев и В. Н. Фадеева A960), Форсайт, Молер A969).—Ред.] П1.6. Транспонированная матрица Транспонированной матрицей (обозначаемой через Аг) любой тхл-матрицы А является такая лхяг-матрица, которая полу- получается из матрицы А в результате взаимной замены строк и столб- столбцов. Точнее, еслиа^—элементе строке г и столбцеs матрицы Аг, то Квадратная матрица А, такая, что АГ=А, называется симметри- симметрической. Квадратная матрица В, такая, что Вг = — В, называется косо- симметр ической. Примеры Пусть А = 1 2 —1 2 2 5 L-1 5 4 5 1 2 3 4 J' тогда Аг = '5 2' 1 3 2 4 является симметрической, а С= Матрица В = 0 1—2 —10 3 2—3 0 кососимметрическая матрица. Транспонирование сумм и произведений матриц подчиняется следующим законам: И) П1.7. Ортогональные матрицы Матрица Р называется ортогональной, если РРГ=1, т. е. ее обратная матрица совпадает с ее транспонированной матрицей. cos 0 sin 0 0" Например, легко проверить, что матрица ляется ортогональной. - sin 0 cos 0 0 0 0 1 яв-
268 Приложение 1 П1.8. Матричное представление скалярных и векторных произведений В разд. 2.4 мы дали определения скалярного и векторного произведений, полезных при решении геометрических задач. С тем чтобы их можно было использовать при выводе формул преобра- преобразования координат, попробуем установить связь между этими про- произведениями и матричным представлением, рассмотренным в гл. 3. Если все наши векторы обозначить через Зх 1-матрицы таким образом, чтобы а = [а^аг,]7, то, согласно определению произведе- произведений матриц, скалярное произведение а • b = а А -\- a2b2 -\- asb3 при- примет вид h Л. Следовательно, arb тождественно скалярному произведению а-Ь. Заметим, хотя векторы представлены в виде матриц, мы исполь- используем не прописные буквы. Следовательно, векторное обозначение а соответствует ЗхЬматрице, или 3-вектор-столбцу, а аг соответст- соответствует 3-вектор-строке. Выражения (а-Ь)с, возникающие в смешанных векторных про- произведениях, можно записать как (arb)c, но поскольку arb—ска- arb—скаляр, эту запись можно представить и как c(arb), и как (са7)Ь, где саг—ЗхЗ-матрица. В развернутом виде мы имеем (arb) с + a2b2 + a3b3) a2b2+a3b3)c1' a2b2 + a3b3)c2 (car) b = "с i с2 .сз. [aia2a3] "ciaA + ci с с rv b2 А. a2b2 a2b2 = + c -\-c 2 1 xa3b3 2a3b3 c3a2 c3a3 = (arb) с Векторное произведение axb является вектором с компонентами "a2b3—аф2~
Элементарная матричная алгебра 269 будучи представленным в матричной форме, оно имеет вид О —as aal Vbi as 0 — аг Ьъ =АЬ. — а, аг oj|_b,_ Такое представление векторного произведения axb, где вектор а представлен в виде ЗхЗ-матрицы A, a b — в виде вектора, как мы увидим, удобно в приложениях. П1.9. Блочные матрицы Иногда для удобства матрицы разбиваются на более мелкие блоки, которым приписываются свои собственные обозначения. Г 2 1 41 Например, матрицу А = ~ _ _ можно разделить на две мат- матрицы В = „ _ и С = _ ; такое разделение обозначается через А = [В|С]. Подобным же образом А = . , д2 — матрица, образованная L Аз | «4 J блоками Alt A2, А3 и А4 меньшего порядка. Размеры матриц- блоков должны быть согласованными, т. е. число строк в матри- матрицах А, и А2 должно быть одинаковым. Примеры (i) Матрица М, образованная вектор-столбцами a, b и с, Р>Р>Т ВИЛ ( имеет вид = [а|Ь|с]. ГаГ Следовательно, матрица Мг имеет вид Мг .?- Г1 21 Г-3 41 ГА|П (ii) Если А= L J и В= i_2'T0 MaTPH«a м= 0~[В будет иметь вид -1 3 0 .0 9 7 0 0 1 0 —3 1 о- 1 4 —2. , поскольку I — единичная мат- матрица, а 0—нулевая матрица.
Приложение 2. Детерминанты Определения Детерминант А 2х2-матрицы и определяется уравнением аи аи имеет вид А = a2i a23 —ai2a2i. Детерминант А ЗхЗ-матрицы *21 (П2.1) имеет вид а1г а1 «21 и определяется уравнением А = «11 «21 «31 <к. «22 «32 «13 «23 «33 — аи «22 «32 «23 «33 — «12 a2i «si «гз «33 «2f «82 «31 «32 Коэффициенты при ац, ai2 и а13 в (П2.2) получаются следую- следующим образом. Для каждого элемента детерминанта находится мйнор, для чего необходимо вычеркнуть строку и столбец, в кото- которых данный элемент присутствует. Так, например, минор для элемента a2i имеет вид . Кроме того, каждому элементу соответствует свой знак. Для элемента a{f соответствующим зна- знаком будет (—1/+Л следовательно, знаки располагаются следую- щим образом: — + — . Произведение минора на знак дает + + алгебраическое дополнение элемента ац, обозначаемое через Ац. Учитывая сказанное, уравнение (П2.2) можно записать в^следую- щем виде А = (П2.2)
Детерминанты 271 Фактически детерминант можно представить через элементы любой строки и любого столбца. Так, например, A = ala^4i2 + -Г а22-^а2~газа-'^з2- Ниже перечисляются свойства этих детерминантов, которые можно легко проверить. (i) Детерминант матрицы равен детерминанту транспонирован- транспонированной матрицы. Если детерминант матрицы А обозначить через | А |, то |А| = |АЧ (И) Если поменять местами две строки или два столбца мат- матрицы А, то знак детерминанта изменится. Так, если модифициро- модифицированную матрицу обозначить через В, то |В|= — |А|. (iii) Если В — матрица, полученная в результате умножения одной строки или столбца матрицы А на некоторую константу k, то |Bj = fe|A|. (iv) Если две строки или два столбца матрицы А тождественны, то |А| = 0. (v) Если В—матрица, полученная из матрицы А прибавле- прибавлением кратного одной строки или столбца этой матрицы к другой строке или столбцу, то |В| = |А|. (vi) Если А и В суть их «-матрицы, то детерминант произве- произведения А В дается соотношением | АВ | = | А 11 В |. (vii) Можно показать, что элементы матрицы С, обратной мат- матрице А, определяются из соотношения с„ = А„/|А| (см. Гулт и др. 1973, с. 321) [См. также Гантмахер A953).—Рей.] Следо- Следовательно, если |А| = 0, т. е. когда А—особая матрица, обратной матрицы не существует.' Детерминанты более высоких порядков определяются подобным образом, но здесь не рассматриваются: перечисленные выше свой- свойства детерминантов вполне удовлетворяют нашим целям. Если элементы одной строки или одного столбца детерминанта являются векторами (такая возможность допустима), то все опе- операции умножения при вычислении детерминанта в этих случаях выполняются как умножения вектора на скаляр. Пример i } k ах ау аг Ьх Ьу Ъг —avbx) к.
Приложение 3. Основные свойства полиномов Здесь мы перечислим некоторые основные свойства полиномов, являющихся функциями, используемыми во многих рассмотрен- рассмотренных нами ранее методов. Теорема. Полином степени п, можно разложить единственным образом в произведение в точно- точности из п линейных множителей P(x) = an(x—at)(x—at) ... (х—а„). Доказательство этой теоремы зависит от так называемой основ- основной теоремы алгебры, не имеющей чисто алгебраического доказа- доказательства. Подробный анализ этой теоремы см. в учебных пособиях по теории функций комплексного переменного. Во всех приложениях, рассматриваемых в настоящей книге, коэффициенты ап, ап_и .. ., а0 полиномов являются веществен- вещественными числами; в таких случаях речь идет о вещественных поли- полиномах. Совершенно очевидно, что если х принимает значение одного из чисел аи а2, ..., ап, то р(х) будет иметь нулевое значение; числа аи а2, ..., а„ называются нулями полинома р (х), или его корнями, или решениями полиномиального уравнения р (х) = 0. Корни вещественного полинома обладают следующими свойствами: (i) корни могут повторяться (например, если at = a2); (ii) корни могут быть как вещественными, так и комплексными; (iii) комплексные корни встречаются сопряженными парами (если а —ы + ш — корень полинома, то а = ы—iv—также корень этого полинома); (iv) если полином р (х) имеет нечетную степень, то он должен иметь по меньшей мере один вещественный корень. Это свойство вытекает непосредственно из свойства (iii), поскольку число комп- комплексных корней, если таковые существуют, должно быть четным, а общее же число корней полинома, имеющего нечетную степень,— нечетное;
Основные свойства полиномов 273 (v) если р(х) разделить на (х—а), то мы получим в остатке р (а) (теорема Безу). Отсюда следует, что если а—корень поли- полинома р(х), то р(а) —0, и тогда р(х) делится на (х—а) без остатка. Примеры (i) x»-2*+l=(x-l)(x-l); х—\—корень, повторяющийся дважды (или с кратностью, рав- равной 2). (п), (Hi) Xs—х»+3*+5 = (*+1)(*—1— 2i)(x— l + 2t); корнями этого полинома являются х =* — 1, а также сопряженная комплексная пара 1 ± 2i. Более подробный анализ свойств полиномов см., например, в учебнике Гулта и др, A973). Внимание математиков привлекают многие свойства полинома р(х). Так р(х) является функцией, всюду непрерывной и всюду дифференцируемой, и легко вычисляется при любом значении х (в отличие, например, от функции sin x, оценки значений которой находятся либо при помощи таблиц, либо при помощи некоторой приближенной- формулы). Производная полинома и его неопреде- неопределенный интеграл также являются полиномами с теми же самыми свойствами, что и у исходного полинома. Все производные сте- степени, большей, чем п, где п—степень полинома р(х), равны нулю. При решении многих практических задач приходится иметь дело с функциями, которым указанные выше свойства, к сожа- сожалению, неприсущи, и довольно часто такие функции для удобства аппроксимируются при помощи более простых и более удобных в работе функций, В качестве таких аппроксимирующих функций широко используются полиномы, в частности, когда аппроксими- аппроксимируется однозначная непрерывная функция. В этом случае мы имеем следующую теорему Вейерштрасса. Теорема Вейерштрасса. Пусть f(x)—функция, однозначная и непрерывная на интервале 0 <; х <; 1. Тогда для любого поло- положительного достаточно малого числа е существует такой полином р(х), что \f(x)-p(x)\<e всюду на интервале 0 ^ х <[ 1. Эту теорему можно распространить на любой конечный интер- интервал а <; ? <; Ь, если выполнить замену переменной'! = (Ь—а) х + а. Другими словами, при помощи полинома можно аппроксимировать произвольную непрерывную кривую конечной длины с любой нужной степенью точности. Как и следовало предполагать, более высокая степень точности (т. е. уменьшение числа е, см. теорему) требует большей степени полинома р(х). Теорема позволяет про- Ю А. фокс, М. Пратт
274 Приложение 3 следить за всеми тонкостями поведения функции / (х) при условии, что последняя непрерывна. В одном из доказательств теоремы Вейерштрасса (предложен- (предложенном Бернштейном в 1912 г.) используется множество полиномов, определяемых соотношением и известных как полиномы Бернштейна. Ясно, что Вп(х)—поли- Вп(х)—полином степени п., и его коэффициенты зависят от (и+1) значений функции f(x), вычисленных на интервале O^x^l для равно- равноотстоящих точек х = 0, —-, —,_ ..., "~- . Из предложенного до- доказательства следует тот факт, что при любом значении в можно найти число N, такое, что \Нх)-Вп(х)\<г, <0<х<1), для всех и > N. Так, если п выбрать достаточно большим, то разность между f(x) и Вп(х) можно сделать меньше некоторого произвольно малого числа. По разным причинам метод Бернштейна для аппроксимации функций в практических целях не применяется. Когда же речь идет о проектировании кривых, то этот метод приобретает более чем чисто теоретическое значение. Если скаляры f(kjn) в (П3.1) заменить векторами rk, то векторно-значный полином представ- представляет для 0 ^ х ^ 1 сегмент кривой степени п в форме Берн- Бернштейна— Безье, см. 5.1.4. Поэтому сегмент кривой можно считать приближением Бернштейна к ломаной, вершинами которой яв- являются rft. Отсюда следует, что изменяя положения вершин, можно модифицировать кривую соответствующим образом. Ранее мы показали, что метод UNISURF Безье* основан именно на этом принципе. Скалярные функции nl yk(\ у\а-к it —0 1 2 и k\(n-k)\x у х> • «-и, 1, ^, ...,п, (см. (П3.1)) образуют так называемый базис Бернштейна для множества всех полиномов степени п, т. е. любой полином сте- степени п можно представить в виде линейной комбинации из этих функций. Например, при п — 3 базис состоит из ро(х)=1—Зх + + 3x*-x\p1(x) = 3(x-2x* + xi), р2(х) = 3(х*-х3) и ps(x) = x\ а кубическое выражение общего вида ax3-{-ox2-\-cx-\-d, записан- записанное с помощью этого базиса, будет иметь вид : \{x).
Основные свойства полиномов 275 На рис. П3.1 изображены функции, образующие базис Бернштейна для всех полиномов пятой степени. Рис. П3.1. базисные функции Бернштейна для полиномов степени 5.
Приложение 4. Численное решение полиномиальных и других нелинейных уравнений П4.1» Решение одиночного уравнения Наряду с положительными свойствами, перечисленными нами в приложении 3, полиномы имеют целый ряд недостатков; напри- например, совсем не просто отыскиваются решения полиномиального уравнения р(х) = 0 (или нули полинома р(х)), когда степень полинома больше двух. В принципе мы можем привести точные формулы для решения полиномиальных уравнений третьей и чет- четвертой степеней, но это потребует довольно сложных и громозд- громоздких выкладок. Точные формулы для решения полиномиальных уравнений высших порядков, как правило, получить невозможно. По счастью, имеется про- простой, но довольно эффек- эффективный численный метод, известный как метод Нью- Ньютона— Рафсона, который позволяет получать реше- решения с любой степенью точ- точности. Этот метод дает воз- возможность получить реше- решения не только полино- полиномиальных уравнений, но и разного рода нелинейных уравнений, таких, как, на- например, 2 sin л:—chx — 0. С помощью метода Нью- Ньютона— Рафсона, основан- основанного на применении соот- Рис. П4.1 Геометрическая основа метода Ньютона—Рафсона. ношения /(*,) "Хг ТЫ* (П4.1) мы получаем целый ряд последовательных все более и более уточ- уточненных приближений к решению уравнения /(х) = 0. Формула (П41) имеет простое геометрическое толкование. На рис. П4.1 видно, что касательная к кривой y = f(x) в точке (хп f (xr)) пересекает ось х в некоторой точке, расположенной ближе
Численное решение полиномиальных и других нелинейных уравнений 177 к истинному решению X, чем точка хг. Из прямоугольного тре- треугольника мы получаем соотношение Разрешая это соотношение относительно xr+i, мы получаем урав- уравнение (П4.1). Эту процедуру можно повторить, считая точку xr+i новым приближением к решению X, и в результате мы получим новую точку хг+2, расположенную еще ближе к X, чем точка xr+i, и т. д. Предпосылкой сходимости в данном методе является хорошо выбранное начальное приближение х0. Пример Найти точку пересечения прямой у — х-\-2 с кубической кривой 3 З1 у Точка пересечения этих двух линий имеет х-координату, опре- определяемую из соотношения или р (х) = х3—х2 + 2х— 1 =0. Заметим, что /о @) = —1 и /?(!)=. 1. Отсюда следует, что р(х) меняет знак (т.е. проходит через нуль) в интервале 0<х< 1. В качестве начального приближения к нулю полинома р(х) возь- возьмем ха ~ 0.5. Используя метод Ньютона—Рафсона, получаем соотношение у у x3r *'+1~*' дхгг-2хг + 2 ' которое при х„ = 0.5 дает последовательность хг — 0.571 428 57 (до восьмого десятичного знака), Х2 = 0.569 84127, Х3 = 0.569 840 30, х, = 0.569 840 29, хъ = 0.569 840 29 = хл. Таким образом, четыре цикла (или итерации) этой процедуры дали нам решение с точностью до восьмого десятичного знака. Характерной особенностью этого метода является тот факт, что в результате каждой итерации количество верных значащих цифр', грубо говоря, удваивается при условии, что вычисляется некрат- некратный корень, так как сходимость в этом случае значительно замедляется.
278 Приложение 4 Два других решения уравнения р(х) = 0 комплекснозначны. Это становится понятным, если рассмотреть производную р' (х) — = Зх* — 2#-f-2, которая не обращается в нуль при любом вещест- вещественном значении х. Это говорит о том, что р(х)—функция, не- 'прерывно возрастающая, если х изменяется от —оо до +оо, и, следовательно, ее график пересекает ось х только один раз. И в заключение нужно сказать, что единственным вещественным решением уравнения р(х)-~-0 является х —0.569 84029, а искомой точкой пересечения является @.569 840 29; 2.569 840 29). Кроме метода Ньютона—Рафсона для решения нелинейных уравнений имеется целое множество различных методов, и тем не менее мы выбрали для анализа именно метод Ньютона—Раф- Ньютона—Рафсона, поскольку в нем сочетаются простота и эффективность. Информацию относительно других классических методов можно получить в монографии Рэлстона A965); в ней же дается сравне- сравнение различных процедур, применяемых для вычисления вещест- вещественных и комплексных нулей полиномов. [См. также Н. К- Бах- Бахвалов.— Ред.] П4.2. Численное решение систем нелинейных уравнений Теперь покажем, как метод Ньютона — Рафсона применяется при решении различных систем уравнений. Мы рассмотрим случай системы из двух уравнений; для решения систем из большего числа уравнений метод Ньютона — Рафсона необходимо обобщить соответствующим образом. Вернемся к одномерному случаю, см. П4.1. Предположим, хг — приближение к истинному решению X уравнения / (х) — 0. Согласно теореме Тейлора, мы имеем f (X) — f (xr) + hf (xr) + члены порядка hi, где ft = X—xr. Предполагая, что h мало, оставим только два первых члена справа. Поскольку X—истинное решение, то f(X) = 0 и, следовательно, '(*,) = 0, где hr — всего лишь приближение к исходному значению h, так как мы пренебрегли членами более высоких порядков. Тогда hr — — f(xr)lf'(xr) при условии, что /' (хг)ф0, но поскольку X = x + h~ xr-(-hr, мы получаем формулу Ньютона—Рафсона
Численное решение полиномиальных и других нелинейных уравнений 279 В двумерном случае мы должны решить систему из двух урав- уравнений F(x,y) = i Предположим, что истинным решением будет (X, Y) и что мы имеем приближенное решение (хг, уг). Положим, как и раньше, h = X—хг и, кроме того, k = Y—yr. Двумерное разложение Тейлора функций F (X, Y) и G (X, Y) в окрестности точки (хг, уг) имеет соответственно вид F(X, Y) = F(xr, yr) + h^(xr, yr) + k^-(xr, yr)+ ..., G(X, Y) = G(xr, ^ Ц Как и в предыдущем случае, мы пренебрегаем в правой части членами высоких порядков, а в левой части полагаем F (X, Y) = = G (X, Y) = 0. В результате получаем систему линейных урав- уравнений hr-fc(xr> Уг) + К-Щ-(хг, yr)=* — F(xr, уг), К% (*,. Уг) + *, Ц (хп yr)~-G {х„ уг), где hr и kr — приближения к h и к соответственно. Решая эту систему, мы получаем (П4.3) где D—детерминант матрицы Якоби J, определяемой формулой г dF OF -| | U4 ^ dG_ . дх ду - (П4.4) Мы предполагаем, что все функции и производные в трех послед- последних уравнениях вычисляются в точке (хг, уг). Следующим при- приближенным решением будет точка (хг+1, уг+1), где xr+1 = xr+hr, yr+1 = yr+kr Заметим, что матрица J должна быть неособая при всех приближенных значениях решения, в противном случае детерминант D в (П4.3) будет равен нулю, и итерация не ео- стоится.
280 Приложение 4 , Этот метод можно применять и для решения систем из более чем двух уравнений. Для этого заметим, что уравнение (П4.2) можно представить в виде J(xrNr = -F(xr), (П4.5) где хг ¦"«* >-[ F(xr) a J (xr) определяется Y) формулой (П4.4). Если мы решаем систему не из двух, а из ft урав- уравнений, то и в этом случае формула (П4.5) является основной, но только теперь хг, б, и F (хг) становятся ях 1-векторами, a J (хг)— ftXft-матрицей. Соответствующее (П4.3) уравнение имеет вид 8Г = — J (xr) F (хг), а одна итерация процедуры Ньютона—Раф- сона состоит в том, чтобы принять хг+1 = хг + 8,.. Пример Найти решение с тремя значащими цифрами системы уравнений * \xt У) = х "г У — G(x, У) = ху—1=1 Чтобы получить приближен- приближенное решение, достаточно за- заметить, что заданные уравне- уравнения являются соответственно уравнением окружности с ра- радиусом 2 с центром в начале координат и уравнением рав- равнобочной гиперболы, асимпто- асимптотами которой являются ось х и ось у, см. рис. П4.2. В качестве начального приближения к одному из четырех решений, очевидно, следует взять точку (хв, г/0) = B, 0). Мы имеем dG Рис. П4.2. dF o дх ' dF o dG ду Решая эти уравнения в точке B, 0) и подставляя затем полу- полученные результаты в (П4.3) и (П4.4), мы получаем rto = 0, ft, = 1/2. Далее (xt, ^=.B, 1/2).
Численное решение полиномиальных и других нелинейных уравнений 281 Вычисляя функции и производные в этой новой точке и под- подставляя полученные результаты и уравнения (П4.3) и (П4.4), мы находим 'н 15 ' * ~ 60 ' что дает нам три значащие цифры, т.е. (хй, г/3) = A.93; 0.517). Последующие итерации приводят к решению заданных урав- уравнений с требуемой степенью точности, а именно (X, Y) = A.93; 0.518). Полученные числовые значения легко проверяются. Для этого исключим у из исходных уравнений и получим квадратное урав- уравнение относительно х*, которое легко решается алгебраически. Одно из решений будет ([2 + УЩ1/2, [2-"|/3]1/2)==A.93; 0.518). Вообще говоря, хорошее начальное приближение в случае системы уравнений получается значительно труднее, чем тогда, когда мы решаем единственное уравнение, хотя в случае кривой и поверх- поверхности эта задача не представляет каких-то затруднений. Напри- Например, если точки вычисляются на линии пересечения двух поверх- поверхностей, то последняя вычисленная точка является хорошим начальным приближением для последующей точки при условии, что расстояние между этими точками достаточно мало. Помимо рассмотренного здесь простого метода существует целый ряд и других методов. Классическим руководством, посвя- посвященным вопросам решения систем нелинейных уравнений, можно считать монографию Ортеги и Рейнболдта A970), а обзор Денниса A976) содержит результаты более новых исследований указанных вопросов. Вопрос решения систем линейных уравнений в настоящей книге не рассматривается; информацию по этому вопросу можно найти в работе Гулта и др. A974). [См. также Д. К. Фадеев и В. Н. Фадеева A966), Форсайт, Молер A969).—Рй]
Приложение 5t Аппроксимация полиномами П5.1. Введение Методы, применяемые для полиномиального приближения, можно разделить на два класса. К первому классу относятся методы, применяемые в случае, когда приближаемые функции известны на некотором интервале изменения переменной х. Например, требуется найти кубический полином, который будет «наилучшим» приближением к функции ех для —l^x^l. Для оценки «на- «наилучшего приближения» существует несколько критериев, а для задач такого типа построена целая теория, основанная в значи- значительной степени на использовании ортогональных полиномов, таких, как полиномы Лежандра и Чебышева (см., например, гл. 6 и 7 работы Рэлстона, 1965). [См. также В. К. Дзядин A978).— Ред.] В настоящей книге мы ограничимся рассмотрением методов, принадлежащих второму классу, которые применяются в тех •случаях, когда значения приближаемой функции у(х) берутся из таблиц, т. е. значения у даются для некоторых дискретных зна- значений х. Выбор того или иного метода определяется характером исход- исходных данных. Здесь есть две возможности: а) заданные значения (xh «/,-)> содержат погрешность, причем погрешность может быть как случайной, так и любого иного свойства; б) заданные значения надежны. Типичные примеры этих случаев таковы: а) значения определя- определяются с помощью измерения, при этом могут возникнуть ошибки измерения и б) значения выбираются из стандартных таблиц, например, из таблицы логарифмов. В случае (б) строится интерполирующая функция, которая должна проходить через все заданные точки (*,¦, у{). В случае (а) это может привести к неприятности: интерполирующая функция может в значительной степени усилить случайные флуктуации заданных значений, в то время когда нужно свести их до мини- минимума. Когда заданные значения ненадежны, то мы отыскиваем аппроксимирующую функцию, которая проходит вблизи от всех заданных точек и совсем необязательно через какую-либо из них.
Аппроксимация полиномами 28Э Поскольку при аппроксимации кривых и поверхностей п-режде всего выполняется именно эта операция (с тем, чтобы сгладить откло- отклонения в исходных данных), в следующем разделе будет проде- продемонстрирован стандартный метод аппроксимации для случая (а). Те же принципы лежат в основе аппроксимации с помощью метода наименьших квадратов сложных кривых и поверхностей. В разд. П5.3 мы вернемся к случаю (б) и к задаче интерполирования надежных данных. П5.2. Аппроксимация кривых с помощью полиномов, построенных по методу наименьших квадратов Рассмотрим следующую таблицу данных (на рис. П5.1 изобра- изображены соответствующие точки): X 0 1 2 3 4 5 У 0,4 1,7 2,1 1,2 0,9 1,8 () о ® 5 SB Рис. П5.1. V Допустим, что погрешностями в значениях х можно прене- пренебречь, а в значениях у допущены значительные неточности. Если у (х) приближается с помощью полинома р(х), нужно прежде всего решить вопрос относительно степени этого полинома. Ясно, что линейная функция а^-^а^, графическим изображением которой является прямая линия, не может быть хорошим прибли- приближением исходных данных. Графиком полинома второй степени агх2-\-ахх-\-ай является парабола, и не похоже, чтобы заданные точки принадлежали, даже приближенно, параболе. Кубический же полином asxs -+- aax2 + агх + а0 может иметь максимум и минимум при условии, что его производная Заях2 + 2а2х-\-а1 имеет два вещественных нуля. Следовательно, в качестве аппроксимирую- аппроксимирующего полинома удобно брать кубический полином.
J84 Приложение 5 Решив, что степень полинома р(х) равна трем, рассматриваем далыи1 отклонения б,-, которые определяются формулой б,- = р (*,)—у{ = a3x3i + агх\ + с^х, + а„ — у{, где i=0, 1, ..., 5 обозначает точки таблицы. Отклонения пока- показывают, на сколько значения р (х), вычисленные в заданных точках, отличаются от значений у для этих же точек. Метод наименьших квадратов минимизирует относительно коэффициентов полинома р(х) выражение 5 = 2 6?-= 2 М + а,А + alXi + а,-у,]; 1 = 0 1 = 0 которое представляет сумму возведенных в квадрат отклонений для всех заданных точек. Для эт^го все частные производные S по коэффициентам по- полинома р(х) приравниваем нулю: 5 ¦аг =¦2 L М+пгА+aiXi+а»—У(] ^5=о, г=з, 2,1, о. г 1 = 0 Перегруппировав это выражение и опустив для ясности пределы суммирования, мы получаем г = 3, 2, 1, 0. В развернутом виде эта система из четырех уравнений имеет вид г = 3: т. е. является симметрической 4х4-системой линейных урав- уравнений, коэффициенты которой находятся суммированием по i от 0 до 5. В нашем примере коэффициенты таковы: 20515as + 4425a2 + 979aa + 225a0 = 333.5, 4425a8+ 979a2 + 225a,+ 55ao= 80.3, 979a8+ 225a2+ 55a, + 15ao= 22 Л, 225a8+ 55a2+ 15a, + 6ao= 8.1. Вычисляя коэффициенты с точностью до второго десятичного знака, мы получаем в результате cs = 0.15, а2 = —1.21, с, = 2.59, ао=О.35, что и является решением нашей системы. Именно при этих значениях коэффициентов лолином р(х) минимизирует 5 —
Аппроксимация полиномами 285 сумму возведенных в квадрат отклонений. Следовательно, куби- кубический полином, построенный по методу наименьших квадратов, имеет вид р (х) = 0. 15л;3 — 1.21х2 + 2.59л; + 0.35. В точках, представленных в таблице, р(х) имеет значения 0.35, 1.88, 1.89, 1.28, 0.95; все они отличаются от табличных значе-. ний- у не более чем на 0.2. Если полученные результаты кажутся неудовлетворительными, лучшее приближение можно получить с помощью полинома четвертой степени, но это потребует неко- некоторых дополнительных вычислений. Как будет показано в следую- следующем разделе, можно найти такой полином пятой степени, который будет проходить фактически через все шесть заданных точек; в этом случае S принимает свое минимально возможное значение нуль. Но это, как указывалось в разд. П5.1, опасно, когда мы имеем ненадежные начальные данные; на практике полиномы не- невысокой степени обычно используют для аппроксимации сравни- сравнительно большого числа точек. Этот метод без каких-либо существенных изменений можно использовать для подгонки к заданному множеству точек аппрок- п симирующей функции вида 2 arSr(x)> гДе ?,(*) —любые Задан- Заданно ные функции, а аг — коэффициенты, подлежащие определению. Полиномиальная аппроксимация соответствует выбору gr — хг. Метод наименьших квадратов можно также применять для подгонки кривой, определенной посегментно, как в гл. 6, к за- , данному множеству точек на плоскости. С помощью этого метода можно также построить поверхность, определенную попорционно, как в гл. 7, аппроксимирующую заданное множество точек в трех- трехмерном пространстве. Более полную информацию о приложениях этого метода подгонки можно найти в работах Хейса A973), Хейса и Холлидея A974), Пауэлла A977), Шумакера A976), а также в работах, ссылки на которые дают перечисленные авторы. П5.3. Полиномиальная интерполяция: метод Лагранжа Теперь вернемся к задаче интерполирования, которая состоит в том, чтобы точно провести кривую через заданные точки. Прежде всего покажем, как вычисляется полином, проходящий точно через три заданные точки (*„ г/„), (*,,, yt) и (xit yt), где *„<*!< *»• Рассмотрим выражение
286 Приложение 5 Если положить х = х№, то числитель будет равен знаменателю и ?o(*o) = l- Если же х=^хх или х~х2, числитель равен нулю и, следовательно, Lo(xl) — Lo(xi) = 0. Аналогичным образом , . _ (x—x0) (x—xa) I м V f если x = xit если х = х0 или * = #„ 1, если х — хг, О, если х = л:0 или x = Xf. Теперь, используя эти выражения, построим функцию, содержащую заданные значения у: pjX = Lo (х) у0 4- Li (х) ух + L2 (x) у2. Заметим, что если х = х0, то ненулевое значение имеет только первый член правой части этого выражения. Так как.Ь0 = (хл)— 1, то pL(x0) — y0. Если x — Xi, ненулевое значение имеет только второй член и pL(xi) — yi\ аналогичным образом pL(x2) = уг. Сле- Следовательно, значения функции pL (x) совпадают со значениями функции у (х) во всех узлах. Итак, мы нашли функцию, которая интерполирует заданную табличную функцию (т. е. точно совпа- совпадает с заданной функцией в узлах). Согласно определению, функ- функции L0(x), Lx{x), Lz{x) являются квадратичными полиномами; сле- следовательно, интерполирующая функция pL (x) также квадратичный полином. В этом нет ничего удивительного: три заданные значения функции являются достаточной информацией для определения трех коэффициентов квадратичного интерполяционного полинома. Описанная процедура легко обобщается. Очевидно, что для интерполяции по n-f-l заданным точкам (*,-, у{), i = 0, 1, ..., п, таким, что х0 < д;х <•••<*„, нам, вообще говоря, нужен полином степени п с п-}-1 коэффициентами, который можно представить в виде Pl(x) ==^j L{(x) У{, где ? /дл _ (х—х0) (х~х1)...(х—х1.1) (x—xi+1).. .(х—х„) _ Это выражение называется формулой интерполяции Лагранжа, a Lt(x)—фундаментальными полиномами интерполяции Лаг- Лагранжа. Все они являются полиномами степени п от х, как и
Аппроксимация полиномами 2в7 вообще сам pL(x). Однако в некоторых случаях при подстановке Lt{x) в формулу (П5.1) члены, имеющие наивысшую степень х, сокращаются, и поэтому степень полинома pL (x) будет меньше, чем п. Такая ситуация имеет, например, место, когда п-\-1 задан- заданных точек лежат на прямой линии; в этом случае pL(x) сводится к линейному (первой степени) полиному. Единственность полинома интерполирования степени <!я, определяемого формулой (П5.1), доказывается несложно. Предпо- Предположим, что q (х) также имеет степень ^ п и интерполирует за- заданное множество точек. Тогда d (х) = pL (х)—q(x) есть полином степени ^ п, имеющий нулевое значение в п -f- 1 точках' х{, так как значения pL (x) и q (x) в этих точках совпадают. Но, как показано в приложении 3, полином степени ^ п может иметь не более п нулей. Следовательно, d(x) тождественно равен нулю, и поэтому pL(x) —q(x). Пример Найти проинтерполированное значение у при х =* 6 по следую- следующей таблице данных: i 0 1 2 3 2 4 5 7 0 1 1 1 У! .6931 .3863 .6094 .9459 Формула Лагранжа дает следующий интерполяционный полином (кубический): (x- Pl W - B_ B_4) B-5) B-7) (x-2)(x-5)(x-7) D-2) D-5) D-7) + E-2) E-4) E-7) Далее можно было бы разложить произведения, привести подоб- подобные члены и представить pL (x) в явном виде, а именно в виде pL(x) = asxs + a.ix2 + a1x-\-a0. Однако в этом нет никакой необхо- необходимости, поскольку нам нужно найти всего лишь значение поли- полинома р1 (х) при х = 6; поэтому, подставляя это значение непо- непосредственно в последнее уравнение, мы получаем р?F) =^0.6931 —11.3863 +-i 1.6D94+gg 1.9459 = 1.7868. Приведенные данные были взяты из неперовых четырехзначных таблиц логарифмов, и полученная нами величина отличается от
288 Приложение 5 значения г/F) = loge 6 = 1.7918, взятого из .этих таблиц, всего лишь на 0.3%. Но такая удача сопутствует нам не всегда, и опыт показывает, что лагранжева интерполяция может иногда давать очень обман- обманчивые результаты. В качестве классического примера можно при- привести интерполяцию с помощью кубического полинома pL(x) сле- следующей таблицы значений функции у — х1/3. X У 0 0 1 1 , 8 2 27 ¦ з Если посмотреть на графики обеих функций, изображенные на рис. П5.2, то становится ясно, что ни одно из проинтерполиро- ванных значений этой функции не является вполне удовлетвори- удовлетворительным. Рис. П5.2. Несоответствие возникает в результате того факта, что мы аппроксимируем полиномом функцию, которая ведет себя не как полином. Ясно, что в рассматриваемом случае мы получим более точные результаты, если применим линейную иитерполяцию между последовательными парами заданных точек. Рассмотренный случай, хотя и нарочито экстремальный, ставит вопрос о том, какой же точности можно ожидать от полиноми- полиномиальной интерполяции. Анализ показывает, что если точки (xh yt)
Аппроксимация полиномами 289 принадлежат графику однозначной функции у(х), то наибольшая величина погрешности оценивается формулой м \y(x)-Pi(x)\<\(x--xo)(x—xi)...(x--xn)\j^-r), где М — максимум модуля функции у(п+1) (х) на интервале хоз^ <.*<..*;„. Подобные оценки погрешностей, связанные с производ- производными высокого порядка, характерны для численного анализа, но часто они бывают чрезмерно пессимистическими и поэтому непри- непригодными для практического использования. Однако синтезируя кривые для инженерных целей, мы, как правило, стремимся не аппроксимировать математическую функцию, а представить кривую с помощью чертежа или модели. Приведен- Приведенная выше формула оценки погрешности непригодна для этих целей: мы не можем определить М. Но если функция интерпо- интерполируется при помощи множества точек, определенных на исходной кривой, то, чтобы сделать вывод, удовлетворительно или нет наше представление, достаточно построить график кривой и срав- сравнить обе кривые. Вполне возможно, что «математическая кривая» может быть оценена как «более красивая», чем исходная кривая, и предпочтение будет отдано именно ей, даже если эти кривые будут в значительной степени отличаться друг от друга. На этом мы и закончим рассмотрение вопроса о границах погрешностей. Читателю, интересующемуся данным вопросом, можно рекомен- рекомендовать учебник Рэлстона A965), где он может найти более под- подробную информацию.-[См. также Н. С. -Бахвалов A972).—Ред.] П5.4. Полиномиальная интерполяция: метод Эрмита Предположим, что в п-f-l точках х;, i'=l, 2,..., п, нам даны не только зачения функции yit но и ее производные у\. Единственный полином наименьшей степени, имеющий именно эти значения у( и у\ во всех точках xt, определяется при помощи формулы Iii{\yi + % i=0 »'=0 где Я, (х) = [1 -Щ (xt) (x-Xt)] Ц(х), а функции Lt (х) определяются на с. 286. Поскольку Li (x) — поли- полином степени п, то рн(х) — полином степени 2п+1. Этого и сле- следовало ожидать, так как для определения всех коэффициентов
290 Приложение 5 этого полинома требуется 2n-f-2 исходных данных, а мы как раз и использовали известные значения у и у' в п-\-\ точках х{. Приведенная выше формула является формулой интерполяции Эрмита. П5.5. Полиномиальная интерполяция: разделенные разности Вернемся теперь к случаю, когда даны только точки (х{, у{). Вместо того чтобы применять метод интерполирования по Лаг- ранжу (см. разд. П5.3), можно построить интерполирующий по- полином способом, впервые предложенным Ньютоном: р{х) = ай + (х —х„) «! + (* — хо)(х — х1)аг+... ... + (х-хо)(х-х1)... (х-*„_!)(*„. (П5.2) Итак, р(х)—полином степени п от х, и от нас требуется опре- определить все ak. Потребуем, чтобы в каждой заданной точке имело место соотношение р(х{)-уг Полагая в (П5.2) х — х0, хх, ...,хп соответственно, мы получаем систему из я + 1 уравнений:' Уй = а0. yi = <*-»+{Xi—xu)ai, Уг = «о + (*2—х„) а, + (х3—х0) (Xs—xjctz, (П5.3) У» = ао + (х„—х0) щ + (хп—х0) (хп — х1)а2+... ¦ • • +(хп—х0)(хп — х1). ..(хп—хп.х)ап. Эти уравнения однозначно разрешимы. Первое уравнение дает ао = г/„. Подставляя этот результат во второе уравнение, мы полу- получаем, что а1 = (у1 — у0)/(х1—х0), поскольку хх — хйф^. Из третье- третьего уравнения находим а2 и т. д. Заметим, что, задавая дополнительную точку (xn+i, yn+f), мы увеличиваем нашу систему еще на одно уравнение, содержащее аи+1- Все остальные уравнения остаются неизменными. Отсюда следует, что значения а0, ах аи не зависят от фактического числа заданных точек. Из (П5.3) видно, что а„ зависит только от уа; а* зависит от Уа и У\\ а2~°т у0, #i и у2 и т. д. Эти соотношения мы подчер- подчеркиваем следующей формой записи: Используются и другие обозначения для этих соотношений. Подобные формулы можно также получить из любого подмно- подмножества последовательно заданных точек. Например, имея подмно-
Аппроксимация полиномами 291 жество, полученное в результате изъятия точки (х0, у0) и после- последующего добавления точки (xt+i, yi+i), можно вычислить у [xi, %2, ¦ ¦ -I *i+i]- Можно показать (см., например, Хильдебранд, 1956), что такие выражения связаны соотношением •¦¦,xt]—ylxs,...,xt-i] „г*- v 1 — y[Xs, ...,Xt\ = xt—xs A15.4) и поэтому называются разделеннными разностями. Используя уравнение (П5.4), построим таблицу разделенных разностей, при- причем чтобы сохранить принятые нами обозначения, запишем Значения X Хо Xl х2 ха Значения У у[х0] уЫ уЫ уЫ Значения первых разностей У х0, Х1] y[Xit Х? У[*и Ха] Значения вторых разностей У [х0, хи х2] У [Xi, Х2, Ха] Значения треть- третьих разностей У \.Xq, Xit x2i X$] В этих обозначениях формула (П5.2) принимает вид р{х) = у[х0] + {х—х0)у[х0, Xl] + (x—xo)(x—xt)y[x0, xt,xt]+... ... +{х-хо)(х—хг).. .(x—xn_i)y[x0, xu .... *„]• (П5.5) Пример Вычислим снова проинтерполированное значение для у F), см. табл. на с. 287. Получаем (см. стр. 292) таблицу численных значений разделен- разделенных разностей, вычисленных с помощью уравнения (П5.4). Следовательно, формула (П5.5) дает интерполяционный поли- полином вида /ф).= 0.6931+(*—2H.3466—(х—2)(х — 4H.0412 + + {х- 2) (х — 4) {х — 5) 0.0016 -= =0.6931 +(х—2) [0.3466 + (х—4) [—0.0412 + (х—5) 0.0046]]. Представление полинома в такой „вложенной" форме позволяет вычислять его, выполняя минимальное число операций умноже- умножения, для этого вычисления надо начинать с самых внутренних скобок. При л; = 6 мы получаем у F) ~/> F) = 1.7867.
292 Приложение 5 Таблица разделенных разностей для функции у =: loge x 1-е разности 2-е разности 3-й разности 0.6931 1.3863 1.3863—0.6931 4 — 2 =0.346& 1.6094 — 1.3863 5-4 =0.2231 1.6094 1.9459 0.2231-У.3466 5—2 = —0.0412 0.1682—0.2231 7 — 4 = —0.0183 —0.0183-1-0.0412 7—2 = 0 0046 1.9459—1.6094 7—5 =0 1682 Несмотря на различные последние цифры, что объясняется ошиб- ошибкой округления, этот результат совпадает с результатом, полу- полученным с помощью интерполяционной формулы Л'агранжа. Это и следовало ожидать, поскольку оба метода эквивалентны. . Если сравнить метод Лагранжа и интерполяцию с помощью разделенных- разностей, то можно видеть, что последняя имеет большое преимущество, а именно: вычисление интерполирующего полинома для каждого значения х выполняется значительно проще. Если проделать предварительную работу, составив заранее таб- таблицу разделенных разностей, то, как было продемонстрировано на нашем примере, можно вычислить любое число проинтерполи- рованных значений, выполняя при этом минимум арифметических действий. Существуют также и другие методы, например методы Невилля и Эйткена, в которых интерполируемые величины вычисляются с помощью итераций. Допустим, нужно найти значение у в точке х, лежащей между х0 и xv Первая итерация дает величину, соответ- соответствующую линейной интерполяции между (х0, у0) и (хи уг). По- Последовательные итерации дают результаты, соответствующие квадратичной интерполяции по трем точкам, кубической интерпо- интерполяции по четырем точкам и т. д. Гладкая сходимость результа- результатов последовательных приближений, как правило, указывает на то, что окончательная погрешность мала, но для каждого нового значения х эту довольно длительную процедуру необходимо про-
Аппроксимация полиномами 2W водить снова от начала и до конца. Более подробно об этом методе см. Хильдебранд A956). И в заключение нашего анализа метода разделенных разностей докажем фундаментальный результат, имеющий отношение к тео- теории Б-сплайнов (разд. 6.24). Теорема. Для полинома р(х) степени п все п-е разделенные разности равны, а все п+ 1-е разделенные разности, следовательно, равны нулю. л , Доказательство. Положим р (я) = 2 а/Х1- Первая разделенная разность полинома р (х) между х0 и произвольной точкой х дается формулой = 2 Щ (х'-1 + хок'-'+ ... +4)- 1=0 Это полином от х степени п — 1. Подобным образом вторая раз- разделенная разность р[х0, хи х] будет полиномом степени п—2 от*. Продолжая это рассуждение, можно показать, что п-я разделен- разделенная разность р[ха, xlt .., #„_!, л:] является полиномом нулевой степени от л: и поэтому имеет постоянное значение для всех х. Отсюда непосредственно вытекает, что любая n+l-я разность полинома р(х) равна нулю. Все рассмотренные в настоящем приложении формулы интер- интерполирования применимы к функциям, протабулированным в нерав- неравноотстоящих точках. При постоянных интервалах табулирования они значительно упрощаются, а довольно громоздкие разделенные разности можно заменить конечными разностями, которые лежат в основе значительного числа формул интерполирования. Конечные разности нами здесь не рассматриваются; читателям, интересую- интересующимся данным вопросом, можно рекомендовать гл. 4 и 5 книги Хильдебранда A956). [См. также Н. К. Бахвалов A972).— Ред.] П5.6. Численное интегрирование и численное дифференцирование Ясно, что для получения приближений интегралов и производ- производных протабулированных функций необходимо проинтегрировать или продифференцировать интерполяционные полиномы. Некоторые известные и надежные формулы интегрирования выводятся с по- помощью известных правил трапеций, когда линейный интерпо- интерполяционный полином интегрируется по одному интервалу, н
294 Приложение 5 правила Симпсона, согласно которому квадратичный интерполя- интерполяционный полином интегрируется по паре интервалов. Но при под- подгонке кривых и поверхностей нам, к сожалению, больше придется иметь дело с аппроксимацией производных, процессом по природе, своей неточным в силу чувствительности соответствующих формул к ошибкам округления, которые появляются при вычислении зна- значений функций. По этой причине численного дифференцирования, если только есть возможность, следует избегать. Чтобы показать, насколько сложно добиться точной аппрок- аппроксимации производной, рассмотрим простой пример, основанный на приближенной формуле где h — Xi—х0. При этом значение у'о оценивается наклоном ли- линейной функции, интерполирующей точки (ха, у0) и (хи г/х). Если h велико, то очевидно, что мы имеем плохое приближение. Если А —»- 0 то приближение, вообще говоря, становится точным в пре- пределе, но только в принципе. Если /ь, мало, то у1 и у0 почти равны, поэтому, вычисляя разность у1 — yot мы, вероятно, теряем значащие цифры, и потому влияние ошибок округления, всегда присутствую- присутствующих в значениях функций, может возрасти. Деление на h, когда оно мало, может привести к большой абсолютной ошибке в значе- значении у'о. К сожалению, задача выбора оптимального значения h, кото- которое позволило бы избежать вышеуказанных крайних случаев, да- далеко не проста. Для получения более подробной информации о численном инте- интегрировании и численном дифференцировании читателю можно еще раз рекомендовать книгу Хильдебранда A956). П5.7. Рекомендуемая литература по численному анализу Кроме упомянутых выше принадлежащих известным ученым учебников, в которых содержится большая информация по числен- численному анализу, можно рекомендовать читателю для дополнитель- дополнительного чтения еще два пособия. Прежде всего книгу Старка A970), в которой рассматриваются многие затронутые нами темы, и затем книгу Эктона A970), в которой изложены также и многие другие вопросы численного анализа. Обе книги легко читаются, написаны интересно и доступным языком и рассчитаны больше на вычисли- вычислителей-практиков, нежели теоретиков в области численного анализа.
Библиография Библиография содержит некоторое число статей в дополнение к тем, кото- которые цитировались в тексте. Ряд относящихся к делу статей, попавших в поле нашего зрения до середины 1978 г., был включен уже на стадии корректуры. Некоторые из указанных источников сами содержат обширные библиографии. Отметим здесь статьи Де Бура A976), Форреста A972а), Гриффитса A978), Куо A971), Ньюмана и Спроулла A973), Щёнберга A973) и Шумакера A976). Абрамовиц и Стиган (Abramowitz M. and Stegun I. A.). 1964, Handbook of Mathematical Functions, U. S National Bureau of Standards. [Имеется пере- перевод: Справочник по специальным функциям.— М.: Наука, 1979.] Адаме (Adams J. А.). 1975, The Intrinsic Method for Curve Definition, Compu- Computer Aided Design, 7, 4, 243-249. Акима (Akima H.). 1970, A New Method of Interpolation and Smooth Curve Fitting based on Local Procedures, Journal ACM 17, 4, 589-602. Акима (Akima H.). 1974, A Method of Bivariate Interpolation and Smooth Sur- Surface Fitting based on Local Procedures, Comm. ACM 17, I, 18-20. Акима (Akima H.). 1978, A Method of Bivariate Interpolation and Smooth Sur- Surface Fitting for Irregularly Distributed Data Points, ACM. Trans, Math. Soft- Software 4, 2, 148-159. Алберг Дж., Нильсон Э., Уолш Дж. Теория сплайнов и ее приложения.— М.: Мир, 1972. Армит (Armit А. Р.). 1971, Example of an Existing System in University Re- Research. Multipatch and Multiobiect Design Systems, Proc. Ruy. Soc. Lond. A 321 235-242 Армит (Armit A. P.). 1972, Interactive 3D Shape Design—MULTIPATCH and MULTIOBJECT. In Curved Surfaces in Engineering (proc. Conference at Churchill College, Cambridge, 1972), IPC Science and Technology Press Ltd. Ауджа (Ahuja D. V.). 1968, An Algorithm for generating Spline—like Curves. IBM Syst. J., 3 & 4, 206-217. Ауджа и Куне (Ahuja D. V. and Coons S. A.) 1968, Geometry for Construction and Display, IBM Syst. J., 3 & 4, 188-205. Барнхилл (Barnhill R. E.). 1974, Smooth Interpolation over Triangles. In Com- Computer-Aid Geometric Desing, (R. E. Barnhill and R. F. Riesenfeld, eds.), Academic Press. Барнхилл, Биркгоф и Гордон (Barnhill R. E., Birkhoff G. and Gordon W. J.). 1973, Smooth Interpolation in Triangles, J. Approx. Th. 8, 114-128. Баттерфилд (Butterfield K. R.). 1976, The Computation of all the Derivatives of а В-ьрНпе Basis, J. Inst. Maths. Applies. 17, 15-25. Баттерфилд (Butterfield K. R.). 1978, Ph. D. Thesis, Brunei University Uxbridge, Middlesex. Безье (Bezier P.). 1968, How Renault uses Numerical Control for Car Body Design and Tooling, SAE Paper 680010. Безье (Bezrer P ). 1971, Example of an Existing System in the Motor Indusry The UNISURF System Proc. Roy. Soc Lond. A 321, 207-218. Безье (Bezier P.). 1972, Numerical Control: Mathematics and Applications, Wiley. Безье (B«zier P.). 1974a, Mathematical and Practical Possibilities of UNISURF.
296 Библиография In Computer-Aided Geometric Design, (R. E. Barnhill and R. F. Reisenfeld- eds.), Academic Press. Безье (Bezier P.). 1974b, UNISURF System: Principles, Program, Language, Proc. 1973, PROLAMAT Conference, Budapest (J. Hatvany, ed.) North Hol- Holland Publ. Co., Amsterdam. Бейтс (Bates K. J.). 1972, The AUTOKON AUTOMOTIVE and AEROSPACE Packages. In Curved Surfaces in Engineering (proc. Conference at Churchill College, Cambridge, 1972), IPC Science and Technology Press ltd. Бен-Израэль (Ben-Israel A.). 1966, A Newton-Raphson Method for the Solution of Systems of Equations, J. Math. Anal. Appl., 15, 243-252. Бём (Вбгап W.). 1977, Uber die Konstruktion von B-Spline-Kurven, Computing, 18, 161-166. Бёр (Bar G.). 1977, Parametrische Interpolation empirischer Raumkurven, ZAMM 57, 305-314. Блур, Де Пеннингтон и Вудвок (Bloor M. S., de Pennington A. and Wood- wark J. R.). 1978, RISP: Bridging the Gap between Conventional Surface Elements, Proc. CAD78 Conference Brighton, 1978, IPC Science and Tech- Technology Press Ltd. Болл (Ball A. A.). 1974, CONSURF. Part I: Introduction of the Conic Lofting Tile, Computer Aided Design 6, 4, 243-249. Болл (Ball A. A.). 1975, CONSURF. Part 2: Descrlpion of the Algorithms, Com- Computer Aided Design, 7, 4, 237-242. Болл (Ball A. A.). 1977, CONSURF. Part 3: How the Program is used, Com- Computer Aided Desing, 9, 1, 9-12. Болл (Ball A. A.). 1978, A Simple Specification of the Parametric Cubic Seg- Segment, Computer Aided Design, 10, 3, 181-182. Болтин (Bolton K. M.). 1975, Biarc Curves, Computer-Aided Design 7, 2, 89-92. Бредли и Миллер (Bradley D. M. and Miller С. Р.). 1978, The Implementation, Testing and Use of CASPA, Proc. CAD78 Conference, Brighton, 1978, IPC Science and Technology Press Ltd. Брейд (Braid I. C). 1973, Designing with Volumes, Cantah Press, Cambridge." Брейд (Braie I. C). 1975, The Synthesis of Solids bounded by Many Faces, Comm. ACM 18, 4, 209-216. Брейд (Braid I. C). 1976, A New Shape Design System, CAD Group Document No. 89, Computer Laboratory, Camhridge University. Bapa (Varah J. M.). 1977, On the Condition Number of Local Bases for Pie- cewise Cubic Polynomials, Mathematics of Computation 31, 37-44 Верон, Рис и Мюссе (Veron M., Ris G. and Musse J.-P-l- 1976, Continuity of Biparametric Surface Patches, Computer Aided Design, 8, 4, 267-273. By (Woo Т. С). 1977a, Computer-Aided Recognition of Volumetric Designs. ^In Advances in Computer-Aided Manufacture, (D. McPherson, ed.) North Holland Publishing Co. By (Woo Т. С). 1977b, Progress in Shape Modelling, Computer, Dec.Nl977, 40-46. Гаффни (Gaffney P. M). 1977, To Compute the Optimum Interpolation Formula, Report CSS52, Atomic Energy Research Establishment, Harwell. Гилл и Мюррей (Gill P. E. and Murray W.). 1976, Algorithms for the Solution of the Nonlinear Least Squares Problem, Report NAC71, National Physical Laboratory, Teddington, Middlesex. Гордон (Gordon W. J.). 1969, Spline-blended Surface interpolation through Curve Networks, Journal of Mathematics and Mechanics 18, 10, 931-952. Гордон и Ризенфельд (Gordon W. J. and Riesenfeld R. F.). 1974a, B-spline Curves and Surfaces. In Computer Aided Geometric Design (R. E. Barnhill and R. F Riesenfeld eds.). Academic Press. Гордон и Ризенфельд (Cordon W. J. and Riesenfeld R. F.). 1974b, Bernstein- Bezier Methods for the Computer-Aided Design of Free Form Curves and Surfa- Surfaces, Journal ACM 21, 2, 293-310.
Библиография 297 Гордон и Уиксом (Gordon W. J. and Wixom J. A ). 1978, Shephard's Method of Metric Interpolation to Bivariate and Multivariate Interpolation, Mathe- Mathematics of Computation, 32, 141, 253-264. Госслинг (Gossling Т. H.). 1976, The "Duct" System of Design for Practical Objects, Proc. World Congress on the Theory of Machines and Mechanisms, Milan. Гревилл (Greville T. N. E.). 1967, On the Normalisation of the B-splines and the Location of the Nodes for the case of Unequally Spaced Knots. Supplement to the paper "On Spline Functions" by I. J. Schoenberg in Inequalites (O. Shlcha, ed.), Academic Press. Гревилл (Greville T. N. E. (ed.)). 1969, Theory and Applications of Spline Fun- Functions, Academic Press Грегори (Gregory J. A.). 1974, Smooth Interpolation without Twist Constraints, In Computer-Aided Geometric Design (R. E. Barnhill and R. F. Riesenfeld, eds.), Academic Press Гриффите (Griffiths J.G.). 1978, Bibliography of Hidden-line and Hidden-surface Algorithms, Computer-Aided Design 10, 3, 203—206. Гулд (Gould S. S.). 1972, Surface Programs for Numerical Control. In Curved Surfaces in Engineering (Proc. Conference at Churchill College, Cambridge, 1972), IPC Science and Technology Press Ltd. Гулт, Хоскинс, Милнер и Пратт (Goult R. J., Hoskins R. F., Milner J. A. and Pratt M. J.)- 1973, Applicable Mathematics, MacMillan. Гулт, Хоскиис, Милнер и Пратт (Goult R. J., Hoskins R. F., Milner J. A. and Pratt M. J.). 1974, Computational Methods in Длпеаг Algebra, Stanley Thor- nes (Publishers) Ltd., London and Wiley Interscience, New York. Де Бур (De Boor C), 1972, On Calculated with B-splines, J. Approx. Th. 6, 50—62. Де Бур (De Boor C). 1976, Splines as Linear Combinations of B-splines. A. Sur- Survey, In Approximation Theory II (G. G. Lorentz, С. К. Chui and L. L. Schu- maker, eds.), Academic Press. Де Бур (De Boor C). 1977, Package for Calculating with B-splines S1AM J. Nu- mer. Anal. 14, 3, 441-472/ Деннис (Dennis J. E.). 1976, Non-linear Least Squares and Equations, Report CSS 32, Atomic Energy Research Establishment, Harwell. Also in The State of the Art in Numerical Analysis (D. A. H. Jacobs, ed.), Academic Press A977). Дёфлар (Deuflhard P.), 1974, A Modified Newton Method for the Solution of Illconditioned Systems of Non-linear equations with Applications to Multiple Shooting, Numer. Math. 22. 289-315. Димсдейл (Dimsdale В.). 1977, Bicubic Patch Bounds, Сотр. \ Maths, with Appls: 3, 2, 95-104. Димсдейл (Dimsdale В.). 1978, Convex Cubic Splines, IBM J. Res. Develop. 22, 168-178. Димсдейл и Беркли (Dimsdale В. and Burkley R. ML). 1976, Bicubic Patch Sur- Surfaces for High speed Numerical Control Processing, IBM J. Res. Develop. 358-367. Димсдейл и Джонсон (Dimsdale В. and Johnson К.). 1975, Multiconic Surfa- Surfaces, IBM J. Res. Develop. 19. 6, 523-529. Доллрис (Dollries J. F.). 1963, Three-dimensional Surface Fit ang Numericalley Controlled Machining from a Mesh of Points, Technical Information Series Report No. R63FPD319, General Electric Co. IITRI A967), APT Part Prog- Programming, McGraw-Hill. Инсельберг (Inselberg A.). 1976, Cubic Splines with Infinite Derivatives at Some Knots, IBM J. Res. Develop., September 1976, 430-436. Карри и Шоёберг (Curry H. В. and Schoenberg I. J.). 1966, On Polya Fre- Frequency Functions IV The Fundamental Spline Functions and their Limits, J. Analyse Math. 17, 71-107.
298 Библиография С. A. D. Centre A972), An Introduction to Numerical Master Geometry, Computer Aided Design Centre, Madingley Road, Cambridge. CAM-I A976), User Documentation for Sculptured Surfaces Releases SSX5 and SSX5A, Publication No. PS-76-SS-02, Computer Aided Manufacturing Inter- International, Inc., Arlington, Texas. CAM-I A977), Sculptured Surfases Users Course, Publication No. TM-77-SS-01, Computer Aided Manufacturing International, Inc., Arlington, Texas. Клайн (KHne A. K.). 1974, Scalar and Planar valued Curve Fitting using Spli- Splines under Tension, Comm. ACM 17, 4, 218-220. Коллинз и Гаулд (Collins P. S. and Gould S. S.). 1974, Computer-Aided Design and Manufacture of Surfaces for Bottle Moulds. Proc, CAM74 Conference on Computer Aided Manufacture and Numerical Control, Strathclyde University, 1974. Кокс (Сох М. G.). 1971, An Algorithm for approximating Convex Functions by means of First-Degree Splines, Comput. J. 14, 3, 272-275. Кокс (Cox M. G.). 1972, The Numerical Evaluation of B-Splines, J. Inst. Maths. Applies. 10, 134-149. Кокс (Cox M. G.). 1975, An Algorithm for Spline Interpolation, J. Inst. Math- Applies. 15, 95-108. Кокс (Cox M. G.). 1976, The Numerical Evaluation of a Spline from its B-Spline Representation, Middlesex. Кокс и Хейс (Cox M. G. and Hayes J. G.). 1973, Curve Fitting- A Guide and Suite of Programs for the Non-specialist User, NPL Report NAC 26, National Physical Laboratory, Teddington, Middlesex. Коулс (Coles W. A.). 1977, Use of Graphics in an Aircraft Design Office, Com- puter-Aided Design 9, 23-28. Куне (Coons S. A.). 1967, Surfaces for Computer Aided design of Space Forms, Report MAC-TR-41, Project MAC, M. I. T. Куне (Coons S. A.). 1977, Modification of the Shape of Piecewise Curves, Com- puter-Aided Design 9, 3, 178-180. Kyo (Kuo C). 1971, Computer Methods for Ship Surface Design, Longman. Лайминг (Liming R. A.). 1944, Practical Analitical Geometry with Applications to Aircraft, Macmillan, New York. Левик (Lavick J. J.). 1971, Computer-Aided Design at McDonnell Douglas. In Advanced Computer Graphics (R.D. Parslow and R. Elliot Green, eds.), Plenum Press, London and New York. Левин (Levin J.). 1976, A Parametric Algorithm for drawing Pictures of Solid Objects composed of Quadric Surfaces, Comm. ACM 19, 10, 555-563. Ли (Lee Т. М. P.). 1971, Analysis of an Efficient Homogeneous Tensor Represen- Representation of Surfaces for Computer Display. In Advanced Computer Graphics (R.D. Parslow and R. Elliot Green, eds.), Plenum Press, London and New York. Мак-Коллум (MacCallum K. J.). 1970, Surfaces for Interactive Graphical D-esign, Comput. J. 13, 4, 352-358. Мак-Коллум (MacCallum K. J-). 1972, Mathematical Design of Hull Surfaces, The Naval Architect, July 1972, 359-373. Максвелл (Maxwell E. A.). 1958, Co-ordinate Geometry with Vectors and Tensors, Oxford University Press. Мейнардус (Meinardus G.). 1976, Algeraische Formulierung von Spline-Interpo- lationen, International Series in Numerical Mathematics, Vol. 32, Moderne Methoden der numerischen Mathematik, 125-138. Birkhauser Verlag, Basel & Stuttgart. Мейр и Дункан (Mair S. G. and Duncan J. P.) 1975, Polyhedral NC Program Documentation, Report, Department of Mechanical Engineering, University of British Columbia, Vancouver. Мелколм (Malcolm M. A.), 1977, On the Computation of Nonlinear Spline Fun- Functions, SIAM J. Numer. Anal. 14, 2, 254-282.
Библиография 299 Мелум (Mehlum. E.). 1964, A Curve-Fitting Method based on a Variational Cri- Criterion, BIT 4, 213-223. Мелум (Mehlum E.). 1969, Curve and Surface Fitting based on a Variational Criterion for Smcothness, Central Institute of Industrial Research, Oslo. Мелум (Mehlum E.). 1974, Non-linesar Splines In Computer-Aided Geometric Design (R. E. Barnhiii and R. F. Riesenfeld, eds.), Academic Press. Мелум н Сёрснсон (Mehlum E. and S0renson P. F.). 1971, Example of an Exi- Existing System in the Shipbuilding Industry: the AUTOKON System, Proc. Poy. Soc. Lond. A. 321, 219-233. Меннинг (Manning J. R.). 1974, Continuity Conditions with Vectors and Ten- Tensors, Oxford University Press. Мнтчелл н Уэйт (Mitchell A. R. and Wait R.). 1977, The Finite Element Met- Method in Partial Differential Equations, Wiley Interscience. Myp (Moor С L.). 1959, Method of Fitting a Smooth Surface to a Mesh of Points, Technical Information Series Report. No. R59FPD927, General Ele- Electric Co. Натбурн (Nutbourne A. W.). 1973, A Cubic Spline Package. Part 2—The Mathe- Mathematics. Computer-Aided Design 5, 1, 7-13. Натбурн, Мак-Леллен н Кенсит (Nutbourne Д. W., McLellan P. M. and Ken- sit-J?. M. L.). 1972, Curvature Profiles for Plane Curves, Computer-Aided Design, 4, 4, 176-184. Нильсон (Nielson G. M.). 1974, Some Piecewise Polinomial Alternatives to Splines in Tension. In Computer-Aided Geometric Design (R. E. Bamhill and R. F. Riesenfeld, eds.), Academic Press. Ньюмаи и .Спроулл (Newman W. M, and Sproull R. F.). 1973, Principles of Interactive Computer Graphics, McGraw-Hill. Ортега и Рейнболдт (Ortega J. M. and Rheinboldt W. C). 1970, Iterative Solu- Solution of Non-linear Equations in Several Variables, Academic Press. [Имеется перевод: Итерационные методы решения нелинейных систем уравнений со многими неизвестными.— М.: Мир, 1975.] Пауэлл (Powell M. J. D.). 1972, Problems related to Unconstrained Optimisa- Optimisation, In Numerical Methods for Unconstrained (W. Murray, ed.), Academic Press. Пауэлл (Powell M. J D.). 1977, Numerical Methods for Fitting Functions of Two Variabies In TH State of the Art in Mumerical Analysis (D. A H. Ja- Jacobs, ed.), Academic Press. Пенрозе (Penrose R.). 1955, A Generalised Inverse for Matrices, Proc. Camb. Phil. Soc. 51, 406-413. Питере (Peters G. J.). 1974, Interactive Computer Graphics Application of the Parametric Bicubic Surface to Engineering Design Problems, In Computer- Aided Geometric Design (R. E. Barnhiii and R. F. Risenfeld, eds.) Acade- Academic Press. Проттер и Моррей (Protter M. H. and Morrey С. В.). 1964, Modern Mathemati- Mathematical Analysis, Addison-Wesley. Пруэсс (Pruess S.). 1976, Properties of Splines in Tension, J. Approx. Th. 17. Пэл (Pal T. K.). 1978a, Intrinsis Spline Curve with Local Control, Computer- Aided Design 10, 1, 19-29. Пэл (Pal Т. К.). 1978b, Mean Tangent Rotational Angles and Curvature Inte- Integration, Computer-Aided Design 10, 1, 30-34. Пэл и Натбурн (Pal Т. К. and Nutbourne A. W.). 1977, Two-dimensional Curve Synthesis using Linear Curvature Elements, Computer-Aided Design 9, 2. Рабинович (Rabinowitz P. (ed.)). 1970, Numerical Methods for Non-Linear Equat- Equations, Gordon and Breach, London. Рэлстон (Ralston A.). 1965, A First Course in Numerical Analysis, McGraw- Hill. Ризенфельд (Riesenfeld R. F.). 1975, Nonuniform B-spline Curves, Proc. 2nd USA-Japan Computer Conference, 1975, 551-555,
300 Библиография Роберте (Roberts L. G,). 1963, Machine Perception of Three-Dimensional Solids, Tech- Technical Report TR315, MIT Lincoln laboratory, Lexington, Mass. Роберте (Roberts L. G.). 1965, Homogeneous Matrix Representation and Manipu- Manipulation of N-dimensional Constructs, The Computer Display Review, Adams- Associates, May 1965, 1-16. Робсон (Robson A.). 1940, An Introduction to Analytic Geometry, Cambridge University Press. Роджерс и Адаме (Rogers D. F. and Adams J. A.). 1976, Mathematical Elements for Computer Graphics, McGrow-Hill. Сабин (Sabin M. A.). 1968, Parametric Surface Equations for Non-rectangular Regions, Report No. VTO/MS/147, Dynamics and Mathematical Services Dept., British Aircraft Corporation, Weybridge. Сабин (Sabin M. A.). 1971, An existing System in the Aircraft Indystry. The British Aircraft Corporation Numerical Master Geometry System, Proc. Roy. Soc. Lond. A 321, 197-205. Сабин (Sabin M. A.). 1972, Comments on some Algorithms for the Representation of Curves by Straight Line Segments, letter in Comput. J. 15, 2, 104. Сабин (Sabin M. A.). 1976, A Method for displaying the Intersection Curve of two Quadric Surfaces, Comput. J. 19, 336-338. Семпл и Нибоун (Semple J. G. and Rneebone G. Т.). 1952, Algebraic Projective Geometry, Oxford University Press. Смит и Мерриуэзер (Smith D. J. L. and Merryweather H.). 1973, The Use pf Analytic Surfaces for the Design of Centrifugal Impellers by Computer Graphics, Int. J. Num Meth. Eng. 17, 137-154. Смит (Smith L. В.). .1971, Drawing Ellipses, Hyperbolas or Parabolas with a Fixed Number of Points and Maximum Inscribed Area, Comput. J. 14, 81-86. Соммервилль (Sommerville D. M. Y.). 1934, Analytic Geometry of Three Dimen- Dimensions, Cambridge University Press. Спаат (Spath HX 1974, Spline Algorithms for Curves and Surfaces, Utilitas Mathematica Publishing Inc., Winnipeg, Canada. Старк (Stark P. A.). 1970, Introduction to Numerical Methods, Collier-Macmillan. Томас (Tomas D. H.). 1976, Pseudospline Interpolation for Space Curves Mathe- Mathematics of Computation 30, 133, 58-67. Уэзерборн (Weatherburn С. Е ). 1961, Differential Geometry of Three Dimensions, Cambridge University Press. Уэллман (Wellman B. L ). 1957, Technical Descriptive Geometry, McGraw-Hill. Уиллинга (Wielinga R. F.). 1974, Constrained Interpolation using Bezier Curves as a New Tool in Computer-Aided Geometric Design. In Computer-Aided Geometric Design (R. E. Barnhill and R. F. Riesenfeld, eds.). Academic Press. Уиллмор (Willmore T. J.). 1958, Differential Geometry, Oxford University Press. Уилсон и Фарриор (Wilson H. В. and Farrior D. S.). 1976, Computation of Geometrical and Inertial Properties for General Areas and Volumes of Revo- Revolution, Computer-Aided Design 8, 4, 257-263. Уолкер (Walker, L. F.). 1972, Curved Surfaces in Shipbuilding Design and Production, In Curved Surfaces in Engineering (proc. Conference at Churchill College, Cambridge, 1972), IPC Science and Tehnology Press. Уолтер (Walter H.). 1973, Computer-Aided Design in the Aircraft Industry. In Computer-Aided Design (J. Vlietstra and R. F. Wielinga, eds.), North Holland Publishing Co. Уорнок (Warnock J. E.). 1969. A Hidden Surface Algorithm for Computer Gene- Generated Half-tone Pictures, Report AD-753-671, National Technical Information Sevice, U. S. Dept. of Commerce, Springfield, Va. Фергюсон (Ferguson J. C). 1963, Multivariable Curve Interpolation, Report No. D2-22504, The Boeing Co., Seattle, Washington. Фергюсон (Ferguson J, С). Ь964, Multivariate Curve Interpolation, Journal ACM, II, 2, 221-228,
Библиография 301 Фланаган и Хефнер (Flanagan D. L. and Hefner О. V.). 1967, Surface Mould- Moulding—New Tool for the Engineer» Aeronautics and astronautics, April 1967, 58-62. Флаттер (Flutter A. G.). 1974; The POLYSURF System, Proc. 1973PROLAMAT Conference, Budapest (J. Hatvany, ed,), North Holland Publ. Co., Amsterdam. Флаттер и Рольф (Flutter A. G. and Rolph R. N.). 1976, POLYSURF: An Interactive System for Computer-Aided Design and Manufacture of Compo- Components, CAD 76 Proceedings, 150-158; CAD Centre, Madingley Road, Cam- Cambridge. Фокс (Faux I. D.). 1978, Simple Cross-Sectional Designs, Proc. CAM78 Confe- Conference, National Engineering Laboratory, East Kilbride, 1978. Форрест (Forrest A. R.). 1968, Curves and Surfaces for Computer-Aided Design, Ph. D. Thesis, University of Cambridge. Форрест (Forrest A. R.). 1971, Computational Geometry, Proc. Roy. Soc. Lond. A 321, 187-195. Форрест (Forrest A. R.). 1972a, On Coons and other Methods for the Represen- Representation of Curved Surfaces, Computer Graphics and Image Processing 1,341-359. Форрест (Forrest A. R.).' 1972b, Interactive Interpolation and Approximation by Bezier Polinomials, Comput. J. 15, 1, 71-79. Форрест (Forrest A. R.). 1972c, Mathematical Principles for Curve and Surface Representation, In Curved Surfaces in Engineering (proc. Conference at Churchill College, Cambridge, 1972), IPC Science and Technology Press Ltd. Форрест (Forrest A. R.). 1974, Computational Geometry—Achievements and Problems, In Computer-Aided Geometric Design (R. E. Barnhill and R. F. Riesenfeld, eds.), Academic Press. Фримантл и Фримен (Freemantle А. С. and Freeman P. L.). 1972, The Evo- Evolution and Application of Lofting Techniques at Hawker Siddeley Aviation. In Curved Surfaces in Engineering (proc. Conference at Churchill College, Cambridge, 1972), IPC Science and Technology Press Ltd. Хайодо (Hyodo Y.). 1973, HAPT—3D. A Programming System for Numerical Control, Proc. 1973 PROLAMAT Conference, Budapest (J. Hatvany, ed.), North Holland Publishing Co., Amsterdam. Харт (Hart W. В.). 1971, Glider Fuselage Design with the Aid of Computer Graphics, Computer-Aided Design 3, 2, 3-S. Харт (Hart W. В.). 1972, Current and Potential Applications to Industrial Design and Manufacture, In Curved Surfaces iin Engineering (proc. Conference at Churchill College, Cambridge, 1972) IPC Science and Technology Press Ltd. Харт (Hart W. В.). 1972, The Application of Computer-Aided Design Techniques to Glassware and Mould Design, Computer-Aided -Design 4, 2, 57-66. - Хартли и Джудд (Hartley P. J. and Judd С J.). 1978, Parametrisation of Bezier-type В-spline Curves and Surfaces, Computer-Aided Design 10, 2, 130-134. Хейс (Hayes J. G.). 1973, Available Algorithms for Curve and Surface Fitting, NPL Report NAC 39, National Physical Laboratory, Teddington, Middlesex. Хейс (Hayes J. G.). 1974, New Shapes from Bicubic Splines, NPL Report NAC 58, National Physical Laboratory, Teddington, Middlesex. Хейс и Холлидей (Hayes J. G. and Halliday J.). 1974, The Least-squares Fitting of Cubic Spline Surfaces to General Data Sets, J. Inst. Maths. Appl. 14, 89-103. Хильдебранд (Hildebrand F. В.). 1956, Introduction to Numerical Analysis, MacGraw-Hill. Чеззи и Тизато (Ghezzi С. and Tisato F.). 1973, Interactive Computer-Aided Design for Sculptured Surfaces, Proc. 1973 PROIAMAT Conference, Buda- Budapest (J. Hafvany, ed.), North Holland Publishing Co., Amsterdam. Швейкерт (Schweikert D. G.). 1966, An Interpolation Curve using a Spline in Tension, J. Math. & Phys 45, 312-317. Шефард (Shcphard D.). 1968, A Two-dimensional Interpolation Function for Irregularly Spaced Data, Proc. ACM National Conference, 1968, 517-524.
302 Библиография Шехтер (Schechter A.). 1978a, Syntesis of 2D Curves by Blending Piecewise Linear Curvature Profiles, Computer-Aided Design, 10, 1, 8-18. Шехтер (Schechter A.). 1978b, Linear Blending of Curvature Profiles, Computer- Aided Design 10, 2, 101-109. Шёнберг (Schoenberg I. J.). 1973, Cardinal Spline Interpolation, SIAM, Phila- Philadelphia. Шёнберг и Уитни (Schoenberg I. J. and Whitney A.). 1953, On Polya Frequency Functions III: The Positivity of Translation Determinants with an Application to the Interpolation Problem by Spline Curves, Trans. Amer. Math. Soc. 74. 246-259. Шу, Хорн, Ман и Литтл (Shu H., Hori S., Mann W. R. and Littk R. N.). 1970, The Syntesis of Sculptured Surfaces, In Numerical Control Programming Languages (W. H. P. Leslie, ed.), North Holland Publushing Co. Amsterdam. Шумакер (Schumaker. L. L.). 1969, Some Algorithms for the Computation of Interpolating and Approximating Spline Functions, In Theory and Appli- Applications of Spline Functions, (T. N. E. Greville, ed.), Academic Press. Шумакер (Schumaker L. L.). 1976, Fitting Surfaces to Scattered Data. In Appro- Approximation Theory II (G. G. Lorentz C. K. Chui and L. L. Schumaker, eds.), Academic Press. Эйнар и Скаппел (Einar H. and Skappel E.). 1973, FORMELA: A general Design and Production Data System for Sculptured Products-Aided Design 5, 2, 68-76. Эктон (Acton F. S.). 1970, Numerical Methods that Work, Harper and Row. Эллис н Мак-Лейн (Ellis T. M. R. and McLain D. H.). 1979, A New Method of Cubic Curve Fitting using Local Data, ACM Trans. Math. Software 3, 2, 175-178. Эммерсои (Emmerson W. C). 1976, CAD in the Motor Industry, Computer-Aided Design 8, 3, 193-197. Эпштейн (Epstein M. P.). 1976, On the Influence of Parametrisation in Para- Parametric Interpolation, SIAM J. Numer. Anal. 13, 2, 261-268. Юлли (Yuille I. M.). 1972, Ship Design. In Curved Surfaces in Engineering (proc. Conference at Churchill College, Cambridge, 1972), IPC Science and Technology Press Ltd.
Оглавление Предисловие редактора перевода , 5 Предисловие 7 Введение 9 Глава 1. Аналитическая геометрия на плоскости 15 1.1. Основные понятия 15 1.2; Некоторые вопросы аналитической геометрии на плоскости .... 26 Глава 2. Геометрия в пространстве и векторная алгебра 37 2.1. Координаты в трехмерном пространстве 37 2.2. Введение в теорию векторов 39 2.3. Векторная алгебра I: определения и приложения в геометрии ... 43 2.4. Векторная алгебра II: скалярные и векторные произведения ... 48 Глава 3.' Преобразования коордянат 57 3.1. Введение 57 3.2. Преобразование объектов 58 3.3. Плоские проекции трехмерных объектов 66 3.4. Косоугольные координаты 71 Глава 4. Геометрия кривых и поверхностей в трехмерном пространстве v 74 4.1. Параметрическое описание кривых и поверхностей 74 4.2. Элементарная дифференциальная геометрия 8L 4.3. Неявные уравнения для поверхностей и кривых в трехмерном пространстве 103 Глава 5. Проектирование кривых и поверхностей 108 5.1. Построение кривых и поверхностей при помощи параметрических кубических уравнений 108 S-.2. Рациональные параметрические кривые и поверхности 118 5.3. Преобразования параметров для полиномиальных и рациональных параметрических кривых и поверхностей -. 129 5.4. Площадь, стянутая плоской кривой, представленной в форме Безье 131 Глава в. Составные кривые и сплайны 132 6.1. Введение 132 6.2. Построение плоских кривых 133 6.3. Составные кривые, заданные параметрическими уравнениями ... 149 6.4. Еще две системы, имеющие практическое значение 167 6.5. Локальная модификация составных кривых . . . . , 173 Глава 7. Составные поверхности 179 7.1. Введение: порции поверхности по Кунсу 179 7.2. Поверхности тензорного произведения 184 7.3. Плазовые поверхности 210 7.4. Непараметрические поверхности 214 7.5. Двумерная интерполяция поверхности по заданным кривым ... 217
304 Оглавление 7.6. Вырожденные порции поверхности 218 7.7. Кривые иа параметрических поверхностях; разбиение порций . . . 22Q Глава 8. Конструирование с помощью поперечных сечений ...... 223 8.1. Проектирование изделий с прямолинейной осью с использованием порций поверхности Безье 223 8.2. Проектирование изделий с прямолинейной осью с использованием порций обобщенных поверхностей Безье • 230 8.3. Конструкции поперечных сечений, основанные на пропорциональной развертке ;..... 232 8.4. Проектирование конфигураций с искривленной осевой линией . . . 235 8.5. Площади и объемы осевых конфигураций 237 Глава 9. Применение ЭВМ для конструирования и изготовления поверхностей ...... 240 9.1. Пересечения кривых и поверхностей 240 9.2. Смещенные поверхности ' 250 9.3. Путь режущего инструмента при числовом управлении ...... 251 9.4. Пересечение кривой с поверхностью 255 9.5. Развертка развертывающихся поверхностей 256, 9.6. Кусочио-лииейная аппроксимация параметрически заданной кривой 258 -Приложение 1. Элементарная матричная алгебра 261 П1.1. Некоторые определения .,., 261 П1.2. Законы матричной алгебры 261 П1.3. Произведение двух матриц ..,,, 262 Ш.4. Свойства матричных произведений ч. . 264 П1.5. Неособые матрицы 266 П1.6. Транспонированная матрица 267 П1.7. Ортогональные матрицы 267 П1.8. Матричное представление скалярных и векторных произведений . 268 Ш.9. Блочные матрицы 269 Приложение 2. Детерминанты 270 Определения 270 Приложение 3. Основные свойства пЪлиномов 272 Приложение 4. Численное решение полиноминальных и других нели- нелинейных уравнений 276 П4.1. Решение одиночного уравнения 276 П4.2. Численное решение систем нелилейных уравнений . 278 Приложение 5. Аппроксимация полиномами 282 П5.1. Введение 282 П5.2. Апнроксимация кривых с помощью полиномов, построенных по методу наименьших квадратов . . . . ; 283 П5.3. Полиномиальная интерполяция: метод Лежандра 285 П5.4. Полиномиальная интерполяция метод Эрмита 289 П5.5. Полиномиальное интерполяция разделенные разности 290 П5.6. Численное интегрирование и численное дифференцирование . . . 293 П5.7. Рекомендуемая литература по численному анализу ....... 294 Библиография 295