У вас вопросы?
У нас ответы:) SamZan.net

Системы автоматизированного проектирования ТУЛА 2006 С

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 28.12.2024

PAGE  3

Федеральное агентство по образованию

Государственное образовательное учреждение
высшего профессионального образования

Тульский государственный университет

Кафедра "Автоматизированные станочные системы"

Ямникова О.А.

Геометрическое моделирование в САПР

КУРС ЛЕКЦИЙ

для студентов специальности 230104
«Системы автоматизированного прое
ктирования»

ТУЛА 2006


Содержание

1. Геометрическое моделирование

4

1.1. Понятие о геометрической модели проектируемого объекта

4

1.2. Модификации векторов и точек

5

1.3. Однородные координаты

6

1.4. Геометрия кривых линий

8

1.5. Геометрия поверхностей

11

2. Математические основы геометрического моделирования

13

2.1. Математическая модель кривых линий

13

2.2. Аналитические линии

13

2.3. Кривые второго порядка

16

2.4. Понятие кубических сплайнов

16

2.5. Аппроксимирующие уравнения пространственных кривых: Фергюссона, Эрмита, Безье, В-сплайны, рациональные выражения, NURBS

19

2.6. Представление кривых второго порядка кривыми Безье

20

2.7. Рациональные кривые

20

2.8. В-сплайны

23

2.9. NURBS кривые

27

2.10. Линии, базирующиеся на линиях

30

2.11. Составные кривые

33

2.12. Двухмерные кривые

34

2.13. Способы построения линий

36

3. Поверхностное моделирование

38

3.1. Геометрическая модель поверхности

38

3.2. Аналитические поверхности

39

3.3. Поверхности второго порядка

43

3.4. Поверхности движения

45

3.5. Понятие линейчатых поверхностей

47

3.6. Аппроксимирующие уравнения поверхностей Кунса, Безье, В-сплайнов, NURBS

49

3.7. Сплайновые поверхности

51

3.8. Поверхности Безье

55

3.9. Рациональные поверхности

56

3.10. NURBS поверхности

57

3.11 Поверхности треугольной формы

60

3.12 Треугольные поверхности Безье

62

3.13 Треугольные сплайновые поверхности

65

3.14 Поверхности, базирующиеся на поверхностях

69

3.15 Ограниченные контурами поверхности

71

3.16. Способы построения поверхностей

73

4. Способы создания геометрических моделей

74

4.1. Выполнение операций

74

4.2. Движение по параметрической области

74

4.3. Проекция точки на линию

75

4.4. Проекция точки на поверхность

77

4.5. Определение точек пересечения линии и поверхности

81

4.6. Определение точек пересечения линий

83

4.7. Построение линий пересечения поверхностей

85

4.8. Поверхность скругления

91

4.9. Поверхность фаски

94

4.10. Определение точек пересечения трех поверхностей

96

4.11. Точность выполнения операций

96

5.Базовые элементы формы и их точное аналитическое описание

98

5.1. Топологические объекты

98

5.2. Эйлерова характеристика оболочек

100

5.3. Связность оболочек

100

5.4. Ориентируемость оболочек

101

5.5. Оболочки для моделирования тел

102

5.6. Твердотельное и поверхностное моделирование

104

6. Различные способы представления твердотельных моделей

106

6.1. Математическая модель тел. Способы описания геометрических моделей: явные, неявные векторные, параметрические уравнения.

106

6.2. Простейшие тела

108

6.3. Тела, полученные движением плоского контура

112

6.4. Построение тела по плоским сечениям

114

6.5. Тело в форме листа

114

6.6. Теоретико-множественные операции булевой алгебры

115

6.7. Резка тела поверхностью

121

6.8. Построение симметричного тела

121

6.9. Построение эквидистантной оболочки тела

123

6.10. Построение тонкостенного тела

124

6.11. Скругление ребер тела

126

6.12. Построение фасок ребер тела

129

6.13. Последовательность моделирования тел

129

7. Вариационные связи геометрических объектов

131

7.1. Наложение вариационных связей

131

7.2. Фиксирующие связи

132

7.3. Вариационные связи точек в пространстве

133

7.4. Вариационные связи точек на кривых и поверхностях

137

7.5. Алгебраические связи

139

7.6. Минимизация изменения параметров

140

7.7. Условный экстремум функции изменения параметров

141

7.8. Вариационные связи двухмерных точек

143

7.9. Вариационные связи двухмерных линий

147

7.10. Формирование и решение системы уравнений связей

151

8. Вычисление геометрических характеристик

154

8.1. Возможности геометрической модели. Геометрические модели хранения и визуализации

154

8.2. Геометрические характеристики плоских сечений

154

8.3. Длина и центр масс кривой линии

157

8.4. Площадь поверхности, объем и центр масс тела

159

8.5. Моменты инерции тела

161


Лекция №1

1 Геометрическое моделирование

1.1 Понятие о геометрической модели проектируемого объекта

Геометрические объекты. Геометрическое моделирование изучает методы построения математической модели, описывающей геометрические свойства предметов окружающего мира.

Инструментом для геометрического моделирования служат математические методы решения тех или иных задач. Используемые методы позволяют описать геометрические свойства предметов, создавать их математические модели и исследовать их путем проведения различных расчетов и численных экспериментов, а также, при необходимости, редактировать моделируемые объекты и строить их графические отображения.

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

Геометрические объекты будут служить основными элементами математической модели геометрии реальных или воображаемых объектов. Будем строить их в трехмерном евклидовом пространстве, считая их неименными во времени.

Обозначения. Существует три операции произведения векторов:

– скалярное произведение:

;

– векторное произведение:

;

– диадное произведение:

.

Точка. Точка R пространства в общем случае описывается координатами , ,  некоторой системы координат. В декартовой прямоугольной системе координат точку можно описать с помощью радиус-вектора . Радиус-вектор определяет преобразование переноса, переводящее начальную точку декартовой системы координат в заданную точку пространства. Компоненты радиус-вектора точки равны ее координатам.

1.2 Модификации векторов и точек

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

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

. (1.2.1)

Компоненты вектора  равны сумме соответствующих компонент векторов  и .

Поворот точки в пространстве вокруг оси. Рассмотрим, как изменится радиус-вектор точки при ее повороте вокруг некоторой оси. Пусть начальное положение точки описывается радиус-вектором , а ось вращения определяется точкой Q и ортом . Пусть  – радиус-вектор точки Q. Выполним поворот точки вокруг оси на угол  против часовой стрелки, если взгляд направить навстречу вектору . Построим вектор . После поворота рассматриваемая точка будет определяться радиус-вектором

. (1.2.2)

Матрица поворота определяется равенством

,

где

,   ,   .

Матрица А является ортогональной. При транспонировании матрицы А изменится только знак перед последним ее слагаемым, что соответствует повороту точки на угол .

Симметрия точки относительно плоскости. Определим координаты точки , симметричной точки  относительно плоскости. Пусть плоскость симметрии определяется точкой Q и двумя ортами  и .

Пусть  – радиус-вектор точки Q. Построим вектор . Положение симметричной точки будет описываться радиус-вектором

, (1.2.3)

где матрица  – матрица симметрии,  и  – диадные произведения векторов.

Масштабирование в пространстве. Рассмотрим масштабирование проекций на координатные оси расстояния до точки  относительно некоторой другой точки Q, остающейся неподвижной после масштабирования. Пусть  – радиус-вектор точки Q. В общем случае при масштабировании проекции на координатные оси вектора  могут изменяться в различное число раз, то есть масштабирование может быть ортотропным. Пусть проекция вектора  на орт  при масштабировании увеличивается в  раз, проекция вектора  на орт  при масштабировании увеличивается в  раз, проекция вектора  на орт  при масштабировании увеличивается в  раз. Тогда положение рассматриваемой точки после модификации будет описываться радиус-вектором

, (1.2.4)

где А – матрица масштабирования.

1.3 Однородные координаты

Рассмотренные выше модификации поворота, симметрии, масштабирования радиус-вектора точки описываются формулами, имеющими одинаковый вид:

, (1.3.1)

где  – преобразованный вектор сдвига. Сдвиг точки описывается этой же формулой с единичной матрицей А и вектором , равным вектору сдвига. Аналогичный вид имеет преобразование координат точки. Преобразованиям координат и модификациям точки можно предать единый простой вид

. (1.3.2)

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

Представим каждый радиус-вектор в расширенном виде

. (1.3.3)

Матрица  представляет собой матрицу А, окаймленную снизу нулями, а справа – вектором сдвига  в расширенном виде

. (1.3.4)

Индекс матрицы  говорит о том, что она является расширенной, и включает вектор сдвига . Для преобразований будем использовать запись

, (1.3.5)

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

В некоторых случаях, например для построения рациональных кривых и поверхностей, наряду с координатами для точек необходим дополнительный параметр – так называемый вес (значимость) точки. Этот параметр точки в вычислениях преобразуется так же, как и координаты, поэтому его считают дополнительной координатой. При наличии у точки дополнительной координаты w запись ее радиус-вектора в однородных координатах имеет вид

. (1.3.6)

При использовании однородных координат вычисления производятся для однородных компонент  , i = 1, 2, 3, 4 без выделения декартовых координат. Декартовы координаты точки получают на конечном этапе вычисления делением

,   ,   .

1.4 Геометрия кривых линий

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

,   . (1.4.1)

Представление кривой в виде (1.4.1) называется параметрическим. Далее будем предполагать, что координатные функции  имеют непрерывные производные до любого порядка.

Производная  кривой  есть вектор, направленный по касательной к кривой в точке, определяемой параметром t. Заметим, что производная всегда направлена в сторону возрастания параметра. Зная первую производную радиус-вектора кривой, можно вычислить длину кривой. Длина кривой равна пределу, к которому стремится длина ломаной, вписанной в кривую. Таким образом, длина кривой равна интегралу

. (1.4.2)

Натуральная параметризация кривой. Пусть при каком-либо значении параметра t радиус-вектор  указывает на некоторую точку R. Перейдем к другому параметру , при котором векторная функция  указывает на некоторую другую точку  (рис. 1.4.1).

Рис. 1.4.1 – Приращение векторной функции  по параметру t

За параметр принимается длина дуги кривой, отсчитываемая от некоторой ее точки (например, начальной). Действительно, в этом случае длина хорды  стремится к длине дуги , а длина вектора  стремится к единице, тогда  стремится к нулю. Векторная зависимость

, (1.4.3)

где s – длина дуги, называется уравнением кривой с натуральной параметризацией.

Сопровождающий трехгранник. В каждой точке кривой можно построить плоскость, перпендикулярную ее первой производной. Такая плоскость называется нормальной плоскостью кривой. Плоскость, в которой лежат и первая и вторая производные кривой, называется соприкасающейся плоскостью. Если вторая производная кривой параллельна первой или ее длина равна нулю, то в качестве соприкасающейся плоскости можно взять любую плоскость, в которой лежит первая производная кривой. Точка кривой, в которой векторы первой и второй производных коллинеарны, называется точка распрямления. Точки распрямления не зависят от способа параметризации кривой. Название соприкасающейся плоскости обусловлено тем, что она проходит через заданную точку с наивысшим порядком касания, и ее можно определить как предельное положение плоскости, построенной по трем бесконечно близким точкам кривой. Плоскость, перпендикулярная нормальной и соприкасающейся плоскостям, называется спрямляющей плоскостью (рис. 1.4.2).

Рис. 1.4.2 – Сопровождающий трехгранник кривой

Единичный вектор, направленный вдоль первой производной кривой, называется касательным вектором кривой в данной точке . Единичный вектор, направленный вдоль линии пересечения нормальной и соприкасающейся плоскостей и направленный в сторону второй производной, называется главной нормалью кривой в данной точке . Единичный вектор, направленный вдоль линии пересечения нормальной и спрямляющей плоскостей и образующий с касательным и нормальным вектором правую тройку векторов, называется бинормалью кривой в данной точке .

Формулы Френе–Серре. Эти формулы выражают производные векторов сопровождающего трехгранника в виде разложения по самим эти векторам:

,   ,   , (1.4.4)

где k – кривизна кривой,  – кручение кривой. Выразим кривизну и кручение кривой через производные радиус-вектора кривой по ее длине дуги:

,   ,   ,

,   . (1.4.5)

Соприкасающаяся окружность. Если построить для кривой соприкасающуюся с ней окружность (с таким же , как у кривой), то радиус этой окружности будет равен .

Величина  называется радиусом кривизны кривой. Для произвольной кривой ее кривизна k и кручение  являются функциями параметра t.

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

. (1.4.6)

Вектор Дарбу придает механический смысл формулам Френе–Серре, с использованием которого последние примут вид

,   ,   .

Как правило, параметризация кривой не является натуральной. Определим орты , ,  и коэффициенты k и  для произвольной параметризации. Производные по параметру t будем обозначать штрихами. В результате получим формулы:

,   ,   , (1.4.7)

,   . (1.4.8)

Из формул (1.4.7) – (1.4.8) видно, что кривизна всегда неотрицательна, а кручение может иметь любой знак. Если кривизна равна нулю, то направление главной нормали, бинормали и кручение не определены. Если кривизна равна нулю в каждой точке кривой, то она является прямой линией. Вектор главной нормали в этом случае может иметь произвольное направление в нормальной плоскости. Если векторы ,  и  коллинеарны, то кручение кривой равно нулю и кривая является плоской.

1.5 Геометрия поверхностей

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

,   . (1.5.1)

Представление поверхности в виде (1.5.1) называется параметрическим.

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

Если зафиксировать один из параметров, а другой изменять в некоторых пределах, то мы получим кривую линию, которая лежит на поверхности. Такие кривые называются координатными линиями поверхности. Будем называть u-линиями поверхностные кривые, вдоль которых меняется только параметр u, а v-линиями – поверхностные кривые, вдоль которых меняется только параметр v. Производные   и  радиус-вектора поверхности представляют собой векторы, касательные к соответствующим координатным линиям. Для поверхности можно построить семейство u-кривых при различных значениях v, и семейство v-кривых при различных значениях u. Два таких семейства кривых образуют координатную сетку на поверхности. На координатной сетке поверхности можно построить криволинейную систему координат в пространстве.

Производную линию по поверхности можно построить, если ввести зависимость параметров поверхности u и v от некоторого общего для них параметра t

u = u(t),   v = v(t). (1.5.2)

Радиус-вектор линии на поверхности будет описываться зависимостью

. (1.5.3)

Через каждую точку поверхности можно провести множество различных кривых (1.5.3). Найдем дифференциал радиус-вектора (1.5.3) вдоль некоторой кривой поверхности:

, (1.5.4)

где , . Вектор производной (15.3)

(1.5.5)

лежит в плоскости определяемой векторами  и . Если зафиксировать точку на поверхности и провести через нее всевозможные кривые, изменяя зависимости (1.5.2), то производные всех этих кривых в рассматриваемой точке будут лежать в плоскости, определяемой векторами  и . Эта плоскость называется касательной плоскостью поверхности в данной точке. Дифференциал (1.5.4) имеет то же направление, что и производная (1.5.5). Из (1.5.4) видно, что направление дифференциала и производной (1.5.5) зависят от отношения .

Пространственной кривой (1.5.3) соответствует двухмерная кривая

на параметрической плоскости поверхности.


Лекция № 2

2 Математические основы геометрического моделирования

2.1 Математическая модель кривых линий

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

Кривые могут быть замкнутыми или разомкнутыми. Для замкнутой кривой . Точку кривой  называют обыкновенной, если в этой точке не обращается в нуль длина вектора первой производной по параметру . В противном случае точка кривой называется особой.

Двухмерная линия описывается следующей векторной функцией
,   . (2.1.2)

2.2 Аналитические линии

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

Прямая линия. Одной из простейших линий является прямая линия. Она может быть описана точкой  и вектором .

,   . (2.2.1)
Длина вектора  в общем случае может быть произвольной, но отличной от нуля. Теоретически областью изменения параметра прямой является вся числовая ось, но на практике удобно ввести ограничения для предельных значений параметра. В последнем случае мы получим отрезок прямой линии.

Отрезок. Он может быть представлен через начальную  и конечную  точки:

,   . (2.2.2)

Плоские кривые. Общий вид на плоскости:

, (2.2.3)
где  – некоторая точка привязки характерной точки кривой,  и  - коллинеарные векторы,  и  – скалярные функции. Векторы  и  вместе с вектором  являются базисом местной декартовой системы координат, в которой кривая имеет канонический вид:

,
, (2.2.4)
 .
Точка  является началом местной декартовой системы координат. Она также может быть представлена в виде разложения по базису , ,  глобальной декартовой системы координат:

. (2.2.5)

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

,   . (2.2.6)

Эллипс: ,   . (2.2.7)

Канонический вид: .

Эллипс представляет собой геометрическое место точек на плоскости, для которых сумма расстояний до двух фиксированных точек  и  есть величина постоянная, равная . Пусть , тогда радиус-векторы фокусов равны

,   .

Гипербола: ,   ; (2.2.8)

вторая ветвь: ,   .

Канонический вид: .

Парабола:

,   . (2.2.9)

Канонический вид:

, где , .

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

,   , (2.2.10)

где sign=+1, если точка перемещается по дуге против часовой стрелки при взгляде навстречу вектору .

Аналогично описывается дуга эллипса:

,   . (2.2.11)

Спираль. Цилиндрическая спираль является аналитической кривой, но не плоской. Она может быть описана положением начала оси спирали , тремя взаимно ортогональными векторами единичной длины , , , радиусом r, шагом h и параметрической длиной :

,   . (2.2.12)

Левую спираль можно получить путем присвоения отрицательного значения h.

Лекция № 3

2.3 Кривые второго порядка

Декартовы координаты х и у на плоскости для кривых второго порядка связаны уравнением второй степени

, (2.3.1)

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

, ,  (2.3.2)

являются инвариантами линии второго порядка относительно преобразований декартовой системы координат. Тип линии определяется знаком инварианта : эллиптический тип, если , параболический тип, если , гиперболический тип, если .

Линии второго порядка не вырождаются в прямые при . Если линия имеет эллиптический тип и , то уравнению (2.3.1) не удовлетворяет ни одна точка на плоскости, а уравнение называют уравнением мнимого эллипса.

2.4 Понятие кубических сплайнов

Большой класс линий можно построить по совокупности точек. Такие линии можно назвать точечно-заданными. Это ломаная линия и различные сплайны. Задача ставится следующим образом: имеется совокупность точек в пространстве, радиус-векторы которых равны , где  – номера точек; требуется построить линию, радиус-вектор которой при значениях параметра ,  был бы равен , то есть интерполяционную кривую. Точки , которые определяют линию и являются ее внутренними данными, называются характеристическими точками кривой, точки  – узлами.

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

, ,  (2.4.1)
где
w – местный параметр на участке кривой между точками  и . Первая производная ломаной линии в точках  терпит разрыв по длине и направлению. Для параметра можно использовать систему координат, где его значение в точке  равно номеру точки: . Такая параметризация называется равномерной. Ломаная может быть замкнутой, в этом случае первая характеристическая точка одновременно является и последней.

Сплайн Эрмита. Если задана последовательность m + 1 точек, через которую должна пройти кривая, и производные ее радиус вектора в этих точках, то по этим данным можно построить сплайн, описываемый полиномом Эрмита степени 2m + 1. Рассмотрим частный случай сплайна Эрмита для m = 1. Для этого строится составная кубическая кривая, состоящая из сплайнов Эрмита третьей степени, гладко стыкующихся между собой. Пусть радиус-векторы характеристических точек равны , векторы производных кривой в этих точках равны , а значения параметра в этих точках равны . На участке между точками  и  составной сплайн Эрмита является полиномом третьей степени местного параметра w

, , (2.4.2)

местный параметр w изменяется от 0 до 1. Векторы ,  находятся из условий на границе участка кривой

,   ,   ,   .

В результате зависимость радиус-вектора для сплайна Эрмита примет вид:

, (2.4.3)
, .

При неравномерном расположении точек  параметрическое расстояние  можно положить пропорциональным расстоянию между соответствующими точками .

Если производные  неизвестны, то их можно положить равными

.

Но данный способ определения производных  может привести к появлению нежелательных петель. Для предотвращения появления петель используют следующую схему:

,

где  – расстояние между соседними точками.

Производные в крайних точках составной кривой находятся из условия, что в этих точках обращаются в нуль третьи производные радиус-вектора:

,   .

Кубический сплайн – это сплайн, для которого первые и вторые производные радиус-вектора непрерывны. На каждом участке между соседними характеристическими точками радиус-вектор описывается кубическим полиномом типа (2.4.2). Пусть . Вторая производная радиус-вектора на участке  является линейной функцией параметра t

.

С учетом граничных условий  и  получаем:

(2.4.4)

Выражение (2.4.4) содержит две неизвестные величины  и . Для их определения первая производная сплайна на правом конце отрезка  приравнивается к первой производной на левом конце. Получим следующее уравнение:

. (2.4.5)

Таких уравнений можно составить для n – 1 характеристических точек (для незамкнутого сплайна). Два недостающих уравнения для определения всех неизвестных составляются их условий на концах кривой.

В результате кубический сплайн описывается формулой:

,

, . (2.4.6)

Сплайн Лагранжа. Интерполяционная формула Лагранжа представляет собой решение задачи построения кривой по заданным точкам в виде

,   . (2.4.7)

Сплайн Ньютона. Интерполяционный многочлен Ньютона, проходящий через заданные точки, ищется в форме

 (2.4.8)

Векторы  определяются из условия прохождения векторной функции  через точки  при значениях параметра , :

,,

, (2.4.9)

2.5 Аппроксимирующие уравнения пространственных кривых:
Фергюссона, Эрмита, Безье, В-сплайны, рациональные выражения, NURBS

Кривая Безье описывается формулой

,   ,

где  – радиус-векторы точек, а (n+1) – число точек. Совокупность функций

называется базисом Бернштейна. Функции Бернштейна удовлетворяют рекуррентному соотношению

.

2.6 Представление кривых второго порядка кривыми Безье

Кривой Безье второй степени в общем случае нельзя описать часть конического сечения, но его можно описать как частный случай кривой вида:

, (2.6.1)

где , ,  – радиус-векторы точек массива, по которым строится кривая, w – вес точки .

2.7 Рациональные кривые

В формуле (2.6.1) средняя точка  имеет коэффициент w, называемый весом. Для полного равноправия точек , ,  в этой формуле  припишем каждой из них свой вес , , . В результате правая часть равенства (2.6.1) примет вид:

.   (2.7.1)

Три коэффициента , ,  придают правой части выражения (2.7.1) симметричный вид – каждой вершине  соответствует свой коэффициент . Будем рассматривать выражение (2.7.1) как обобщение квадратичной параметрической кривой, позволяющее в частных случаях получить как кривую Безье второй степени , так и коническое сечение .

Коническое сечение можно описать с помощью кривой более высокой степени, чем это было сделано в (2.6.1). Пусть коническое сечение описывается равенством (2.7.1). Умножим числитель и знаменатель правой части равенства (2.7.1) на число, равное единице , перегруппируем слагаемые по степеням произведений t и (1-t) и, в результате, придем к выражению

 

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

Рациональные кривые Безье. Используем полученный для обобщения параметрической кривой Безье произвольной степени. Аналогично зависимости (2.7.1) запишем формулу для вычисления радиус-вектора кривой Безье, построенной по произвольному числу n вершин, в виде

,   , (2.7.2)

где  – базисные функции Бернштейна. Кривые, характеристические точки которых обладают весами, называются рациональными. Одним из важных свойств рациональных кривых является то, что описанные ими конические сечения сохраняют свою природу (остаются рациональными кривыми) при любом проективном преобразовании. Кривая (2.7.2), построенная на основе базиса Бернштейна, представляет собой рациональную кривую Безье степени n.

Рациональные кривые дают дополнительные возможности при моделировании линий. Изменяя веса точек, мы изменяем форму кривой. На рис. 2.7.1 приведены рациональные кривые Безье пятой степени, построенные по одним и тем же характеристическим точкам. Веса всех точек, кроме , равны единице, а вес  точки  приведен на рисунке. Из рисунка видно, что чем больше вес точки, тем ближе кривая к этой точке. Если вес точки отрицательный, тот точка как бы отталкивает кривую от себя.

Рис. 2.7.1 – Рациональные кривые Безье с различным весом точки

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

, (2.7.3)

где , ,  – координаты точки , w – вес точки. Тогда выражение (2.7.2) примет вид:

,   . (2.7.4)

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

Обобщение рациональных кривых. Подставим в формулу (2.7.2) вместо функций  некоторые произвольные базисные функции , тогда формула для радиус-вектора рациональной кривой, построенной на n вершинах, примет вид:

,   , (2.7.5)

где  – радиус-вектор i-й вершины характеристической ломаной кривой,  – вес i-й вершины,  – функция параметра кривой, дающая вклад i-й вершины в общую сумму при данном t. Функции  должны позволять интерполировать произвольную функцию  на некотором заданном отрезке , представлять разложение единицы, то есть удовлетворять равенству

. (2.7.6)

2.8 В-сплайны

Поставим перед собой цель найти некоторую непрерывную  1 раз дифференцируемую функцию , принимающую ненулевые значения только внутри отрезка  и имеющую равные нулю производные от 0-го до ( 2)-го порядка включительно на его концах. Производной нулевого порядка будем называть значение функции в заданной точке. Разобьем отрезок  оси параметра t на m произвольных участков. Построим на каждом участке , , полиномы степени m – 1, гладко стыкуя их между собой по производным от 0-го до ( 2)-го порядка включительно.

Каждый полином имеет m коэффициентов, всего полиномов m. Для их определения можно составить m – 1 уравнений в токах стыковки полиномов и m – 1 уравнений на каждом из краев. Всего мы получим  уравнений для  коэффициентов. Недостающее уравнение может нормировать величину прогиба кусочно-полиномиальной линии, например, путем нормирования площади под ней, что дает возможность удовлетворить требованию (2.7.6).

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

Разделенные разности. Пусть имеется некоторая функция f(t) и пусть нам известны значения функции для некоторых значений параметра , . Разделенными разностями первого порядка называются отношения

. (2.8.1)

Если известны разделенные разности ( 1)-го порядка, ТОО разделенная разность k-го порядка определяется как отношение

. (2.8.2)

Порядок разделенной разности на единицу меньше числа узлов в квадратных скобках. Разделенными разностями нулевого порядка являются значения функций в узлах . Если функция f(t) есть полином степени k, то разделенная разность k-го порядка, построенная по этому полиному, равна коэффициенту при  полинома.

Если в разделенной разности первого порядка значения узлов совпадают, то она равна приделу отношения (2.8.1), то есть производной функции в данной точке

. (2.8.4)

Аналогично находятся разделенные разности более высокого порядка, построенные на совпадающих узлах. Так разделенная разность k-го порядка, составленная на + 1 равных узлах, равна k-й производной функции, вычисленной в данном узле, деленной на k!

. (2.8.5)

Разделенная разность k-го порядка следующим образом выражается через значения функции f(t) в узлах:

(2.8.6)

где  – производная функции , вычисленная при . Индексы i и k в обозначении функции  говорят об индексе начального узла и о количестве узлов.

Усеченная степенная функция. Рассмотрим усеченную степенную функцию со смещенным началом, которую обозначим через

. (2.8.7)

Функция имеет непрерывные производные до ( 1)-го порядка включительно. Производная m-го порядка имеет разрыв в точке = t, равный m!. Функция (2.8.7) примечательна тем, что ее производные являются аналогичными функциями, только на порядок ниже.

Разделенная разность  как функция параметра t является непрерывной функцией, отличной от нуля только на интервале . в соответствии с (2.8.6) она выражается через значения усеченной степенной функции в узлах

Таким образом, разделенная разность  как функция параметра t удовлетворяет всем требованиям кроме требования (2.7.6), предъявленным к базисным функциям  в формуле (2.7.5).

В-сплайн (фундаментальный сплайн). Ненормированный В-сплайн для неубывающей последовательности m узлов есть разделенная разность m-го порядка усеченной степенной функции со смещенным началом . Нормированный В-сплайн для неубывающей последовательности m узлов есть разделенная разность m-го порядка усеченной степенной функции со смещенным началом , умноженная на разность значений последнего и первого узлов.

def1: Нормированный i-й В-сплайн m-го порядка  для неубывающей последовательности узлов , , , …,  есть разделенная разность m-го порядка усеченной степенной функции , умноженная на :

. (2.8.8)

Последовательность узлов , , , …,  должна быть неубывающей, то есть должно выполняться неравенство  для всех . В остальном же значения узлов последовательности не оговариваются и в общем случае могут произвольными, в том числе и совпадающими. То, что В-сплайн  называется i-м, подчеркивает, разделенная разность поострена на последовательности узлов, начинающейся с узла  и кончающейся на узле . Разделенная разность  вычислена по функции  при фиксированном значении t, о чем говорит аргумент . В-сплайн  нормирован коэффициентом , на который умножена разделенная разность.

def2: Ненормированный i-й В-сплайн m-го порядка  для последовательности узлов , , , …,  есть разделенная разность m-го порядка усеченной степенной функции :

. (2.8.9)

Свойство ненормированного В-сплайна:  (2.8.10)

Рекуррентная формула Кокса – Де Бура:

. (2.8.11)

Нормированный В-сплайн связан с ненормированным В-сплайном следующим соотношением: . (2.8.12)

Тогда для нормированного В-сплайна формула Кокса – Де Бура примет вид

, (2.8.13)

где индексы а и b связаны равенством b = a m. Вычисления начинаются с В-сплайна наименьшего порядка:

(2.8.14)

Таким образом, мы нашли непрерывную m-1 раз дифференцируемую функцию , принимающую ненулевые значения только внутри отрезка  и имеющую равные нулю значения функции и ее производных до ( 2)-го порядка включительно на его концах. Мы не имеем аналитического выражения этой функции, но имеем рекуррентную формулу для вычисления значений функции в любой заданной точке. Значения функций зависят от значений ( 1)0го внутреннего узла, принадлежащих отрезку . Единственное требование, предъявляемое к значениям узлов, заключается в том, чтобы они не убывали.

2.9 NURBS кривые

В-сплайны используют для построения рациональных кривых линий в форме (2.7.5). Формула для вычисления радиус-вектора рациональной параметрической кривой на основе В-сплайнов , построенной по вершинам ,  , обладающим весами , имеет вид

,   . (2.9.1)

Кривая (2.9.1) в общем случае является неоднородной и рациональной. Она носит имя NURBS кривой, составленное из первых букв ее названия – Non-Uniform Rational B-Spline (неоднородный рациональный фундаментальный сплайн).

В формуле (2.9.1) для построения совокупности из n В-сплайнов m-го порядка требуется n + m узлов в случае замкнутой кривой и n + 2m узлов в случае замкнутой кривой. Число узлов всегда больше числа вершин, поэтому множество узлов называется расширенным.

Вычисление радиус-вектора кривой. Для вычисления радиус-вектора NURBS кривой используется следующая схема. По значению параметра t из условия  определяется номер i отличного от нуля В-сплайна первого порядка и вычисляется его значение, исходя из определения:

(2.9.2)

Далее, используя рекуррентное соотношение Кокса – Де Бура

, (2.9.3)

последовательно вычисляются все отличные от нуля при данном параметре t В-сплайны до m-го порядка включительно. Далее В-сплайны m-го порядка нормируются

,   j = i – m + 1, i – m + 2, …, i,

и подставляются в формулу (2.9.1), которая примет вид

. (2.9.4)

Алгоритм Де Бура. Положение точки NURBS кривой (2.9.1) для заданного параметра  может быть определено по формуле

(2.9.5)

с помощью рекуррентных соотношений

,

, (2.9.6)

= 1, 2, …, m  1,   i = j + k, j + k + 1,…,+ m  1,

которые начинаются со значений , , i = j, j + 1, j + 2…,+ m  1. Эти соотношения являются обобщением алгоритма Де Кастелье и называются алгоритмом Де Бура.

NURBS представление ломаной линии. Если построить NURBS кривую (2.9.1) по n вершинам на последовательности узлов , , , …, , …, ,  на базе В-сплайнов второго порядка , то она совпадет с ломаной линией (2.4.1). Область изменения параметра NURBS кривой в этом случае равна . В-сплайны второго порядка  пропорциональны разделенным разностям второго порядка, вычисленным на последовательности узлов , ,  для функции . В-сплайны второго порядка определяются равенством

(2.9.7)

Мы видим, что  представляют собой кусочно-линейные функции, принимающие значения  и , . В-сплайны (2.9.7) для шести вершин показаны на рис. 2.9.1.

Рис. 2.9.1 – В-сплайны второго порядка

NURBS представление отрезка прямой. Отрезок прямой может быть представлен в виде NURBS кривой (2.9.1)

,

по двум вершинам  и  на последовательности узлов ,  и на базе В-сплайнов второго порядка  (2.9.7):

,   ,   .

NURBS кривая (2.9.1) обобщает все рассмотренные выше кривые – отрезок прямой, ломаная линия, кривая Безье, конические сечения могут быть представлены в виде NURBS кривой. По своей природе NURBS кривая представляет собой линейную комбинацию кусочно-полиномных функций заданной степени, она позволяет строить кривые заданного порядка гладкости.

Интерполяция. Совокупность В-сплайнов порядка m представляет собой базу, на основе которой можно построить кривую  m-го порядка гладкости, проходящую через точки , , …, . Сначала построим NURBS кривую m-порядка с вершинами в точках , , …,  на произвольной не убывающей последовательности узлов
, , …, . Затем найдем параметры , , …,  проекций точек , , …, , соответственно, на эту кривую. Переместим вершины NURBS кривой так, чтобы она проходила через точки  при . Положим веса вершин кривой равными 1. Новые положения вершин  NURBS кривой найдем из системы уравнений

(2.9.8)

2.10 Линии, базирующиеся на линиях

Некоторые линии могут быть поострены на базе других линий. Кривая, на основе которой строится новая линия, называется базовой кривой.

Усеченная кривая. Параметрически усеченная кривая представляет собой некоторую часть любой другой кривой. Усечение производится путем изменения области определения параметра базовой кривой. Пусть параметр базовой кривой t изменяется в пределах . Усеченную кривую определим как часть базовой кривой, начинающейся при параметре  и оканчивающейся при параметре , где  и . Направление усеченной кривой может совпадать с направлением базовой кривой или быть ему противоположенным . Если кривая замкнута, то движение от точки  к точке  можно выполнить двумя способами: в положительном направлении базовой кривой и в противоположенном направлении. Чтобы преодолеть неоднозначность для замкнутых кривых, в данные усеченной кривой вводится параметр sign, характеризующий совпадение ее направления с направлением базовой кривой и принимающий значения +1 или -1. Параметру базовой кривой  соответствует параметр усеченной кривой , параметру базовой кривой  соответствует параметр усеченной кривой , где  – параметрическое расстояние между  и  с учетом замкнутости кривой. Если кривая не замкнута, то . Радиус-вектор усеченной кривой описывается формулой

,   , (2.10.1)

где , , – базовая кривая,  – расстояние между параметрами усечения ,  базовой кривой.

Эквидистантная кривая. Эквидистантная линия описывается радиус-вектором

,   , (2.10.2)

где  – базовая кривая,  – единичный касательный вектор к базовой кривой в данной точке,  – заданный вектор. Если  – плоская кривая, а вектор  ортогонален плоскости базовой кривой, то второе слагаемое в правой части (2.10.2) есть вектор, который лежит в плоскости базовой кривой, ортогонален ей и имеет длину вектора . В результате получим кривую, каждая точка которой отстоит по нормали от соответствующей точки базовой кривой на одинаковом расстоянии (рис. 2.10.1).

Ссылочная кривая. Ссылочная кривая представляет собой линию, каждая точка которой получена путем некоторого преобразования соответствующей точки базовой кривой. Ссылочная кривая описывается радиус-вектором

Рис. 2.10.1 – Эквидистантная кривая

,   , (2.10.3)

где  – расширенная матрица преобразования (1.4.4) базовой кривой . Область изменения параметра ссылочной кривой совпадает с областью изменения параметра базовой кривой.

Репараметризованная кривая. К линиям, построенным на базе линий, относят кривую с измененной областью параметра. Пусть требуется, чтобы кривая , , имела область определения параметра . В этом случае можно построить репараметризованную кривую

,   , (2.10.4)

где

,

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

Продолженная кривая. Произвольную линию можно не только усекать, но и продлевать требуемым образом. Любая кривая может быть продолжена (или усечена) на заданное параметрическое расстояние. Пусть требуется продолжить кривую ,  путем расширения области определения параметров до . При a < 0 и b > 0 кривая продлевается за свои пределы, при a > 0 и b < 0 кривая усекается. Если кривая является замкнутой, то при выходе параметра за границу области определения выполним его циклический пересчет

(2.10.5)

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

(2.10.6)

2.11 Составные кривые

Из нескольких кривых можно построить составную кривую – наиболее общий тип кривой. Составные кривые характерны тем, что первая производная радиус-вектора в точках стыковки терпит разрыв или по длине или по длине и направлению. Кривые, образующие составную кривую, будем называть сегментами. В общем случае в местах стыка сегментов производные составной кривой терпят разрыв по длине и направлению.

Замкнутую составную кривую будем называть контуром. Для контура начало первого сегмента должно совпадать с концом последнего сегмента.

Пусть составная кривая содержит n сегментов

, ,   i = 1, 2, …, n. (2.11.1)

Начальное значение параметра t составной кривой положим равным нулю. Параметрическую длину составной кривой положим равной сумме параметрических длин составляющих ее кривых

,   .

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

,   , (2.11.2)

где параметр k-го сегмента равен

. (2.11.3)

2.12 Двухмерные кривые

Плоские пространственные кривые. Плоские пространственные кривые будем представлять в виде совокупности плоскости  и двухмерной кривой . Плоская кривая является пространственной кривой и описывается радиус-вектором

. (2.12.1)

Кривые на поверхности. Кривые на поверхности  будем описывать совокупностью двухмерной кривой  и поверхности. Для записи кривых на поверхности будем использовать выражения вида

,   ,   . (2.12.2)

Кривая на поверхности является пространственной кривой и описывается радиус-вектором .

Линии пересечения поверхностей. Линии пересечения поверхностей  и  представим в виде совокупности двух кривых на поверхностях:

,   , (2.12.3)

,   , (2.12.4)

.

Эти кривые совпадают в пространстве, но одна из них поострена на поверхности , а другая построена на поверхности . Обе кривые имеют одинаковую область определения параметра (общий параметр) и соответствующие точки на поверхностях совпадают в пространстве. В структуру данных кривой пересечения входят две кривые на поверхности.

Двухмерные составные кривые. Двухмерные составные кривые описываются выражениями (2.12.2) с соответствующей заменой трехмерных векторов на двухмерные векторы. Радиус-вектор составной кривой определяется как радиус-вектор некоторого сегмента

,   , (2.12.5)

где номер сегмента k и его параметр  определяются из условия

, (2.12.6)

. (2.12.7)

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

Для отдельной двухмерной кривой  эквидистантная линия описывается формулой

,   , (2.12.8)

где  – нормаль базовой кривой ,  – единичный касательный вектор базовой кривой, , а – заданное расстояние от базовой кривой. Если к каждой кривой контура построить эквидистантную линию, то эквидистантные линии в общем случае не образуют контура. Там, где эквидистанты пересекаются, их нужно обрезать по точкам пересечения. Там, где эквидистанты не доходят друг до друга, их следует продлить до пересечения.

2.13 Способы построения линий

На рис. 2.13.1 приведены способы построения двухмерных линий.

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

Рисунок 2.13.2 отражает процесс построения линий при чтении его слева на право. Сначала кривые линии могут быть построены по местной системе координат и скалярным параметрам или по характеристическим точкам. Далее эти кривые могут быть продлены или усечены. На базе нескольких кривых можно построить наиболее общую линию – составную кривую.

Рис. 2.13.1 Способы построения двухмерных линий

Рис. 2.13.2 Способы построения пространственных линий

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


Лекция № 4

3 Поверхностное моделирование

3.1 Геометрическая модель поверхности

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

Пусть в пространстве задана некоторая глобальная декартова прямоугольная система координат с базисными векторами , , . Мы будем представлять поверхность векторной функцией

,   , (3.1.1)

двух скалярных аргументов u и v. Будем считать, что компоненты , ,  радиус-вектора точки поверхности  являются однозначными непрерывными функциями параметров u и v. Такое описание поверхностей называется параметрическим.

Область изменения параметров поверхности  в общем случае представляет собой произвольную связную двухмерную область на плоскости uv, ограниченную двухмерными контурами (2.12.5) , , i = 1, 2, …, n. Параметры поверхности являются координатами некоторой двухмерной точки  на параметрической плоскости, принадлежащей области . Область определения параметров поверхности имеет внешнюю границу и может иметь вырезы внутри, но она должна быть связной, так чтобы из каждой точки области можно было попасть в любую другую точку, не пересекая границы области.

Поверхности могут быть замкнутыми и разомкнутыми. Замкнутые поверхности будут иметь прямоугольные области определения параметров. Для замкнутой по u-линии поверхности ; для замкнутой по v-поверхности . Поверхность может быть замкнута по обеим линиям.

Некоторые поверхности можно описать с помощью уравнения , которому удовлетворяют компоненты радиус-вектора ее точек. Такое описание поверхности называется неявным.

Математическая модель поверхности включает в себя функциональную зависимость радиус-вектора  от параметров и двухмерную область  изменения параметров u и v. Таким образом, математическая модель поверхности в общем случае должна содержать и математическую модель области определения своих параметров.

3.2 Аналитические поверхности

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

Описание аналитических поверхностей удобно представлять в виде

,

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

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

,   ,   . (3.2.1)

Длина векторов  и  и их взаимная ориентация в общем случае может быть произвольной. Параметры u и v являются координатами местной декартовой системы координат, связанной с плоскостью. Плоскость может быть представлена как одна из координатных плоскостей некоторой местной декартовой системы координат. Она используется в качестве конструктивной плоскости для построения двухмерных (плоских) геометрических объектов. В качестве структурного элемента плоскость используется в совокупности с двухмерными контурами, описывающими область  определения ее параметров u, v. Такую плоскую поверхность будем называть ограниченной контурами плоскостью. Радиус-вектор ограниченной контурами плоскости описывается зависимостью

,   , (3.2.2)

где область определения параметров  состоит из совокупности двухмерных контуров.

Сфера. Сферическую поверхность или сферу можно описать, задав ее радиус r, положение центра . Радиус-вектор сферы определяется равенством

, (3.2.3)

,   .

Сфера замкнута по параметру u, но не замкнута по параметру v, хотя имеет видимость замкнутой со всех сторон поверхности. Замкнутость по параметру u характеризуется тем, что . Для параметра v это не справедливо. Скалярные функции , ,  сферы связаны уравнением .

Точка  является центром сферы. Все точки сферы удалены от центра на одинаковое расстояние, равное r.

Эллипсоид. Эллипсоид может быть описан формулой

, (3.2.4)

,   ,

где a, b, c – полуоси эллипсоида. Эллипсоид (3.2.4), как и сфера, является замкнутой по u и не замкнутой по v поверхностью. Сечения эллипсоида плоскостями, ортогональными векторам , , , являются эллипсами. Скалярные функции , ,  эллипсоида связаны уравнением . (3.2.5)

Однополостный гиперболоид. Радиус-вектор однополостного гиперболоида может быть описан формулой

, (3.2.6)

,   ,

где a, b, c – полуоси гиперболоида. Однополостный гиперболоид (3.2.6) является замкнутой по u и не замкнутой по v поверхностью. Скалярные функции , ,  однополостного гиперболоида связаны уравнением

. (3.2.7)

Сечения однополостного гиперболоида плоскостями, ортогональными векторам ,  являются гиперболами, а сечения плоскостями, ортогональными вектору , являются эллипсами.

Двуполостный гиперболоид. Радиус-вектор одной из двух частей двуполостного гиперболоида может быть описан формулой

, (3.2.8)

,   ,

где a, b, c – полуоси гиперболоида. Вторая часть гиперболоида описывается этим же выражением, но орт  должен иметь противоположенное направление или должен быть изменен знак с на противоположенный. Двуполостный гиперболоид (3.2.8) является замкнутой по u и не замкнутой по v поверхностью. Скалярные функции , ,  двуполустного гиперболоида связаны уравнением . (3.2.9)

Сечения двуполостного гиперболоида плоскостями, ортогональными векторам ,  являются гиперболами, а сечения плоскостями, ортогональными вектору , являются эллипсами.

Эллиптический параболоид. Эллиптический параболоид может быть описан векторной функцией

, (3.2.10)

,   ,

где a, b – полуоси эллипса, получающегося как координатные линии v = const поверхности. Эллиптический параболоид (3.2.10) является замкнутой по u и не замкнутой по v поверхностью. Скалярные функции , ,  эллиптического параболоида связаны уравнением

. (3.2.11)

Сечения параболоида плоскостями, проходящими через ось , являются параболами, а сечения параболоида плоскостями, ортогональными вектору , являются эллипсами.

Эллиптический параболоид может быть описан другой векторной функцией

, (3.2.12)

,   .

Эллиптический параболоид (3.2.12) является не замкнутой по обоим параметрам поверхностью.

Гиперболический параболоид. Гиперболический параболоид может быть описан векторной функцией

, (3.2.13)

,   ,

где a, b – полуоси гиперболы. Гиперболический параболоид (3.2.13) является не замкнутой по обоим параметрам поверхностью. Если гиперболический параболоид по аналогии с эллиптическим параболоидом представить векторной функцией

, (3.2.14)

,   ,

то она будет описывать только часть поверхности.

Скалярные функции , ,  обеих представлений гиперболического параболоида связаны уравнением . (3.2.15)

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

Частными случаями поверхности второго порядка являются цилиндрическая и коническая поверхности.

Цилиндр. Эллиптический цилиндр может быть описан формулой

, (3.2.16)

,   ,

где a, b – полуоси эллипса, являющегося поперечным сечением цилиндрической поверхности, h – длина цилиндра. Если a = b, то мы получим круговой цилиндр. Цилиндрическая поверхность (3.2.16) является замкнутой по параметру u и усеченной по параметру v.

Конус. Круговая коническая поверхность может быть описана формулой

, (3.2.17)

,   ,

где r – радиус одного из оснований конуса, h – длина конуса,  – угол между образующей и осью конуса. Коническая поверхность (3.2.17), как и цилиндрическая, является замкнутой по параметру u и усеченной по параметру v.

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

,

,   . (3.2.18)

Тороидальная поверхность (3.2.18) является замкнутой по параметру u и по параметру v. Скалярные функции , ,  тора связаны уравнением

.

Область изменения параметра v тороидальной поверхности (3.2.18) записана в предположении, что < R. Если r > R, то для того, чтобы тор не пересекал сам себя, нужно уменьшить область изменения параметра v: , где . При R = 0 получим  и тор превратится в сферу радиуса r. Тороидальная поверхность называется открытой, если < R, и называется закрытой, если r > R.

3.3 Поверхности второго порядка

Аналитические поверхности можно представить в виде уравнения, которому удовлетворяют координаты x, y, z радиус-вектора  поверхности. Поверхности второго порядка в декартовой системе координат Oxyz описываются уравнением второй степени

(3.3.1)

где  – коэффициенты, определяющие тип поверхности, ее положение и ориентацию в пространстве (считается, что хотя бы один из коэффициентов  отличен от нуля).

Для уравнения (3.3.1) поверхности второго порядка величины

,   ,

,  (3.3.2)

являются инвариантами относительно преобразований параллельного переноса и поворота осей декартовой системы координат.

Классификация поверхностей второго порядка. Пусть , тогда поверхность второго порядка не вырождена и представляет собой

- эллипсоид, если , , ;

- однополостный гиперболоид, если , , или , , ;

- двуполостный гиперболоид, если , , или , , ;

- эллиптический параболоид, если , ;

- гиперболический параболоид, если , ;

При , ,  уравнению (3.3.1) не удовлетворяет ни одна точка пространства, и оно описывает мнимый эллипсоид. Если , то уравнение (3.3.1) описывает:

- коническую поверхность, если ,  или , ;

- эллиптический цилиндр, если , ;

- гиперболический цилиндр, если , ;

- параболический цилиндр, если , ;

при условии, что

.

Если последнее условие не выполняется, то цилиндры вырождаются в плоскости.

3.4 Поверхности движения

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

Поверхность выдавливания. Поверхность выдавливания, полученная движением кривой , , вдоль вектора , описывается радиус-вектором

, , . (3.4.1)

Длина поверхности выдавливания определяется длиной вектора . В зависимости от замкнутости кривой  поверхность выдавливания может быть замкнутой или нет по параметру u. Направляющий вектор  может быть представлен в виде произведения вектора единичной длины на скаляр.

Поверхность вращения. Поверхность, полученная вращение кривой , , на угол  вокруг оси, заданной единичным вектором  и точкой , описывается радиус-вектором

, , , (3.4.2)

где  – составляющая вектора , параллельная оси вращения,  – составляющая вектора , перпендикулярная оси вращения,  – ортогональный первых двум векторам вектор, длина которого равна длине вектора . Замкнутость поверхности вращения по параметру u совпадает с замкнутостью образующей кривой . Если угол вращения , то поверхность (3.4.2) замкнута по параметру v, если , то поверхность вращения не замкнута по параметру v.

Кинематические поверхности. Рассмотрим кинематическую поверхность, которая является общим случаем поверхности движения. Пусть образующая описывается кривой , , а направляющей является кривая , . Пусть при построении кинематической поверхности параметр u совпадает с параметром образующей кривой , а параметр v совпадает с параметром направляющей кривой . При движении образующей кривой вдоль направляющей кривой ориентация первой относительно второй может меняться или оставаться неизменной. Если образующая выполняет плоскопараллельное движение, то есть остается «параллельной» своему начальному положению, то такую поверхность называют поверхностью сдвига, в противном случае поверхность называют поверхностью заметания.

Поверхность сдвига. Поверхность сдвига проще поверхности заметания. Радиус-вектор поверхности сдвига определяется формулой

, , , (3.4.3)

где  – вектор привязки образующей к направляющей. Вектор  сдвигает кривую  на некоторую величину из ее начального положения относительно направляющей и сохраняет этот сдвиг во время движения. Если , то сохраняется исходное положение образующей кривой относительно начальной точки направляющей кривой. Радиус-вектор поверхности сдвига строится как сумма двух векторов: вектора точки на направляющей кривой  и вектора положения точки образующей относительно начальной точки направляющей со сдвигом .

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

. (3.4.4)

Вектор  представляет собой составляющую вектора , перпендикулярную орту  (касательной к направляющей в данной точке).

Радиус-вектор кинематической поверхности заметания описывается формулой

, , , (3.4.5)

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

. (3.4.6)

В начале направляющей кривой матрица  равна единичной матрице.

Замкнутость кинематической поверхности по параметру u совпадает с замкнутостью образующей кривой , а замкнутость поверхности по параметру v совпадает с замкнутостью направляющей кривой .

3.5 Понятие линейчатых поверхностей

Линейчатая поверхность представляет собой геометрическое место отрезков прямых, соединяющих соответствующие точки заданных двух линий. Ее можно получить путем движения прямой линии по двум направляющим кривым линиям, при этом каждой точке одной кривой должна соответствовать вполне определенная точка другой кривой. Пусть заданы две направляющие кривые  и , где параметры кривых t и w изменяются в пределах  и . Радиус-вектор линейчатой поверхности определяется формулой

, ,

, . (3.5.1)

Для направляющих кривых неявно производится репараметризация – приведение области изменения параметров к отрезку от 0 до 1. Если параметризация кривых  и  совпадает, то радиус-вектор линейчатой поверхности может быть описан функцией

, , .

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

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

,

, . (3.5.2)

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

Частным случаем линейчатой поверхности является секториальная поверхность. Она получается из линейчатой поверхности (3.5.1), если одну из кривых, например , заменить точкой . Радиус-вектор секториальной поверхности описывается формулой

, , . (3.5.3)

Если направляющая  замкнута, то секториальная поверхность всегда не замкнута.

Треугольная и секториальная поверхности имеют точку, в которой одна из частных производных ее радиус-вектора равна нулю. Аналогичные точки имеют сферическая и коническая поверхности. Эти точки не являются особыми, так как другая частная производная радиус-вектора не равна нулю. В таких точках находятся отрезки двумерных координатных линий.


Лекция № 5

3.6 Аппроксимирующие уравнения поверхностей Кунса, Безье, В-сплайнов, NURBS

Поверхности Кунса

Поверхность Кунса строится по четырем равноправным кривым. Рассмотрим четыре кривые , , , , попарно пересекающиеся в точках , , , .

Построим  поверхность внутри «четырехугольника», образованного кривыми. Пусть точкам  и  на кривой  соответствуют параметры  и , точкам  и  на кривой  соответствуют параметры  и , точкам  и  на кривой  соответствуют параметры  и , точкам  и  на кривой  соответствуют параметры  и .

Рис. 3.6.1 – Поверхность Кунса

Поверхность, построенную по данным четырем кривым, можно описать радиус-вектором

(3.6.2)

,   ,

,   ,

, .

Для того чтобы формула (3.6.2) легче воспринималась, переобозначим кривые и точки, входящие в структуру данных описываемой ею поверхности: кривую  обозначим через , кривую  обозначим через , кривую  обозначим через , кривую  обозначим через , точку  обозначим через , точку  обозначим через , точку  обозначим через , точку  обозначим через , и будем считать, что для кривых выполнен переход к параметрам u и v в соответствии с (3.6.2). Для коэффициентов, с которыми граничные условия входят в (3.6.2), введем обозначение

,   , (3.6.3)

,   .

В результате векторная функция (3.6.1) примет вид

,

, . (3.6.4)

Поверхность (3.6.4) построена на четырех граничных кривых, коэффициенты при которых являются  линейными функциями параметров u и v. Такое линейное объединение четырех кривых называется линейной поверхностью Кунса. Функции  и  называются функциями смещения.

Обобщим поверхности (3.6.4), используя вместо линейных функций смещения некоторые обобщенные функции смещения . Индекс k указывает на то, что обобщенная функция умножается на векторную функцию, представляющую собой производную k-го порядка от граничной кривой. Производной нулевого порядка будем называть саму функцию. Для граничных кривых k = 0, для касательных векторов k = 1 или, другими словами, , , i = 0, 1. обобщенные функции смещения должны удовлетворять равенствам

(3.6.5)

которые являются обобщением условий, которым удовлетворяют линейные функции смещения. Радиус-вектор обобщенной поверхности Кунса определяется формулой

, (3.6.4)

, ,

где используются заданные значения производных на краях поверхности

,   i = 0, 1,

,   = 0, 1,

и заданные значения производных в угловых точках параметрической области поверхности ,   i, j = 0, 1.

В качестве обобщенных функций смещения могут быть использованы полиномы. Обобщенные поверхности Кунса имеют заданные производные k-го порядка радиус-вектора по параметру u вдоль граничных кривых u = const и заданные производные l-го порядка радиус-вектора по параметру v вдоль граничных кривых v = const.

3.7 Сплайновые поверхности

Процесс построения поверхности по ее сечениям называется плазированием, а поверхности, построенные таким образом, – сплайновыми поверхностями.

Поверхность Эрмита. Пусть имеется семейство кривых , j = 0, 1, …, n. Кривые семейства не должны пересекать друг друга. На этом семействе можно построить гладкую поверхность, имеющую непрерывные производные по всем направлениям. Приведем все кривые к одной параметрической длине, так чтобы область изменения параметра была . Кривые переобозначим в соответствии с их местом на поверхности: , j = 0, 1, …, n. Пусть параметр поверхности v между кривыми  и  изменяется от i до k.

Радиус-вектор сглаживающей поверхности, построенной по семейству сечений, описывается формулой

(3.7.1)

,   , ,

где j равно целой части параметра v и номеру кривой, n + 1 – число кривых. Данная поверхность является кубической по v направлению. Параметр w является местным параметром данной части поверхности в v направлении, он изменяется от 0 до 1.

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

Поверхность Лагранжа. По семейству рассмотренных кривых можно построить поверхность, являющуюся аналогом кривой Лагранжа (2.4.13). Радиус-вектор такой поверхности, построенной по семейству сечений , i = 0, 1, …, n, описывается формулой

, , , (3.7.2)

где  – коэффициенты Лагранжа (2.4.14) при :

. (3.7.3)

Каждая v-линия такой поверхности представляет собой кривую Лагранжа, построенную по точкам , i = 0, 1, …, n, u = const. Существуют и другие способы представления сглаживающей поверхности по семейству кривых.

Поверхность перехода. Поверхность типа (3.7.1) может служить поверхность перехода от одной поверхности к другой. Пусть, например, требуется плавно сопрячь край одной поверхности с краем другой. Обозначим сопрягаемый край первой поверхности через , а край второй поверхности – через , где t – некоторый общий параметр. Через  обозначим частную производную первой из сопрягаемых поверхностей в трансверсальном к ее краю направлении, а через  обозначим частную производную второй поверхности в трансверсальном к ее краю направлении. Под параметрически трансверсальным направлением будем иметь виду следующее. Если первая поверхность описывается радиус-вектором , то  и  описывают край поверхности. Аналогично, если вторая поверхность описывается радиус-вектором , то  и  описывают край поверхности. Поверхность

(3.7.4)

,   ,

гладко сопрягает две заданные поверхности по их краям.

Поверхность Гордона. Пусть имеется сетка, образованная двумя семейством кривых: , j = 0, 1, 2, …, n, , i = 0, 1, 2, …, m. Каждая кривая одного семейства пересекает все кривые другого семейства и не пересекает ни одной кривой своего семейства. На этой сетке можно построить составную поверхность, каждая ячейка которой представляет собой кубическую поверхность Кунса. Для этого кривые переобозначим в соответствии с их местом на поверхности: , j = 0, 1, 2, …, n, , i = 0, 1, 2, …, m. Точки пересечения кривых  и  обозначим через , i = 0, 1, 2, …, m, j = 0, 1, 2, …, n. На каждом участке кривых введем параметризацию аналогичную (3.6.2) так, чтобы между точками  и  параметр u изменялся от i до k, а параметр v изменялся от j до l. Радиус-вектор поверхности, интерполирующей всю сетку и удовлетворяющей определенным условиям гладкости, описывается формулой

,

, , (3.7.5)

где ,  – коэффициенты Лагранжа (3.7.3). В формулах (3.7.2) и (3.7.5) вместо коэффициентов Лагранжа могут использоваться произвольные дифференцируемые функции , удовлетворяющие равенству

Поверхность (3.7.5) называется поверхностью Гордона.

Для построения поверхности на сетке, образованной двумя семействами кривых, могут быть использованы поверхности Кунса в виде ее порций. Так как в этом случае образуется поверхность, составленная из нескольких поверхностей, то она называется составной. Ее радиус-вектор описывается формулой

(3.7.6)

,   ,   , ,

где i равно целой части параметра u, j равно целой части параметра v, + 1 – число кривых v-направления, + 1 – число кривых u-направления.

Предположим, что в формуле (3.7.5) сегменты кривых сетки между точками их пересечения  представляют собой кубические сплайны Эрмита, тогда формула (3.7.5) примет вид

 (3.7.7)

,   ,   , ,

где i равно целой части параметра u, j равно целой части параметра v. Поверхность (3.7.7) полностью определяется точками  и значением в них производных поверхности ,  и . Данную поверхность можно считать составной, так как она состоит из порций поверхностей Эрмита, которые гладко стыкуются между собой, так как имеют общие производные на границах. Поверхность (3.7.7) называют поверхностью тензорного произведения. Фактически данная поверхность строится на сетке точек с заданными производными, а не на сетке кривых.

3.8 Поверхности Безье

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

Пусть имеется совокупность точек , образующих сетку, то есть условно расположенных в виде n + 1 рядов по m + 1 точек в каждом ряду. Индексы точки  означают, что данная точка расположена j-й по счету в i-м ряду (первый индекс равен номеру ряда, второй – номеру точки в ряду). Нумеровать ряды будем от 0 до n, а точки в них – от 0 до m. Поверхность Безье, построенная на совокупности точек , определяется радиус-вектором

, , , (3.8.1)

где  – функции базиса Бернштейна:

, (3.8.2)

. (3.8.3)

Функции  удовлетворяют равенству

. (3.8.4)

Будем говорить, что вдоль u-направления поверхность имеет степень m, а вдоль v-направления поверхность имеет степень n.

Если представить, что на каждых четырех соседних точках , , ,  построена биленейная поверхность, то мы получим многогранник, который будем называть характеристическим. Точки  будем называть вершинами характеристического многогранника. Так как из коэффициентов Бернштейна только нулевой и последний принимают максимально возможные значения, то поверхность Безье проходит только через угловые вершины сетки: , , , . Сечения поверхности (3.8.1) по линиям u = const или = const представляют собой кривые Безье. Характеристический многогранник дает общее представление о поверхности Безье, а сама поверхность как бы сглаживает углы этого многогранника. Чем выше порядок поверхности (3.8.1), тем она более гладкая. Порядок поверхности в u-направлении жестко связан с количеством вершин в ряду, а порядок поверхности в v-направлении жестко связан с количеством рядов вершин. Область изменения параметров поверхности представляет собой квадрат со стороной, равной 1.

3.9 Рациональные поверхности

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

Наделим каждую вершину кривой (3.8.1)  весом  и будем описывать поверхность в однородных координатах. Поверхности, характеристические точки которых обладают весами, называются рациональными. Сам радиус-вектор такой поверхности тоже приобретает вес. Вес радиус-вектора вычисляется по точно таким же формулам, что и его координаты, поэтому вес принять считать дополнительной координатой точки. Рациональные поверхности Безье можно получить подобно тому, как строились рациональные кривые Безье. Расширенный радиус-вектор рациональной поверхности Безье описывается формулой, в которой обычные векторы  и  заменены соответствующими расширенными векторами  и . Обычный трехмерный радиус-вектор рациональной поверхности Безье определяется формулой

, , . (3.9.1)

Чем больше вес некоторой вершины по отношению к весам других вершин, тем ближе к этой вершине проходит поверхность.

Поверхность скругления. Поверхностью скругления можно описать поверхность скругления ребра детали. Сечение поверхности скругления в одном из параметрических направлений должно представлять собой дугу окружности. Эту дугу мы опишем с помощью рациональной кривой Безье, в которой вершины , ,  и угол дуги  будем считать функциями одного из параметров поверхности скругления. Радиус-вектор поверхности скругления выразится формулой

,  (3.9.2)

, ,

где  – вес линии , вычисленный по углу дуги в данном месте.

Будем считать, что в формуле (3.9.1) вместо функций  могут стоять некоторые произвольные базисные функции, которые обозначим через . В общем виде радиус-вектор рациональной параметрической поверхности, построенной на  вершинах, определяется формулой

, , . (3.9.3)

где  – радиус-векторы j-й вершины, расположенной в i-м ряду, характеристического многогранника поверхности,  – вес соответствующей вершины,  – функция j-й вершины в i-м ряду, n – число рядов вершин, m – число вершин в каждом ряду.

В терминах однородных координат расширенный радиус-вектор рациональной поверхности определяется формулой

, , , (3.9.4)

где  – расширенные векторы вершин поверхности.

3.10 NURBS поверхности

В качестве функций  в формуле (3.9.4) будем использовать произведения В-сплайнов, один из которых зависит от параметра u, а другой зависит от параметра v. В результате получим неоднородную рациональную поверхность, определяемую В-сплайнами, которая приобрела название NURBS поверхности. NURBS поверхность строится на сетке вершин – совокупности точек , условно расположенных в виде n рядов по m точек в каждом ряду. Индексы вершины  означают то, что данная точка расположена j-й по счету в i-м ряду (первый индекс равен номеру ряда, второй – номеру точки в ряду). В данном случае нумеровать ряды удобнее от 1 до n, а точки в них – от 1 до m. Пусть вес вершины  равен . Пусть В-сплайны  u-направления имеют порядок k, а В-сплайны  v-направления имеют порядок q. Радиус-вектор NURBS поверхности определяется равенством

, , , (3.10.1)

где  – базисные функции, n – число рядов вершин, m – число вершин в каждом ряду.

Каждый из В-сплайнов k-го порядка  построен на последовательности из k + 1 узлов ; всего для построения совокупности m В-сплайнов k-го порядка требуется m k узлов  в случае незамкнутой кривой и m + 2k узлов  в случае замкнутой кривой. Каждый из В-сплайнов q-го порядка  построен на последовательности из q + 1 узлов ; всего для построения совокупности n В-сплайнов q-го порядка требуется q узлов  в случае незамкнутой кривой и + 2q узлов в случае замкнутой кривой. Как следует из (3.10.1), NURBS поверхность имеет две последовательности узлов, одну – в u-направлении, а другую – в v-направлении. Значения узлов должны образовывать неубывающие последовательности. Будем называть их u-последовательностью узлов и v-последовательностью узлов.

Область изменения параметров NURBS поверхности представляет собой прямоугольник: , .

Для вычисления радиус-вектора NURBS поверхности используем формулы (2.9.2) – (2.9.4). По значению параметра u из условия  определим номер j единичного отличного от нуля В-сплайна первого порядка

.

Далее, используя рекуррентное соотношение

,

= j  k + 1, j  k + 2, …, j,

последовательно вычислим все отличные от нуля при данном u В-сплайны до k-го порядка включительно: , , …, . Далее В-сплайны k-го порядка нумеруем в соответствии с (2.9.4)

, = j  k + 1, j  k + 2, …, j.

Аналогично по значению параметра v из условия  определим номер i отличного от нуля В-сплайна первого порядка

.

Используя рекуррентное соотношение

,

= i  q + 1, i  q + 2, …, i,

последовательно вычислим все отличные от нуля при данном v В-сплайны до q-го порядка включительно: , , …, , и затем нумеруем их

, = i  q + 1, i  q + 2, …, i.

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

В терминах однородных координат расширенный радиус-вектор NURBS поверхности определяется формулой

, , , (3.10.2)

где  – расширенные векторы вершин поверхности.

Когда все вершины NURBS поверхности имеют равные веса, то формула (3.10.1) примет вид

, , . (3.10.3)

Эта поверхность называется В-сплайн поверхностью.

Если n = q и m = k, то NURBS поверхность совпадает с рациональной поверхностью Безье.

С помощью поверхности (3.10.1) может быть построена любая поверхность второго порядка.

По своему внешнему виду NURBS поверхности и поверхности Безье похожи. Но в отличие от последних порядок NURBS поверхности не связан жестко с количеством вершин и предоставляет возможность строить поверхности невысокого порядка на большем числе вершин.

Каждая линия u = const или v = const на поверхности (3.10.1) является NURBS кривой (2.9.1). Но можно построить рациональные неоднородные поверхности на основе В-сплайнов, которые необязательно давали бы NURBS кривые в качестве всех своих параметрических u-линий или v-линий. Такие поверхности называют плазовыми NURBS поверхностями. Частным случаем этой поверхности является поверхность скругления (3.9.3).

3.11 Поверхности треугольной формы

Для треугольных областей в двухмерном пространстве удобно использовать барицентрические координаты.

Барицентрические координаты на плоскости. Пусть в области определения параметров u и v некоторой поверхности задана двухмерная декартова система координат. Пусть в этой области заданы три точки А, В, С, не лежащие на одной прямой. Радиус-векторы точек А, В, С обозначим соответственно через ,  и  (рис. 3.11.1).

Рис. 3.11.1 – Точки на параметрической плоскости

Положение другой любой точки  можно описать с помощью точек ,  и  равенством

, (3.11.1)

где коэффициенты a, b, c определены с точностью до множителя. Для полной определенности потребуем, чтобы их сумма была равна единице. Значения этих коэффициентов, соответствующие декартовым координатам u и v, мы найдем из системы уравнений

, (3.11.2)

(3.11.3)

Барицентрические координаты произвольной точки  равны отношению площади треугольника, полученного из треугольника ABC заменой соответствующей вершины точкой , к площади треугольника ABC. Барицентрические координаты a, b с точки  вычислены относительно точек , ,  и являются функциями точки .

Любой двухмерный вектор  можно описать с помощью точек , ,  равенством

. (3.11.4)

Коэффициенты  называют барицентрическими компонентами вектора. Барицентрические компоненты  двухмерного вектора связаны с равенством

. (3.11.5)

Значения барицентрических компонент , соответствующие декартовым компонентам u и v вектора , мы найдем из системы уравнений

,

(3.11.6)

Билинейная треугольная поверхность. Пусть область определения параметров поверхности ограничена треугольником с вершинами в точках , , . Введем барицентрические координаты a, b, c. Радиус-вектор  плоской треугольной поверхности, построенной по трем вершинам , , , опишем векторной функцией трех параметров a, b, c

,

,  , . (3.11.7)

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

Можно переписать зависимость (3.11.7) как функцию двух параметров x и y, например:, , , где x и y принимают значения треугольной области. Можно переписать зависимость (3.11.7) как функцию тех же двух параметров x и y, принимающих значения из обычной квадратной области , , например: a = x, ,  или , b = y, .

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

Построим поверхность внутри «треугольника», образованными кривыми так, чтобы точкам  и  на кривой  соответствовали параметры 0 и 1, точкам  и  на кривой  соответствовали параметры 0 и 1, точкам  и  на кривой  соответствовали параметры 0 и 1. Радиус-вектор поверхности, построенной по данным трем кривым, опишем векторной функцией трех барицентрических координат a, b, c

(3.11.8)

,  , , .

Поверхность (3.11.8) является треугольным аналогом линейной поверхности Кунса (3.6.4).

3.12 Треугольные поверхности Безье

Рассмотрим треугольные аналоги поверхности Безье. Пусть имеется совокупность некоторых характеристических точек , образующих треугольную сетку. На рис. 3.12.1 показана треугольная сетка, причем вдоль каждой стороны треугольника расположено одинаковое число точек. Пусть это число равно + 1. Общее число характеристических точек равно . Каждый из трех индексов точки соответствует своей вершине треугольника. Точка, лежащая в вершине треугольника, имеет значение индекса, соответствующего этой вершине, равное n (максимальное значение), а значения других индексов равно нулю. Точки, принадлежащие ряду вдоль одной из трех сторон треугольника, имеют нулевой индекс, соответствующий противолежащей вершине. Чем ближе ряд, в котором лежат точки, к вершине, тем большее значение имеет индекс этой вершине.

Рис. 3.12.1 – Нумерация точек

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

i + j + k = n. (3.12.1)

Треугольную поверхность Безье опишем с помощью барицентрических координат a, b, c. Будем считать, что поверхность Безье имеет ту же область определения параметров, что и поверхность (3.11.7). Радиус-вектор треугольной поверхности Безье, построенной по характеристическим точкам , описывается формулой

, (3.12.2)

,  , , . (3.12.3)

Суммирование в (3.12.2) выполняется по всем характеристическим точкам, а трехиндексные функции Бернштейна имеют вид

, (3.12.4)

где должно выполняться (3.12.1).

Алгоритм Де Кастелье. Начнем вычисление с функции . Далее получим , , . Функция Бернштейна, один из индексов которой равен отрицательному числу, считается равной нулю.

Обозначим  через . В результате получим рекуррентное соотношение для вычисления точки треугольной поверхности Безье

, (3.12.5)

где + j + k = n  m , , . Алгоритм, описываемый соотношением (3.12.5), называется алгоритмом Де Кастелье. Точки , получаемые в процессе вычисления, называются точками Де Кастелье. Алгортим Де Кастелье позволяет вычислить любую точку треугольной поверхности Безье по характеристическим точкам, ничего не зная о функциях Бернштейна. Коэффициенты a, b, c при координатах точек ,  и  являются барицентрическими координатами. Треугольную поверхность Безье можно определить как поверхность, точки которой определяются рекуррентным соотношением (3.12.5) по совокупности характеристических точек.

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

, (3.12.6)

,  , , ,

где суммирование выполняется по всем характеристическим точкам. В силу свойства

, (3.12.7)

поверхность Безье является частным случаем рациональной поверхности (3.12.6) при одинаковых весах точек. Чем больше вес точки, тем ближе к ней проходит поверхность.

В терминах однородных координат расширенный радиус-вектор треугольной поверхности Безье определяется формулой

, (3.12.8)

,  , , ,

где  - расширенные радиус-векторы вершин поверхности.

3.13 Треугольные сплайновые поверхности

Рассмотрим поверхности, которые можно считать обобщением треугольной поверхности Безье. Они строятся в виде взвешенной суммы некоторых характеристических точек. Каждая характеристическая точка входит в сумму с коэффициентом, который является функцией координат двухмерной точки на области определения параметров поверхности. Каждая такая функция отлична от нуля на некоторой ограниченной двухмерной области. Базисные функции координат u и v двухмерных точек, отличные от нуля на ограниченных двухмерных областях простой формы, называют двухмерными В-сплайнами или симплексными сплайнами. 

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

Симплексный сплайн. Симплексные сплайны являются аналогами ненормированных В-сплайнов. Они представляют собой кусочно-полиноминальные функции точек двухмерного пространства. Каждый симплексный сплайн больше нуля внутри своей полуоткрытой выпуклой области и равен нулю вне области.

Пусть задана последовательность двухмерных точек , , …, , хотя бы три из которых не совпадают друг с другом и не лежат на одной прямой. Для такой последовательности можно построить выпуклый многоугольник  c вершинами в точках последовательности, так чтобы все точки заданной последовательности принадлежали [V]. Точки , , …,  последовательности называют узлами. На базе узлов , , …,  можно построить симплексный сплайн  n-го порядка, где n = m  3. Полуоткрытую выпуклую область [V) многоугольника V называют носителем симплексного сплайна или его областью определения. Все узлы симплексного сплайна равноправны. Симплексный сплайн является функцией точки . Введем еще одно обозначение: через  обозначим симплексный сплайн ( 1)-го порядка, построенный на последовательности узлов, полученной из заданной последовательности путем исключения из нее вершины .

Симплексный сплайн n-го порядка определяется рекурсивно как взвешенная сумма трех симплексных сплайнов ( 1)-го порядка. Вычисление значения симплексного сплайна n-го порядка начинается с вычисления значений симплексных сплайнов нулевого порядка на треугольных областях. Пусть вершинами некоторого треугольника Т являются точки , , . значение симплексного сплайна нулевого порядка на невырожденной треугольной области Т определяется формулой

(3.13.1)

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

Симплексный сплайн  всегда неотрицателен. Он отличен от нуля внутри своей полуоткрытой выпуклой области [V) и равен нулю вне ее.

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

DMS поверхности. NURBS кривые мы строим на семействе В-сплайнов перекрываются. Это позволяет строить гладкие кривые. В-сплайны NURBS кривых нормированы, их сумма для каждого значения параметра равна единице, что позволяет вводить для характеристических точек веса. При построении поверхностей на семействе симплексных сплайнов нужно, чтобы сплайны семейства имели общие узлы, а их полуоткрытые выпуклые области перекрывались. В противном случае сплайновая поверхность не будет гладкой. Кроме того, если сумма симплексных сплайнов для каждой двухмерной точки параметрической области поверхности будет равна единице, то это позволит нам строить рациональные поверхности, в которых характеристические точки могут иметь веса.

Дамен (Damen), Микели (Micchelli) и Зайдель (Seidel) предложили один из способов построения поверхностей на базе симплексных сплайнов. Поверхности, построенные этим способом, называют DMS поверхностями. Рассмотрим построение DMS поверхности на базе симплексных сплайнов порядка n.

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

Пусть вершины триангуляции описываются двухмерными радиус-векторами . С каждой вершиной некоторым образом свяжем + 1 узлов: , , …, . За узел  примем вершину : , остальные узлы могут не совпадать с вершиной. Совокупность узлов , , …,  называют узловым облаком. Узловые облака нам понадобятся в качестве узлов симплексных сплайнов.

Рассмотрим некоторый треугольник  из области определения DMS поверхности   (рис. 3.13.1). Пусть его вершинами являются точки  , , . Совокупность всех узлов в вершинах рассматриваемого треугольника  ,…,,,,…, , ,… называют сеткой узлов. Для треугольника  мы можем получить  различных последовательностей узлов: , , …, , , , …, , , ,…, , где , ,  и + j + k = n. С каждым треугольником  свяжем  характеристических пространственных точек , где , ,  и + j + k = n. Количество точек  равно количеству возможных последовательностей узлов для рассматриваемого треугольника. На характеристические точки никаких ограничений не накладывается. Их положение в пространстве определяет форму DMS поверхности. Пусть треугольники, образованные узлами , , , , , , являются невырожденными, и при обходе их вершин мы будем двигаться против часовой стрелки.

Рис. 3.13.1 – Узловые облака вершин треугольника для n = 3

На каждой последовательности узлов найдем выпуклую область , построим симплексный сплайн . Вычислим нормированный симлпексный сплайн

, (3.13.2)

, ,  и i + j + k = n,

где  – удвоенная площадь треугольника, образованного узлами , , . С каждым нормированным симплексным сплайном  свяжем соответствующую характеристическую точку . Радиус-вектор  DMS поверхности определяется как сумма по всем треугольникам области определения поверхности всех характеристических точек , умноженных на значения соответствующих нормированных симплексных сплайнов :

, (3.13.3)

.

Для правильной триангуляции выполняется равенство

(3.13.4)

Это свойство позволяет строить рациональные поверхности. Каждой характеристической точке  треугольников припишем вес . Мы можем построить рациональную DMS поверхность с радиус-вектором

, . (3.13.5)

3.14 Поверхности, базирующиеся на поверхностях

Эквидистантная поверхность. Для любой поверхности может быть построена эквидистантная поверхность. Каждая точка эквидистантной поверхности отстоит от соответствующей точки базовой поверхности на заданном расстоянии h по нормали к ней. Радиус-вектор эквидистантой поверхности описывается формулой

, (3.14.1)

где  – базовая поверхность,  – область определения параметров базовой поверхности,  – нормаль к базовой поверхности.

Нормаль имеет единичную длину и направление вектора . Область изменения параметров эквидистантной поверхности совпадает с областью изменения параметров базовой поверхности.

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

 (3.14.2)

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

Репараметризованная поверхность. Для любой точки поверхности может быть произведена линейная репараметризация. Пусть область определения параметров поверхности  описывается неравенствами , . Пусть требуется, чтобы каждый из параметров изменялся бы в пределах от x до y. Будем считать, что u и v зависят от новых параметров p и q:

, (3.14.3)

. (3.14.4)

Тогда радиус-вектор поверхности будет описываться функцией

, , . (3.14.5)

После перехода к новым параметрам сама поверхность не изменяется, но области определения ее параметров будет представлять собой квадрат со стороной y – x. Изменение области определения параметров можно считать одним из способов построения поверхности на базе другой поверхности.

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

(3.14.6)

где . Если поверхность  замкнута по параметру v, тогда

, (3.14.7)

где . Если же поверхность не является замкнутой, а один из параметров или оба вышли за границу области определения, то продолжим поверхность по касательной на ближайшей границе, и вычислим по продленной поверхности необходимые геометрические характеристики. Радиус-вектор продолженной поверхности вычислим по формуле (3.14.8), где  и  – частные производные радиус-вектора  по параметрам u и v, соответственно,  – смешанная производная радиус-вектора  по параметрам u и v.

(3.14.8)

3.15 Ограниченные контурами поверхности

Пусть границы поверхностей будут иметь произвольный вид. Это можно сделать с помощью двухмерных кривых линий , , i = 1, 2, …, n, на поверхности, которые описываются в пространстве параметров u и v поверхности. Эти двухмерные кривые собраны в контуры и разделяют используемую часть поверхности от остальных частей.

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

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

, (3.15.1)

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

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


3.16 Способы построения поверхностей

Рис. 3.16.1 – Способы построения поверхностей

Рис. 3.16.1 отражает процесс построения поверхностей при чтении его слева направо. Изначально поверхности могут быть построены или по местной системе координат и скалярным параметрам, или по характерным точкам, или на основе линий. Далее эти поверхности могут быть продлены или усечены, на их основе могут быть получены эквидистантные поверхности. Все упомянутые поверхности имеют прямоугольную или треугольную область определения параметров. На базе поверхностей с прямоугольной или треугольной областью определения параметров можно построить ограниченные контурами поверхности произвольной формы.


Лекция № 6

4 Способы создания геометрических моделей

4.1 Выполнение операций

В большинстве случаев сложные геометрические объекты появляются как результат некоторой операции над более простыми объектами. Рассмотрим методы выполнения операций. Операцией будем называть совокупность действий над одним или несколькими исходными объектами, которая  приводит к рождению нового геометрического объекта. Действия, которые изменяют объект, не изменяя его природы, будем называть модификацией или редактированием.

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

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

Для выполнения операций нужно уметь корректно перемещаться по параметрическим областям кривых и поверхностей в поиске нулевых приближений решения, уметь находить нулевые приближения и уметь находить точное решение, отталкиваясь от некоторого приближения.

4.2 Движение по параметрической области

Движение оп кривой. Движение по параметрической области некоторой кривой c(t) будем начинать с минимального ее значения . Двигаться будем в направлении возрастания параметра до достижения его максимального значения  с некоторым вычисляемым шагом  по параметру. Шаг  мы будем вычислять, исходя из условия, что при переходе от точки к точке касательная кривой отклонялась бы на угол, не превышающий некоторую величину . Приращение параметра или параметрический шаг  меняется от точки к точке. В каждой точке будет проверяться выполнение некоторого условия, по которому должно быть принято решение о дальнейших действиях.

Шаг по параметру

, (4.2.1)

где  - производная радиус-вектора кривой по параметру.

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

Шаг по параметрам поверхности вычислим по формулам

, (4.2.2)

, (4.2.3)

где  – нормаль поверхности,  – производная радиус-вектора поверхности по параметру u (по первому параметру),  – производная радиус-вектора поверхности по параметру v (по второму параметру).

Используя описанную схему движения по параметрической области, можно пройти по отдельным точкам поверхности и проверить в каждой точке выполнение некоторого условия, по которому можно судить о наличии решения вблизи точки. Можно получить разбиение параметрической области поверхности на прямоугольники со сторонами  и  внутри каждого такого прямоугольника поверхность аппроксимировать четырехугольной частью плоскости, которая в средней точке касается рассматриваемой поверхности. Другими словами, при необходимости можно покрыть поверхность плоскими четырехугольниками, со сторонами  и  (при этом они могут частично перекрывать друг друга и частично выходить за область определения параметров) и проверить на каждом четырехугольнике выполнение некоторого условия.

4.3 Проекция точки на линию

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

Пусть дана прямая

(4.3.1)

и точка . Будем считать, что вектор прямой  имеет произвольную длину. Прямая линия проходит через точку , в которой параметр t равен нулю, и имеет направление  вектора . Требуется найти проекцию точки  на прямую линию . Эта задача имеет единственное решение. Построим вектор из точки прямой  в точку  и вычислим скалярное произведение этого вектора и вектора прямой . На рис. 4.3.1 показаны направляющий вектор прямой , ее начальная точка  и проекция  заданной точки. Если разделим это скалярное произведение на длину вектора , то получим длину проекции вектора  на прямую линию. Если же разделим это скалярное произведение на квадрат длины вектора , то получим длину проекции вектора  на прямую в единицах длины вектора , т.е. получим параметр t для проекции точки  на прямую линию.

Рис. 4.3.1 – Проекции точки  на прямую линию l(t)

Таким образом, параметр  проекции точки  на прямую линию и радиус-вектора проекции  вычисляются по формулам

, (4.3.2)

. (4.3.3)

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

. (4.3.4)

Общий случай. Пусть требуется найти все проекции точки  на кривую линию . Каждая искомая точка кривой  удовлетворяет уравнению

. (4.3.5)

Это уравнение содержит одну неизвестную величину – параметр t.

С шагом , определяемым по формуле (4.2.1), пройдем вдоль кривой описанным выше способом и в каждой точке  вычислим скалярные произведения векторов

, . (4.3.6)

Если искомое решение лежит на параметрическом расстоянии  от параметра , то  и  будут иметь разные знаки. Смена знака скалярных произведений (4.3.6) и является тем событием, которое сигнализирует о том, что рядом находится искомое решение. Примем за нулевое приближение решения параметр  и одним из методов решения нелинейных уравнений найдем решение с заданной точностью. Например, с помощью метода Ньютона (r+1)-е приближение параметра проекции точки на кривую вычисляется по формуле

. (4.3.7)

Процесс уточнения параметра закончим, когда на очередной итерации  станет меньше заданной величины . Таким же образом найдем все остальные корни уравнения (4.3.5).

4.4 Проекция точки на поверхность

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

Рассмотрим задачу проецирования точки  на плоскость, заданную радиус-вектором

. (4.4.1)

Будем считать, что векторы  и  не коллинеарные. Допустим, что в общем случае векторы  и  не ортогональны и имеют не единичную длину. Плоскость проходит через точку , в которой параметры равны нулю, а векторы  и  определяют параметрические направления. Заданная точка  имеет единственную проекцию на плоскость (4.4.1). Построим единичную нормаль к плоскости

. (4.4.2)

Вычислим радиус-вектор  проекции точки на плоскость как разность радиус-вектора проецируемой точки и составляющей вектора , параллельной к нормали к плоскости,

. (4.4.3)

На рис. 4.4.1 показаны векторы плоскости   и , ее начальная точка  и проекция  заданной точки.

Рис. 4.4.1 – Проекция  точки  на плоскость

Расстояние от точки до ее проекции на плоскость в общем случае вычисляется как длина вектора . Расстояние от точки до ее проекции на плоскость можно определить, не вычисляя проекцию точки, а вычислив проекцию вектора  на нормаль к плоскости

. (4.4.4)

Общий случай. Рассмотрим задачу проецирования точки на поверхность в общем случае. Пусть требуется найти все проекции точки  на поверхность. Каждая искомая точка поверхности  удовлетворяет системе двух уравнений

,   . (4.4.5)

Система уравнений (4.4.5) содержит две неизвестные величины – параметры u и v. На первом этапе определим нулевые приближения параметров поверхности для проекций точки, а на втором этапе найдем точные значения параметров, определяющие проекции заданной точки  на поверхность .

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

,   , (4.4.6)

,   . (4.4.7)

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

,

,

где , , , ,  – частные производные радиус-вектора по параметрам. Следующее приближение параметров проекции равны , . Процесс уточнения параметров закончим, когда на очередной итерации выполнятся неравенства  и , где  – заданная точность. Таким же образом найдем все остальные корни системы уравнений (4.4.5).


Лекция № 7

4.5 Определение точек пересечения линии и поверхности

Простейшим представителем кривых является прямая линия, а простейшим представителем поверхности является плоскость. Точка их пересечения может быть найдена аналитически. Для определения  нулевого приближения каждой точки пересечения кривой и поверхности будет решаться задача пересечения касательной линии кривой и касательной плоскости поверхности, поэтому сначала рассмотрим задачу определения точки пресечения прямой и плоскости.

Пересечение прямой и плоскости. Пусть радиус-векторы прямой линии и плоскости описываются зависимостями

, (4.5.1)

. (4.5.2)

Точка пересечения существует и является единственной, если прямая не параллельна плоскости, то есть если . Построим единичную нормаль  к плоскости и вычислим значение параметра прямой, соответствующее точке пересечения плоскости и прямой

. (4.5.3)

Подставим (4.5.3) в (4.5.1) и получим радиус-вектор  точки пересечения плоскости и прямой

. (4.5.4)

Далее вычислим параметры плоскости  и , соответствующие точке пересечения

, (4.5.5)

, (4.5.6)

где , , , , , , , , .

Общий случай. Пусть требуется найти все точки пересечения поверхности, радиус-вектор которой описывается векторной функцией , и кривой, радиус-вектор которой описывается векторной функцией . Для каждой точки пересечения должно удовлетворяться векторное уравнение

, (4.5.7)

которое, будучи записанным покоординатно, представляет собой систему трех скалярных уравнений

,   ,   .

В качестве неизвестных выступают три параметра – u, v и t. Решив эту систему уравнений, получим параметры u, v и t, по которым при необходимости можно вычислить точки на поверхности и на кривой. Система уравнений в общем случае является нелинейной и решается итерационными методами. Точек пересечения может несколько и от того, с какого приближения параметров начинается итерационный процесс решения, зависит то, к какой тройке параметров сойдется решение.

Для нахождения нулевого приближения каждого решения будем двигаться по поверхности и кривой, то есть будем переходить от точки к точке с шагами  и  поверхности и с шагом  кривой. При каждом сочетании точек выполним следующую проверку. Пусть в некоторой точке поверхности значения параметров равны  и , а в некоторой точке кривой значение параметра равно . Построим касательную плоскость  в данной точке поверхности и касательную прямую в данной точке кривой. Начальными точками плоскости и прямой являются точки  и . Векторами плоскости  и  являются частные производные радиус-вектора поверхности по ее параметрам ,  в данной точке. Вектором  прямой является производная радиус-вектора кривой по ее параметру  в данной точке. По формуле (4.5.3) – (4.5.6) найдем параметры точки пересечения касательной плоскости и касательной прямой линии.

Если будут выполнены условия

, , ,

то параметры

, ,  (4.5.8)

могут быть приняты в качестве начального приближения при решении системы уравнений (4.5.7) определения точки пересечения поверхности  и кривой линии .

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

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

4.6 Определение точек пересечения линий

Пересечение двухмерных прямых линий. Точка пересечения двухмерных прямых линий может быть найдена аналитически. Пусть даны двухмерные прямые

, (4.6.1)

. (4.6.2)

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

Параметры точки пересечения для первой прямой:

, (4.6.3)

. (4.6.4)

Радиус-вектор точки пересечения равен

. (4.6.5)

Пересечение двух отрезков прямых. Аналитически можно найти точку пресечения отрезков прямых. Пусть даны два отрезка прямых

, ,

построенных по точкам , ,  и . Параметры точки пересечения равны

,

.

Отрезки пересекаются, если  и , в противном случае пересекаются продолжения отрезков.

Частные случаи. Аналитически могут быть найдены точки пересечения прямой с кривыми второго порядка, точки пересечения кривых второго порядка между собой и точки пересечения других кривых, для которых известно аналитическое описание. В указанных случаях задача решается в координатном представлении и сводится к вычислению корней многочленов. В общем случае можно найти корни многочлена, степень которого не превосходит 4, в противном случае задачу следует решать численно.

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

, (4.6.6)

которое, будучи записанным покоординатно, представляет собой систему двух скалярных уравнений

,   . (4.6.7)

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

,    (4.6.8)

могут быть приняты в качестве нулевого приближения при решении системы уравнений (4.6.6), если удовлетворяются условия

,   .

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

Общий случай пересечения пространственных кривых. С помощью системы уравнений

,    (4.6.9)

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

4.7 Построение линий пересечения поверхностей

Пересечение плоскостей. Направление линии пересечения двух плоскостей

,   ,

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

.

Плоскости пересекаются по линии

. (4.7.1)

Параметры плоскостей, соответствующие точки , определим по формулам

,   ,

,   .

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

, ,

, . (4.7.2)

Эти линии при каждом параметре t совпадают в пространстве друг с другом и с линией . Линию пересечения плоскостей будем строить в виде совокупности двух двухмерных линий на двух пересекаемых плоскостях.

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

. (4.7.3)

Это векторное уравнение содержит три скалярных уравнения для компонент радиус-векторов поверхностей:

(4.7.4)

и четыре искомых параметра u, v, a, b. Если определить один из четырех параметров, то остальные три можно найти из системы уравнений (4.7.4), то есть один из параметров может в то же время служить параметром решения или являться однозначной от него. Таким образом, три параметра являются функциями четвертого. Чтобы все четыре параметра были равноправными, представим их в виде функции общего параметра t:

u = u(t),   v = v(t),   a = a(t),   b = b(t), (4.7.5)

и придем к тому, что результатом решения системы (4.7.4) являются две двухмерные линии

, ,

, .  (4.7.6)

Эти линии связаны друг с другом общим параметром и определяют одну и ту же линию в пространстве – линию пересечения поверхностей.

Всегда можно построить линию, которая при любом заданном t давала бы точку пересечения поверхностей. Эту линию мы представим в виде совокупности отдельных точек линии пересечения поверхностей в порядке расположения на ней.

Имея упорядоченные точки линии пересечения, всегда можно найти любую другую точку линии. Пусть параметры , , ,  и параметры , , ,  поверхностей соответствуют соседним точкам  и  упорядоченной совокупности точек линии пересечения. Пусть первой точке соответствует параметр  линии пересечения, а второй точке соответствует параметр  линии пересечения поверхностей  и . Требуется найти точку линии пересечения с параметром t, где . Построим плоскость

(4.7.7)

с началом в точке

ортогональную отрезку, проведенному из точки  в точку .

Примем за начальные приближения параметры

,   ,

,   

поверхностей и найдем точку пересечения поверхностей и плоскости из системы шести уравнений, которые в векторной записи имеют вид

  . (4.7.8)

Эта точка и будет искомой точкой линии пересечения. Далее можно определить любую другую геометрическую информацию линии пересечения поверхностей.

Таким образом, совокупность отдельных точек линии пересечения поверхностей служит как бы нулевым приближением этой линии, по которому одним из численных методов всегда можно найти точное решение.

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

На первом этапе, шагая по поверхностям и исследуя их близость, найдем отдельные точки кривых пересечения. Под точками в данном случае будем иметь в виду пары параметров u, v и a, b на параметрических плоскостях поверхностей. Точки из полученного на первом этапе набора никак не связаны друг с другом и могут принадлежать различным кривым пересечения. Важно только, чтобы от каждой кривой пересечения в наборе присутствовала хотя бы одна точка.

На втором этапе берем любую точку из имеющегося набора и, двигаясь от нее с некоторым шагом сначала в одну сторону затем в другую, найдем точку за точкой искомую совокупность точек линии пересечения. Направление движения дает векторное произведение нормалей к поверхностям. Шаг движения вычисляется в соответствии с кривизнами поверхностей в текущей точке. Движение по кривой пересечения закончим, когда дойдем до края одной из поверхностей или когда линия замыкается (новая точка окажется на расстоянии текущего шага от точки старта). В процессе движения будем проверять, не лежат ли вблизи пути следования точки из набора, полученного на первом этапе. Для этого по пути следования будем вычислять расстояние от текущей точки кривой пересечения до каждой точки из набора, полученного на первом этапе. Если вычисленное расстояние до какой-либо точки набора соизмеримо с текущим шагом движения, то эту точку удалим из набора как более ненужную. Так получим совокупность отдельных точек ,  и , , i = 0, 1, 2, …, n, одной кривой пересечения. При этом в наборе точек, полученном на первом этапе, не будет содержаться ни одной точки данной кривой пересечения. Если в наборе останутся еще точки, то данные поверхности имеют, по крайней мере, еще одну точку из набора и повторив все сказанное о втором этапе построения. Построение линий закончим, когда в наборе не останется ни одной точки.

Для определения начальных точек пересечения на первом этапе решим задачу пересечения линий  и  поверхности  с поверхностью . Не изменяющемуся параметру будем сообщать последовательно значения , а затем – . При одном неподвижном параметре из системы уравнений (4.7.4) можно найти остальные три параметра. Далее поменяем поверхности ролями и найдем точки пересечения координатных линий  и  поверхности  с поверхностью . Таким образом, мы получим набор некоторых точек, принадлежащих в общем случае различным линиям пересечения заданных поверхностей. Если известна некоторая точка линии пересечения, то по ней можно построить и другие точки этой линии.

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

. (4.7.9)

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

,   ,   ,   , (4.7.10)

которые и дают направления движения вдоль параметров.

Следующая точка линии пересечения не должна выйти за сферу смещения. Радиус сферы смещения  возьмем равным наименьшей по абсолютной величине проекции векторов , , ,  на вектор касательной :

. (4.7.11)

Для следующей точки линии пересечения в качестве нулевых приближений примем значения параметров:

,   , (4.7.12)

,   . (4.7.13)

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

В общем случае каждую линию пересечения двух поверхностей будем представлять упорядоченной совокупностью параметров ,  и ,  i = 0, 1, 2, …, n, или упорядоченной совокупностью координат двухмерных точек на параметрических плоскостях.

Пусть мы имеем две линии пересечения поверхностей ,  точные параметрические зависимости (4.7.5). Тогда радиус-вектор  линии пересечения поверхностей вычислим как среднее арифметическое радиус-векторов точек на пересекаемых поверхностях

. (4.7.14)


Лекция № 8

4.8 Поверхность скругления

Многие модулируемые детали имеют скругления, поэтому при построении тел требуется выполнять операцию скругления ребер тела. Рассмотрим построение поверхности, которая в дальнейшем будет использоваться для скругления ребер тел. Пока будем строить поверхности скругления, не связывая их с телами.

Пусть имеются две пересекающиеся поверхности, описываемые радиус-векторами  и . Вблизи линии пересечения пространство делится поверхностями на четыре сектора (рис. 4.8.1).

Рис. 4.8.1 – Скругление плоских граней

Сектор 1: перпендикуляры, восстановленные от поверхностей к точкам первого сектора, имеют направление, совпадающее с нормалями обеих поверхностей.

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

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

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

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

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

. (4.8.1)

Это векторное уравнение содержит три скалярных уравнения для компонент нормалей поверхностей и четыре искомых параметра u, v, a, b. Построение поверхности скругления по уравнению (4.8.1) сходно с задачей построения линии пересечения поверхностей. В обоих случаях результатом решения являются две двухмерные линии на соответствующих поверхностях.

Переменный радиус скругления. Величины радиуса скругления  и  будем считать функциями длины дуги s линии пересечения  скругляемых поверхностей. Положение центра катящейся сферы связано с точкой на линии пересечения. Расположим центр катящейся сферы в нормальной плоскости кривой пересечения. Нормальная плоскость ортогональна касательному вектору кривой. Вместо векторного уравнения (4.8.1) параметры точек касания сферы свяжем уравнениями

, (4.8.2)

. (4.8.3)

Эти уравнения содержат четыре скалярных уравнения относительно четырех искомых параметров u, v, a, b. Параметр s линии пересечения является известной величиной. По текущему параметру s мы вычислим радиусы  и , точку  и касательный вектор кривой в ней . Решив систему уравнений (4.8.2) и (4.8.3), получим параметры u, v, a, b, касания катящейся сферы и поверхностей.

Результатом решения системы уравнений (4.8.1) или системы уравнений (4.8.2) и (4.8.3) являются две двухмерные линии на поверхностях

   (4.8.4)

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

, (4.8.5)

. (4.8.6)

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

По двум кривым на поверхностях (4.8.5) и (4.8.6), являющимися следами касания катящейся сферы, построим поверхность скругления. Первый параметр поверхности скругления совместим с параметром t граничных кривых (4.8.5) и (4.8.6). При движении вдоль второго параметра поверхности скругления при фиксированном первом параметре должна быть описана дуга окружности. Построим эту дугу окружности в виде рациональной кривой Безье. Для этого при каждом значении параметра кривых на поверхности нужно знать радиус-вектор средней точки и ее вес. Вес средней точки рациональной кривой Безье равен косинусу половины угла между векторами  и :

. (4.8.7)

Радиус-вектор средней точки, который обозначим через , можно вычислить по формуле

, (4.8.8)

Радиус-вектор средней точки (4.8.8) и ее вес (4.8.7) являются функциями параметра t кривых на поверхности (4.8.5) и (4.8.6), так как от параметра t зависят ,  и нормали к поверхностям

, (4.8.9)

. (4.8.10)

Таким образом, радиус-вектор поверхности скругления при постоянном или переменном радиусе описывается выражением

,   , (4.8.11)

где вес w(t) и радиус-вектор  определяются равенствами (4.8.7) и (4.8.8), а через z обозначен второй параметр поверхности.

4.9 Поверхность фаски

Наряду со скруглениями ребер тела требуется выполнять снятие фасок вдоль его ребер. Построение поверхности фаски имеет много общего с построением поверхности скругления. Остановимся на том, что их отличает.

Пусть имеются две пересекающихся поверхности, описываемые радиус-векторами  и . Радиус-вектор поверхности фаски представим в форме линейчатой поверхности

,   , (4.9.1)

построенной по двум линиям на заданных поверхностях

, (4.9.2)

, (4.9.3)

проходящим вдоль их линии пересечения. Эти двухмерные линии определяют края поверхности фаски (4.9.1). Линии (4.9.2) и (4.9.3) должны иметь общий параметр t. Первый параметр поверхности фаски совместим с параметром кривых, на которых она построена.

Общий случай. Вблизи линии пересечения пространство будем делить поверхностями на четыре сектора таким же образом, как и при построении поверхности скругления. Это нужно для того, чтобы определить, с какой стороны от линии пересечения проходят линии (4.9.2) и (4.9.3). Через   и  обозначим нормали поверхностей  и , а через

, (4.9.4)

(4.9.5)

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

Параметры u(t), v(t), a(t), b(t), определяющие линии (4.9.2) и (4.9.3) и являющиеся координатами точек на поверхностях, связаны векторным уравнением

. (4.9.6)

Величины  и  определяют расстояние от линий (4.9.2) и (4.9.3), соответственно, до точки пересечения трансверсалей. Знаки величин  и  определяют, с какой стороны от линии пересечения проходят линии  и , то есть определяют сектор, в котором лежит поверхность фаски. Если в области пересечения поверхности плоские и ортогональны друг другу, то абсолютные величины  и  равны катетам фаски.

Фаска с переменными катетами. Поверхность фаски можно связать с линией пересечения поверхностей , а величины  и  можно поставить в зависимость от длины дуги s этой линии. В этом случае параметры u(t), v(t), a(t), b(t), определяющие линии (4.9.2) и (4.9.3), связаны уравнением

. (4.9.7)

. (4.9.8)

Данная система содержит четыре уравнения относительно четырех параметров: u, v, a, b.


Лекция № 9

4.10 Определение точек пересечения трех поверхностей

Пересечение трех плоскостей. Пусть даны три плоскости

(4.10.1)

с единичными нормалями , ,  соответственно. Плоскости имеют единственную точку пересечения, если смешанное произведение нормалей отлично от нуля: . Пусть искомая точка имеет радиус-вектор . Тогда вектор  колинеарен плоскости , вектор  колинеарен плоскости , вектор  колинеарен плоскости . Следовательно, должны выполняться равенства

(4.10.2)

Параметры общей точки трех плоскостей найдем по формулам

,   ,

,   , (4.10.3)

,   .

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

(4.10.4)

Эти векторные уравнения содержат шесть скалярных нелинейных уравнений относительно шести параметров u, v, a, b, x, y поверхностей. Если в точках пересечения смешанное произведение нормалей поверхностей отлично от нуля, то система может быть решена одним из численных методов.

4.11 Точность выполнения операций

В итерационных методах выполнения операций параметры геометрических объектов мы находим с некоторой точностью . Мы заканчиваем процесс уточнения параметров, когда на очередной итерации изменение каждого параметра по абсолютной величине становится меньше :. Значение некоторого параметра  на последней итерации отличается от искомого точного значения  на величину , которая в несколько десятков или сотен раз может быть больше величины . В то де время, величина  не должна превосходить , где n – число точных чисел в мантиссе представления параметров. Общее количество m > n значащих цифр в мантиссе представления действительных чисел в памяти компьютера является отправной точкой для определения максимальной точности, которую можно достичь численными методами.

При выполнении операций важно знать, с какой точностью они были выполнены. Будем пользоваться двумя величинами:  и . С точностью  будем выполнять операции, а с точностью  будем проверять величины на равенство.


Лекция № 10

5.Базовые элементы формы и их точное аналитическое описание

5.1. Топологические объекты

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

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

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

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

Гранью будем называть топологический объект, построенный на основе поверхности. Фактически грань представляет собой поверхность плюс информация о том, какая сторона поверхности является наружной стороной грани, и информация об ее положении в оболочке, то есть информация о соседях. Информация о соседних гранях оформляется в виде циклов.

Цикл – это топологический объект, который описывает одну из границ грани, и содержит информацию о том, где и как к данной грани примыкают соседние грани. Так как вдоль одного цикла к данной грани могут примыкать несколько соседних граней, то цикл состоит из нескольких участков. Каждый участок цикла опирается на некоторое ребро.

Ребром будем называть топологический объект, построенный на основе линии стыковки соседних граней или на основе граничной линии оболочки. Грани стыкуются только по ребрам. Таким образом, каждая грань со всех сторон окружена ребрами. Вершиной будем называть топологический объект, построенный на основе точки, в которой стыкуются ребра. Вершины могут лежать только на краях ребер. Каждое ребро начинается и оканчивается в вершине. Если ребро замкнуто, то оно начинается и оканчивается в одной и той же вершине. Цикл состоит из ребер, образующих замкнутую линию вдоль одной из границ грани. Цикл всегда замкнут и ему приписывается определенное направление. Грань может содержать несколько циклов, причем один их них является внешним, а остальные – внутренними и целиком лежащими внутри внешнего цикла. За положительное направление цикла примем направление движения вдоль цикла, при котором грань всегда находится слева, если смотреть с наружной стороны грани. Таким образом, внешний цикл грани ориентирован против часовой стрелки, а внутренние циклы ориентированы по часовой стрелке, если смотреть с наружной стороны грани. Каждый цикл проходит по одной из границ поверхности.

5.2 Эйлерова характеристика оболочек

Топологические свойства оболочки могут быть выражены через количество ее граней, ребер, вершин и циклов. Пусть оболочка содержит F граней, E ребер, V вершин и L циклов. Число вершин, ребер, граней и циклов оболочки связаны между собой соотношением

 E + V + ( L) = H, (5.2.1)

где Н называется эйлеровой характеристикой оболочки. Формула (5.2.1) носит имя формулы Эйлера. Эйлерова характеристика оболочки не зависит от числа и формы составляющих ее граней, но зависит о природных характеристик оболочки, которые изучает топология.

Грань с вырезами с топологической точки зрения отличается от грани без вырезов, так как первую нельзя преобразовать во вторую путем деформирования. Число вырезов в грани также играет существенную роль. Топологически эквивалентными являются грани, которые путем деформирования могут быть преобразованы одна в другую. Для этого грани должны иметь одинаковое число вырезов ил одинаковое число циклов.

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

5.3 Связность оболочек

Топологические логические свойства оболочек не зависят от количественных характеристик (объема, площади поверхности и т.п.). Будем воспринимать оболочку как единое целое.

Связность – это топологическое понятие, характеризующее целостность некоторого объекта. С другой стороны связность отражает возможность разделить некоторый топологический объект на отдельные части. Простейшей является незамкнутая оболочка с одной границей (одним циклом) типологически эквивалентная кругу. Простейшая оболочка делится на две отдельные части любой линией, проведенной от одной точки границы до другой. Простейшей оболочке приписывается связность равная единице. Ее называют односвязной.

Если плоская оболочка имеет L циклов (один внешний и L – 1 внутренних), то на ней можно провести L – 1 линий, не разрезающих оболочку на две отдельные части (например, от внешнего цикла к каждому внутреннему циклу). Любая следующая линия, начинающаяся и оканчивающаяся на границе оболочки, разрежет ее на две части. Плоская оболочка не теряет свою целостность. Целостность оболочки заключается в том, что из некоторой ее точки, двигаясь по ее поверхности, можно попасть в любую другую ее точку. Простой оболочке с L циклами припишем связность равную.

Связность оболочки определим минимальным числом линий, по которым ее можно разрезать на две простейшие оболочки (на две отдельные части). Если связность оболочки равна h, то h – 1 разрезов достаточно, чтобы ими раскроить оболочку, превратив ее в простейшую. Связность обозначим h.

Две оболочки могут иметь одинаковую связность, но быть типологически различными. Кроме связности оболочка характеризуется ориентируемостью.

5.4 Ориентируемость оболочек

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

Лист Мебиуса. Примером неориентируемой оболочки является лист Мебиуса.

Лист Мебиуса является односторонней оболочкой. Если оболочка является односторонней, то она неориентируема. Справедливо и утверждение, что если оболочка является двухсторонней, то она ориентируема.

Оболочка тогда и только тогда неориентируема, когда на ней можно построить такую замкнутую кривую s, что придвижении вдоль этой кривой достаточно малой ориентируемой окружности она придет в исходную точку ориентированной в противоположенном направлении. Если двигаться вдоль кривой s на односторонней оболочке по одну сторону от этой кривой, то можно оказаться по другую сторону кривой, хотя при движении кривая не пересекалась.

Лист Мебиуса является незамкнутой оболочкой. Существуют замкнутые односторонние оболочки.

Бутылка Клейна. Примером замкнутой односторонней оболочки является бутылка Клейна, которая показана на рис. 5.4.1. Бутылка Клейна имеет одну замкнутую линию самопересечения. Она не может служить сосудом. Связность Бутылки Клейна равна трем.

Рис. 5.4.1 – Бутылка Клейна – односторонняя замкнутая оболочка

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

Кроме связности оболочки характеризуются еще и направленностью. Тор и бутылка Клейна обладают одинаковой связностью, обе замкнутые оболочки, но тор является ориентируемой оболочкой, а бутылка Клейна – неориентируемой.

5.5 Оболочки для моделирования тел

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

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

1) оболочки должны иметь одинаковую связность;

2) оболочки должны быть либо ориентируемы, либо неориентируемы;

3) оболочки должны быть либо замкнуты, либо должны иметь одинаковое число границ.

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

Формула Эйлера-Пуанкаре. Замкнутые, ориентируемые и не пересекающие сами себя оболочки имеют нечетную связность. Для таких оболочек Эйлерова характеристика Н связана с ее связностью h соотношением

= 3  h. (5.5.1)

Используя это соотношение, получим формулу, связывающую число граней F, число циклов L, число ребер Е и число вершин V оболочки с ее связностью h:

 E + V + ( L) = 3  h. (5.5.2)

Данная запись формулы Эйлера справедлива для замкнутых оболочек.

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

Более наглядной, чем связность, характеристикой топологии оболочки может служить число ручек G сферы, к которой путем деформирования можно привести замкнутую оболочку. Примем во внимание, что сфера с G ручками имеет связность h = 2G + 1, получим связывающую число граней F, ребер Е, вершин V и циклов L с характерной величиной G,

 E + V + ( L) – 2(1 – G) = 0. (5.5.3)

Данная формула называется формулой Эйлера-Пуанкаре. Величина G характеризует топологический тип оболочки. Формула Эйлера-Пуанкаре позволяет определить топологический тип оболочки, если известно число ее граней, ребер, вершин и циклов:

. (5.5.4)

Если моделируемый объект имеет m пустот, то он будет описываться S = m + 1 оболочками. Потребуем, чтобы внутренние оболочки не пересекали друг друга и внешнюю оболочку. Для каждой оболочки справедлива формула (5.5.3), а для объекта с S замкнутыми оболочками формула Эйлера-Пуанкаре примет вид

 E + V + ( L) – 2(S – G) = 0. (5.5.3)

где F – общее число граней модели, Е – общее число ребер модели, V – общее число вершин модели, L – общее число циклов модели, S –общее число оболочек моделируемого объекта, G – топологический тип моделируемого объекта, равный общему числу ручек всех описывающих его оболочек. Таким образом, типологически эквивалентными объектами будут являться два объекта, у которых равно число описывающих их оболочек и соответствующие внешние и внутренние оболочки имеют одинаковый топологический тип.

Если оболочка не является замкнутой, то говорить о ее топологическом типе G не имеет смысла. Для незамкнутой ориентируемой оболочки формула Эйлера имеет вид

 E + V + ( L) + h = 2. (5.5.6)

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

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

Для моделирования будем использовать оболочки, вершины которых являются простыми, грани пересекаются по ребрам, причем в каждом ребре стыкуются только две грани. Такие оболочки будем называть однородными. У однородных оболочек все топологические элементы построены по единым правилам.

5.6 Твердотельное и поверхностное моделирование

В геометрическом моделировании используются термины «поверхностное моделирование» (моделирование поверхностей) и «твердотельное моделирование» (моделирование твердых тел). В обоих случаях результатом моделирования является некоторая оболочка (или несколько оболочек), описывающая поверхность моделируемого объекта. Но процесс моделирования в первом случае отличается от процесса моделирования во втором случае.

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

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

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


Лекция № 11

6 Различные способы представления твердотельных моделей

6.1 Математическая модель тел. Способы описания геометрических моделей: явные, неявные векторные, параметрические уравнения

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

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

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

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

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

Для того чтобы отличать сторону оболочки, направленную наружу тела, от стороны, направленной внутрь тела, каждой точке оболочки приписывается нормаль, которая считается направленной наружу тела. Нормаль внешней оболочки тела направлена вне ограничиваемой ею части пространства, а нормаль внутренней оболочки тела направлена внутрь ограничиваемой ею части пространства.

Для создания математической модели тела достаточно смоделировать совокупность оболочек, ограничивающих его объем. Но для редактирования тела необходима информация о последовательности и способах построения, поэтому в модель тела включают еще и дерево построения (или протокол построения) тела.

Будем строить оболочки тел из топологических объектов, которые будут нести и количественную геометрическую информацию, и топологическую информацию.

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

,   ,

,   , (6.1.1)

.

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

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

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

6.2 Простейшие тела

Прямоугольная призма. Начало местной системы координат поместим в одну из вершин призмы, а ее орты направим по ребрам, стыкующимся в этой вершине. Пусть в направлении орта  тело имеет длину, равную х, в направлении орта  – длину, равную у, а в направлении орта  – длину, равную z. Прямоугольная призма состоит из шести граней. Каждая грань представляет собой часть плоскости, ограниченную прямоугольным контуром на ней, с признаком ориентации нормали плоскости наружу тела и одним циклом. Контуры состоят из отрезков прямых из отрезков прямых. Прямоугольная призма имеет 12 ребер. Каждое ребро состоит из линии пересечения поверхностей соседних граней и признака совпадения ребра с направлением линии пересечения. Каждая линия пересечения состоит из двух линий на поверхности: одна на поверхности одной грани, другая на поверхности второй грани. Обе линии на поверхности имеют одинаковую геометрическую и параметрическую длину и полностью совпадают в пространстве. Каждая линия на поверхности представляет собой совокупность поверхности и двухмерной линии на ней. Прямоугольная призма с ориентацией циклов граней показана на рис. 6.2.1.

Грани тела будут описываться поверхностями:

,   ,   ,

,   ,   ,

,   ,   , (6.2.1)

,   ,   ,

,   ,   ,

,   ,   .

У третьей, четвертой и пятой граней нормаль поверхности направлена наружу тела, а у первой, второй и шестой – внутрь тела. Эта информация содержится в грани в виде признака совпадений нормалей.

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

,   ,

,   , (6.2.2)

,

и двух поверхностей. Выражение  означает, что отрезок  лежит на поверхности . Пусть направление ребра совпадает с направлением кривой (6.2.2), что зафиксируем в признаке совпадения направлений. Ребро входит в цикл первой грани с положительным флагом, а в цикл второй грани – с отрицательным флагом. Если смотреть вдоль направления ребра с наружи тела, то слева от ребра лежит первая грань, а справа от ребра лежит вторая грань.

Для построения граней тела достаточно знать местную систему координат , , ,  и стороны х, у, z призмы.

Цилиндрическое тело. Другой заготовкой может служить цилиндрическое тело. Начало местной системы координат  поместим в центр одного из торцев цилиндра, а орт  направим вдоль его оси. Пусть цилиндр имеет радиус r и длину h.

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

Боковая грань тела базируется на цилиндрической поверхности

, , . (6.2.3)

Нормали поверхности (6.2.3) и ее грани совпадают по направлению. Эта грань имеет один цикл. Цилиндрическая поверхность боковой грани является замкнутой по одному из параметров. Грани основания базируются на ограниченных окружностями плоскостях

, (6.2.4)

, (6.2.5)

где параметры ,  лежат внутри области , , на плоскости , а параметры ,  лежат внутри области , , на плоскости . Нормали поверхности (6.2.4) и ее грани противоположены по направлению, а нормали поверхности (6.2.5) и ее грани совпадают.

Ребро, построенное на линии замыкания оболочки, является швом. Шов, так же как и любое другое ребро, базируется на линии пересечения. В данном случае линия пересечения описывается двухмерными кривыми

,   ,

,   ,, (6.2.6)

являющимися линиями  и  на цилиндрической поверхности.

Ребро между боковой гранью и основанием (6.2.4) описывается линией пересечения этих граней, состоящих из двух кривых (отрезка и окружности)

,   ,

,   , (6.2.7)

,

Ребро между боковой гранью и основанием (6.2.5) описывается линией пересечения этих граней:

,   ,

,   , (6.2.8)

.

Циклы граней основания содержат всего одно ребро. Цикл боковой грани состоит из списка ребер с соответствующими флагами:

ребро на базе кривой (6.2.7) – флаг положительный,

ребро на базе кривой (6.2.6) – флаг положительный,

ребро на базе кривой (6.2.8) – флаг отрицательный,

ребро на базе кривой (6.2.6) – флаг отрицательный.

Коническое тело. Тело в форме усеченного конуса строится аналогично цилиндрическому телу с той лишь разницей, что в качестве поверхности боковой грани вместо цилиндрической используется коническая поверхность

, (6.2.9)

, .

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

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

,

, ,

топологически эквивалентна цилиндрической поверхности. Ребра в полюсах стянуты в точку, но двухмерные кривые на сферической поверхности в полюсах имеют ненулевую длину. Цикл грани сферического тела составляют три ребра, одно из которых является швом

,   ,

,   ,

,

а два других описываются линиями на полюсах сферы:

,   ,

,   ,

.

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

Тороидальное тело. Начало местной системы координат  для тороидального тела поместим в его центр, а орт  направим по оси симметрии тела. Пусть большой радиус тора равен R, а малый радиус r. Тороидальное тело имеет одну грань, описанную тороидальной поверхностью

,

, , (6.2.10)

два ребра

,

, (6.2.11)

,

,

, (6.2.12)

,

и одну вершину в точке пересечения ребер . Нормаль поверхности и грани тороидального тела совпадают по направлению. Грань тела имеет один цикл. Цикл грани состоит из списка ребер с соответствующими флагами:

ребро на базе кривой (6.2.11) – флаг положительный,

ребро на базе кривой (6.2.12) – флаг положительный,

ребро на базе кривой (6.2.11) – флаг отрицательный,

ребро на базе кривой (6.2.12) – флаг отрицательный.

Тороидальная поверхность грани является замкнутой по обоим параметрам, поэтому оба ребра оболочки тела замкнуты и являются швами.

6.3 Тела, полученные движением плоского контура

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

,   , (6.3.1)

где  – область на плоскости параметров, ограниченная двухмерным контуром . Контур  состоит из набора стыкующихся друг с другом двухмерных кривых , , i = 1, 2, …, n. Каждая кривая контура в пространстве описывается радиус-вектором

,   . (6.3.2)

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

Тело выдавливания. Если направляющей движения контура служит отрезок прямой , , то мы получим тело выдавливания. Одна из его торцевых граней будет описываться ограниченной плоскостью (6.3.1). Другая его торцевая грань будет описываться аналогичной плоскостью, только с началом в точке . Боковая грань тела выдавливания, соответствующая кривой контура , описывается поверхностями

, (6.3.3)

,   .

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

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

, (6.3.4)

,   .

где  – составляющая вектора , параллельная оси вращения,  – составляющая вектора , перпендикулярная оси вращения,  – ортогональный первым двум векторам вектор, длина которого равна длине вектора .

Если угол вращения  равен , то оболочка тела имеет топологию тора, в противном случае – топологию призмы. В первом случае оболочка не имеет торцовых граней.

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

Если ориентация образующей в пространстве не меняется, то контур выполняет плоскопараллельное движение, оставаясь параллельным своему начальному положению, и мы получим тело сдвига. Боковые грани тела сдвига строятся для каждой кривой (6.3.2) и описываются поверхностью (3.6.3)

, (6.3.5)

,   ,

где  – вектор привязки образующей и направляющей. Вектор  смещает кривую  на некоторую величину из ее начального положения относительно направляющей и сохраняет это смещение во время движения. Тело сдвига всегда имеет торцевые грани.

Если ориентация контура в пространстве при движении меняется, сохраняя некоторый заданный угол между плоскостью контура и касательной к направляющей, то мы получим тело заметания. Боковые грани тела заметания строятся для каждой кривой (6.3.2) и описываются поверхностью

, (6.3.5)

,   ,

где  – матрица поворота текущего подвижного касательного базиса относительно его начального поворота.

6.4 Построение тела по плоским сечениям

Пусть имеется несколько плоских контуров , i = 0, 1, 2, …, n, одинаково ориентированных, расположенных на некотором расстоянии друг от друга и состоящих из одинакового числа кривых. Построим тело, сечения которого ограничены данными контурами. Тело имеет две торцовые грани, построенные на крайних контурах. Торцовые грани тела представляют собой плоскости, ограниченные одним из крайних контуров. Количество боковых граней равно количеству кривых в контуре. В каждой боковой грани участвует по одной кривой каждого контура. Эти кривые будем называть соответствующими. Между кривыми в контурах должно быть установлено соответствие, например, по порядковому номеру кривой в контуре.

6.5 Тело в форме листа

На основе поверхности произвольной формы можно построить тело в форме листа конечной толщины. Пусть дана поверхность . Выбрав толщину листа h, построим эквидистантную к ней поверхность

, (6.5.1)

где  – нормаль к поверхности . НА этих поверхностях построим две основные грани листового тела. Остальные (боковые) грани построим на линейчатых поверхностях, одной базовой линией которых является граничная линия на поверхности , а второй – соответствующая ей линия на поверхности . Если область определения параметров поверхности  имеет прямоугольную форму, то листовое тело будет иметь четыре боковые грани. В общем случае листовое тело будет иметь столько боковых граней, сколько линий содержат двухмерные контуры, описывающие область определения параметров поверхности . Направление нормалей основных граней противоположено друг другу в соответствующих точках. Если поверхность  является замкнутой по одному из параметров, то листовое тело будет иметь внешнюю оболочку на основе поверхности  и внутреннюю оболочку на основе поверхности .

Тело, построенное по сечениям, и тело в форме листа, так же как все рассмотренные выше тела, служат заготовками для моделей деталей. Дальнейшее моделирование связано с операциями над телами.

6.6 Теоретико-множественные операции булевой алгебры

Булевыми операциями называют операции объединения, пересечения и вычитания тел, так как они выполняют одноименные операции над внутренними объемами тел (над множеством точек пространства, находящимися внутри тел). Булеву операцию объединения тел будем обозначать формулой , где  и  – исходные тела, S – результирующее тело. Булеву операцию пересечения тел будем обозначать формулой . Булеву операцию пересечения тел будем обозначать формулой . В порядке следования тел-операндов будем называть их первым и вторым телом. Результатом операции объединения двух тел является тело, которое содержит точки, принадлежащие внутреннему объему или первого, или второго тела. Результатом операции пересечения двух тел является тело, которое содержит точки, принадлежащие внутреннему объему как первого, так и второго тела. Результатом операции вычитания двух тел является тело, которое содержит точки, принадлежащие внутреннему объему первого, но не принадлежащие внутреннему объему второго тела.

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

Объединение тел. рассмотрим булеву операцию объединения тел. Кратко суть операции можно описать следующим образом: нужно найти линии пересечения граней тел, удалить ту часть первого тела, которая попала внутрь второго тела и ту часть второго тела, которая попала внутрь первого тела, а из всего остального построить новое тело. Операцию условно разобьем на три этапа. На первом этапе построим линии пересечения поверхностей граней и на их базе – новые ребра. Построенные новые ребра будем называть ребрами пересечения, а ребра тел будем называть старыми ребрами. На втором этапе определим точки пересечения новых ребер со старыми ребрами и в этих точках разрежем старые ребра на несколько ребер. На третьем этапе операции перестроим циклы пересекающихся граней. После этого добавим к пересекшимся граням тел грани, топологически связанные с ними. Рассмотри этапы построения тела более подробно.

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

,   i = 1, 2, …, m, (6.6.1)

а грани второго тела описываются поверхностями

,   j = 1, 2, …, n. (6.6.2)

на базе линий пересечения граней первого и второго тел

,   ,

,   , (6.6.3)

,

построим ребра пересечения. При этом ребрам пересечения дадим направление векторного произведения нормали грани первого тела с нормалью грани второго тела: .

Ребра пересечений должны быть построены так, чтобы они полностью лежали внутри циклов граней исходных тел. Ребра пересечения могут подходить к границам грани только своими концами. В точках А, В и С (рис. 6.6.1) старые ребра граней должны быть разбиты каждое на два ребра, так как в результирующее тело войдет только часть исходной грани.

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

Точки пересечения нового ребра со старым ребром грани ищутся как точки пересечения двухмерных кривых, заданных на общей для них плоскости параметров.

Если разрезаемое ребро базируется на кривой пересечения, заданной отдельными точками (двухмерные линии являются ломанными и точно совпадают в пространстве только в характеристических точках), то прежде чем разрезать в пространстве такую кривую, нужно в обе линии вставить дополнительные точки, соответствующие точкам пересечения трех поверхностей – двух поверхностей, лежащих по обе стороны разрезаемого ребра, и поверхности грани другого исходного тела.

Так как каждое ребро исходных тел входит в циклы двух смежных граней, то после резки ребер исходных тел необходимо произвести корректировку этих циклов с учетом разрезаемых ребер.

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

Третий этап завершает булеву операцию. Для того, чтобы каждую из показанных на рис. 6.6.1 граней разрезать на части, нужно перестроить ее циклы и в соответствии с циклами изменить контуры, описывающие область определения параметров поверхности грани. На рис. 6.6.2 показаны две пересекающиеся грани (тонкими линиями со стрелками показано направление циклов граней исходных тел) и ребро пересечения. На рис. 6.6.3 показаны те части граней, которые войдут в объединение тел. Каждый цикл представляет собой список ребер в порядке их следования и список флагов ориентации этих ребер в цикле.

          

При перестройке циклов пересекающихся граней будем использовать следующий алгоритм.

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

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

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

Описанное построение циклов выполняется для каждой пересекающейся грани первого тела.

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

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

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

В пересечение тел войдет часть грани первого тела, лежащая внутри второго тела, и часть грани второго тела лежащая внутри первого тела.

Операцию разобьем на три этапа. Первый и второй этапы операции пересечения тел полностью совпадают с соответствующими этапами операции объединения тел.

Третий этап операции пересечения тел выполняется аналогично третьему этапу операции объединения тел, но имеет одно отличие в том, с каким флагом входят в циклы ребра пересечения. Ребра пересечения входят в перестроенные циклы граней первого тела с положительным флагом, а в перестроенные циклы граней второго тела – с отрицательным флагом.

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

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

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

Правило для ребер пересечения.

В операции объединения тел грань первого тела мы сможем перестроить, если она имеет продолжение справа от ребра пересечения вне второго тела, а грань второго тела мы сможем перестроить, если она имеет продолжение слева от ребра пересечения вне первого тела.

В операции пересечения тел грань первого тела мы сможем перестроить, если она имеет продолжение слева от ребра пересечения вне второго тела, а грань второго тела мы сможем перестроить, если она имеет продолжение справа от ребра пересечения вне первого тела.

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

Перекрывающиеся грани.

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

Дерево построения.

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

6.7 Резка тела поверхностью

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

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

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

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

6.8 Построение симметричного тела

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

Пусть плоскость симметрии описывается формулой

,

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

, (6.8.1)

где  и  – диадные произведения векторов. Свободный вектор  после преобразования симметрии относительно этой плоскости будет описываться радиус-вектором

. (6.8.2)

Произвольная точка  после преобразования симметрии относительно этой плоскости будет описываться радиус-вектором

. (6.8.3)

После преобразования симметрии все точки и линии на поверхностях останутся неизменными. А вот нормали поверхностей изменят свое направление на противоположенное. В гранях зеркальной копии нужно произвести изменение признаков совпадения нормали поверхности и нормали ее грани на противоположенные значения и переориентировать циклы. Переориентация направления цикла грани производится перестроением списка ребер и заменой флагов ребер в списках на противоположенные флаги. Построение симметричного тела сводится к преобразованию его копии по матрице (6.8.1) и выворачивании ее наизнанку (переориентации его граней).

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

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

На первом этапе построим линии пересечения поверхностей граней тела с плоскостью. Пусть пересеченные плоскостью грани тела описываются поверхностями , i = 1, 2, …, n. Тогда каждая линия пересечения будет состоять из пары двухмерных кривых

,   ,

,   , (6.8.4)

имеющих общий параметр t. Первая кривая лежит на поверхности , а вторая – на плоскости симметрии. На базе линий пересечения построим новые ребра (ребра пересечения). С помощью признака совпадения направления ребра и его кривой пересечения ребрам пересечения дадим направление векторного произведения нормали грани тела с нормалью к плоскости: .

На втором этапе определим точки пересечения новых и старых ребер тела, в этих точках построим вершины и этими вершинами разрежем старые ребра на несколько ребер.

Далее построим симметричную относительно плоскости копию части оболочки тела, лежащей над плоскостью.

Остается сшить симметричные половинки тела по ребрам пересечения тела с плоскостью симметрии. Но прежде выполним замену линий плоскости, входящих в кривые пересечения построенных ребер, на линии на симметричной оболочке. Для этого вместо кривых (6.8.4) в ребра положим новые

,   ,

,   . (6.8.5)

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

На третьем этапе перестроим циклы пересеченных плоскостью граней тела. Каждое ребро пересечения должно войти в цикл исходной грани с отрицательным флагом, а цикл ее симметричной части – с положительным флагом.

К пересеченным граням тела добавим непересеченные грани, которые топологически связаны с первыми, и соответствующие симметричные копии. Так мы получим оболочку симметричного тела.

6.9 Построение эквидистантной оболочки тела

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

На первом этапе для каждой грани базового тела построим эквидистантную грань. Эквидистантная грань базируется на поверхности, эквидистантной к соответствующей поверхности базового тела.

Каждая эквидистантная поверхность должна быть продолжена до пересечения с соседними эквидистантными поверхностями. Для построения эквидистантного тела нам остается построить его вершины и ребра. Для этого необходимо найти линии пересечения эквидистантных поверхностей. Каждая линия пересечения должна начинаться и оканчиваться в вершине тела.

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

На третьем этапе построим ребра эквидистантной оболочки. Рассмотрим последовательно ребра базового тела. Для каждого ребра построим соответствующее ребро эквидистантной оболочки тела. Ребро будет базироваться на линии пересечения эквидистантных поверхностей.

На последнем, четвертом этапе построим циклы эквидистантных граней.

Таким образом, мы получим оболочку эквидистантного тела.

6.10 Построение тонкостенного тела

Рассмотрим построение тонкостенных тел двух типов. Тела обоих типов будут строиться по некоторому базовому телу. Тело первого типа будет иметь замкнутую полость внутри. Оно имеет две оболочки, делящие пространство на три части: одна из них лежит вне тела, вторую занимает тело, а третья является внутренней полостью тела. Тело второго типа будет представлять собой открытое тонкостенное тело, имеющее одну оболочку. Тело первого типа будем называть закрытым тонкостенным телом, а тело второго типа – открытым тонкостенным телом. Закрытое тонкостенное тело можно считать частным случаем открытого тонкостенного тела.

Закрытое тело. Закрытое тонкостенное тело с толщиной стенки h получим следующим образом. Построим эквидистантную оболочке базового тела оболочку. Далее вывернем наизнанку одну из этих оболочек. Если h > 0, то вывернем наизнанку оболочку базового тела, если h < 0, то вывернем наизнанку эквидистантную оболочку. Эти две оболочки и создадут тонкостенное тело.

Данное тонкостенное тело является в отличие от других рассмотренных тел телом с пустотами. В общем случае тело с пустотами имеет несколько оболочек. Одна из них является внешней, а остальные – внутренними и лежат внутри внешней оболочки. Все оболочки не должны пересекать друг друга. Вектор нормали к внешней оболочке направлен вне объема оболочки, а векторы нормалей к внутренним оболочкам направлены внутрь объема, ограниченного ими.

Открытое тело. Открытое тонкостенное тело строится на базе некоторого тела путем удаления одной или нескольких граней последнего и «придания оставшимся граням конечной толщины». Грань не может иметь толщину, поэтому к оставшейся после удаления некоторых граней открытой оболочке строится эквидистантная открытая оболочка, а затем эти оболочки замыкаются частями удаляемых граней. В результате получится одна замкнутая оболочка.

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

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

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

Рассмотрим последовательно ребра сохраняемых граней базового тела (ребра второй группы). Для каждого ребра построим соответствующее ребро тонкостенного тела. Для этого найдем линии пересечения эквидистантных поверхностей между собой и с поверхностями вскрываемых граней. Начальные и конечные точки ребер нам известны.

По построенным вершинам перестроим ребра пересечения вскрываемых граней (ребра первой группы).

Далее вывернем наизнанку часть граней. Если h > 0, то изменим на противоположенные направления циклов и нормалей сохраняемых граней базового тела и направления циклов вскрываемых граней базового тела. Если h < 0, то изменим на противоположенные направления нормалей эквидистантных граней (циклов они еще не имеют).

На последнем этапе построим циклы эквидистантных граней и перестроим циклы вскрываемых граней. Таким образом, оболочка открытого тонкостенного тела будет составлена из сохраняемых граней, эквидистантных к ним граней и частей вскрываемых граней.

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

6.11 Скругление ребер тела

Операция скругления ребер тела позволяет построить плавный переход от одной грани к другой.

Рассмотрим общий случай скругления произвольного криволинейного ребра. Пусть грань, лежащая справ от скругляемого ребра (если смотреть снаружи тела вдоль ребра), базируется на поверхности , а грань, лежащая справа от скругляемого ребра, базируется на поверхности . Эти грани будем называть сопрягаемыми. Пусть скругляемое ребро базируется на линии пересечения  поверхностей  и . По кривой  построим поверхность скругления . Краями поверхности скругления являются линии, совпадающие с двухмерными линиями

,   ,

,    (6.11.1)

на сопрягаемых поверхностях. Построим два ребра вдоль краев поверхности скругления на базе пересечения

   (6.11.2)

,    (6.11.3)

Эти ребра будем называть продольными, так как они направлены вдоль скругляемого ребра и имеют ту же ориентацию.

Если скругляемое ребро замкнуто, то поверхность скругления также будет замкнутой по параметру t. Тогда на базе линии пересечения

,   

,    (6.11.4)

,

построим ребро, которое будет являться швом.

Если скругляемое ребро не замкнуто, то найдем все грани (за исключением сопрягаемых), пересекающиеся с поверхностью скругления, построим линии их пересечения с поверхностью скругления. На базе этих линий пересечения создадим ребра, которые будем называть поперечными.

На базе поверхности  построим грань скругления. Цикл этой грани будет состоять из продольных и поперечных ребер (или шва). Для грани скругления определим признак совпадения ее нормали с направлением нормали поверхности. Нормаль грани скругления должна быть направлена наружу тела.

После этого построим сопрягаемые поверхности  и  и циклы граней на них. Для этого найдем пересечение линий (6.11.2) и (6.11.3) с ребрами сопрягаемых граней или их продолжениями и изменим эти ребра (обрежем или продлим). Вместо скругляемого ребра в цикл грани  поставим ребро на базе линии (6.11.2), а в цикл грани  поставим ребро на базе линии пересечения (6.11.3).

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

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

В случаях скругления нескольких сопряженных ребер различные стадии операции скругления каждого ребра следует выполнять параллельно – одновременно для нескольких ребер. Перед началом операции скругления следует составить группы гладко стыкующихся ребер и далее работать с этими группами как с отдельным ребром описанным выше образом.

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

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

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

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

,   ,   . (6.11.5)

По отрезку и поверхности построим пространственную кривую . Линии (6.11.5) построим на каждой из трех поверхностей скругления, имеющих общую точку пересечения. Отрежем и опустим ту часть каждой грани скругления, которая лежит за пространственной линией (6.11.5) (со стороны общей вершины). По трем линиям (6.115) построим треугольную поверхность по трем кривым, а на ее базе построим грань скругления вершины.

6.12 Построение фасок ребер тела

Фаски ребер тела строятся аналогично скруглению ребер с той лишь разницей, что поверхности скругления заменяются поверхностями фасок.

Фаска вершин. Если поверхности фасок строятся для трех ребер, стыкующихся в одной вершине, то общую вершину, как правило, срезают. Срез вершины выполним аналогично скруглению вершины. Для этого найдем три линии пересечения поверхностей фасок и построим по ним треугольную поверхность. На базе трех линий пересечения построим три ребра, а на базе треугольной поверхности построим грань.

6.13 Последовательность моделирования тел

Моделирование некоторого объекта может включать построение одного тела или построение нескольких тел – сборки тел.

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

Рис. 6.13.1 – Способы построения тел

Из нескольких тел можно получить сборку тел. В сборке все тела равноправны. Для взаимного расположения и ориентации тел сборки можно использовать преобразования сдвига, поворота, масштабирования или симметрии.

Построение отдельных тел и сборок должно сопровождаться протоколом построения (деревом построения). Дерево построения позволяет выполнять редактирование тел и их сборок, создавать наборы однотипных моделей и управлять ими.


Лекция № 12

7 Вариационные связи геометрических объектов

7.1 Наложение вариационных связей

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

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

Наложение связей облегчает труд при проектировании нескольких однотипных деталей и при сборке различных деталей. Достигается это путем установления определенных зависимостей между параметрами геометрических объектов. Эти зависимости представляют собой некоторые уравнения

(7.1.1)

относительно параметров  объектов. Будем называть связывающие параметры уравнения вариационными связями. Кроме координат точек, компонент векторов, скалярных величин из структуры данных геометрических объектов параметрами могут служить дополнительные скалярные величины и координаты точек. Они могут существовать отдельно или могут быть введены в структуры данных геометрических объектов для удобства управления объектами посредством вариационных связей. Для наложения вариационных связей нужно, чтобы геометрические объекты представляли свои параметры «во внешнее пользование» и перестраивались по измененным параметрам. Вариационными связями в общем случае могут служить любые алгебраические уравнения.

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

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

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

7.2 Фиксирующие связи

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

, (7.2.1)

где  – заданное значение параметра, которое должно быть сохранено в дальнейшем. Фиксирующая связь используется тогда, когда требуется, чтобы некоторый параметр не изменялся в процессе решения системы уравнений связей. Если некоторый параметр неизменен, то он может быть удален из списка переменных системы уравнений связей. Иногда удобнее сохранить неизменный параметр, но при этом следует ввести для него фиксирующее уравнение (7.2.1).

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

Уравнение (7.2.1) может использоваться для любого параметра геометрического объекта – скалярной величины, компоненты вектора или координаты точки.

7.3 Вариационные связи точек в пространстве

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

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

, (7.3.1)

где d – требуемый размер. В координатном представлении уравнение связи примет вид

.

Мы имеем одно уравнение (7.3.1), связывающее в общем случае шесть параметров: , , , , , . В уравнении (7.3.1) величину d будем считать константой. В общем случае величина d может быть варьируемым параметром.

Существует несколько способов получить систему уравнений с числом варьируемых параметров (неизвестных) равным числу уравнений. В данном случае мы составим некоторые дополнительные уравнения, связывающие те же параметры. Набор дополнительных уравнений может быть различным, но от этих дополнительных уравнений будет зависеть поведение точек. Потребуем, например, чтобы при изменении размера точки перемещались симметрично, то есть точки перемещались вдоль соединяющей их линии, а центр тяжести точек оставался бы неподвижным. Эти условия описываются уравнениями

, (7.3.2)

, (7.3.3)

, (7.3.4)

, (7.3.5)

, (7.3.6)

где  и  – исходное положение точек, которое в общем случае не удовлетворяет уравнению (7.3.1).

Добавив (7.3.2) – (7.3.6) к (7.3.1), получим систему шести уравнений относительно шести параметров. Перепишем все уравнения, придав им вид , = 1, 2, …, 6. Первое уравнение является не линейным.

Приращения координат , , , = 1, 2, на каждой итерации определим из системы линейных алгебраических уравнений

, (7.3.7)

где

,   ,   ,

,   ,

,   ,

,

,

,

, ,

,

.

Система уравнений (7.3.7) в матричной записи имеет вид

. (7.3.8)

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

Возможны и другие варианты дополнительных уравнений. Например, если требуется сохранить точку  в заданном положении, то в качестве дополнительных уравнений можно использовать уравнения (7.3.2), (7.3.3) и

,

где  – заданное положение точки.

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

,   ,   , (7.3.9)

где , ,  – требуемые размеры. Уравнения (7.3.9), примененные к координатам точек отрезка , могут сделать отрезок параллельным соответствующей координатной плоскости. Два уравнения (9.3.9) могут сделать отрезок параллельным одной из координатных осей.

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

, (7.3.10)

где  – задающий направление вектор единичной длины, d – требуемый размер. Уравнение (7.3.10) устанавливает, что проекция вектора , построенного между заданными точками, на направление вектора  по абсолютной величине d.

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

. (7.3.11)

Симметрия точек относительно плоскости. Рассмотрим вариационную связь симметрии точек  и  относительно плоскости

. (7.3.12)

Плоскость будем считать неподвижной, поэтому ее параметры варьироваться не будут.

Симметрия точек относительно плоскости описывается тремя уравнениями

, (7.3.13)

, (7.3.14)

, (7.3.15)

где . Три уравнения (7.3.13) – (7.3.15) связывают шесть параметров.

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

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

, (7.3.16)

где

, (7.3.17)

, (7.3.18)

– заданный угол. Величина s равна произведению длин векторов  и  на . Величина с равна произведению длин векторов  и  на . Уравнение (7.3.16) связывает девять параметров.

Угол между векторами. Пусть имеется четыре точки , , , . По четырем точкам можно построить два вектора. Построим векторы на точках ,  и , . Будем считать, что эти векторы не коллинеарны. Два вектора определяют семейство плоскостей, параллельных одновременно им обоим. Каждая плоскость семейства будет ортогональна вектору .

На четыре точки можно наложить вариационную связь, определяющую угол между векторами , . Эта связь аналогична угловому размеру (7.3.16). Уравнение, описывающее угол между четырьмя точками, имеет тот же вид, где

, (7.3.19)

, (7.3.20)

– заданный угол. Величина s равна произведению длин векторов  и  на . Величина с равна произведению длин векторов  и  на . Уравнение (7.3.16) связывает двенадцать параметров.

Ортогональность векторов. Частным случаем вариационной связи (7.3.16) является ортогональность векторов, построенных по точкам ,  и , .

. (7.3.21)

Если на точках построены отрезки прямых, то уравнение (7.3.21) делает эти отрезки ортогональными.

Параллельность векторов. Вариационная связь, делающая векторы  и  параллельными, определяется векторным уравнением

. (7.3.22)

Связь (7.3.21) будем называть параллельностью векторов.

7.4 Вариационные связи точек на кривых и поверхностях

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

,

,

а в качестве точек на них мы возьмем середины отрезков. Середины отрезков определяются параметрами , . Будем считать, что  и  есть постоянные величины. Линейный размер описывается уравнением (7.3.1), в котором теперь , . Число варьируемых параметров в данном случае будет равно 12. Ими являются координаты , , , , , , , , , , , . В общем случае варьируемыми параметрами будут являться параметры из структур данных связываемых кривых, которыми описываются точки , .

Между точкой  и произвольным геометрическим объектом S можно установить вариационную связь, «усаживающую» точку на геометрический объект. Эта связь описывается уравнением

, (7.4.1)

где  – проекция точки на геометрический объект.


Лекция № 13

7.5 Алгебраические связи

В уравнения связей (7.3.1), (7.3.10), (7.3.16) входят величины d и , которые до сих пор считались константами. Если они варьируются, то их называют свободными параметрами, то есть не принадлежащие какому-либо объекту. Алгебраические уравнения, связывающие свободные параметры, будем называть алгебраическими связями.

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

, (7.5.1)

, (7.5.2)

Пусть значения размеров а и b связаны некоторыми алгебраическими уравнениями

g(a,b) = 0, (7.5.3)

h(a,b) = 0. (7.5.4)

Уравнения (7.5.1) и (7.5.2) отличаются от уравнения (7.3.1) тем, что в последнем размер d не варьируется, а в уравнениях (7.5.1) и (7.5.2) параметры а и b являются варьируемыми. На (+ 1)-й итерации решения системы уравнений изменяются как координаты точек, так и значения параметров:

,   ,   ,

,   , = 1, 2, 3, 4.

Наряду с алгебраическими уравнениями вариационные связи могут строиться на неравенствах. Например, вместо уравнения (7.5.3) алгебраическая связь может определяться неравенством

> b. (7.5.5)

На каждой итерации решения системы уравнений неравенство заменяется соответствующим уравнением. Неравенство (7.5.5) на каждой итерации должно быть заменено уравнением

, (7.5.6)

где

, если ,

, если .

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

7.6 Минимизация изменения параметров

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

При наложении вариационных связей будем использовать метод минимизации суммы квадратов изменений параметров. Рассмотрим его применение на примере линейного размера между двумя точками, описываемого уравнением (7.3.1).

Обратим внимание на то, что в варианте дополнительных уравнений (7.3.2) – (7.3.6) суммарное перемещение связанных линейным размером точек является минимальным из возможных. Используем это свойство для составления системы уравнений. Квадрат суммарного перемещения связанных точек описывается функцией

.

В координатном представлении эта функция имеет вид

(7.6.1)

Эта функция пропорциональна сумме квадратов изменений всех связанных параметров. Аргументами этой функции являются те же шесть параметров: , , , , , . Потребуем, чтобы сумма квадратов изменений параметров была минимальной. При этом необходимо, чтобы координаты точек удовлетворяли уравнению связи (7.3.1). Используем метод неопределенных множителей Лагранжа для отыскания минимума функции (7.6.1) при условии (7.3.1). Необходимым условием минимума функции (7.6.1) при условии (7.3.1) является равенство нулю частных производных по параметрам функции

(7.6.2)

где ,  – подлежащий определению множитель. Искомые координаты точек и множитель  найдем из системы уравнений

,

,   ,

,   , (7.6.3)

,   .

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

7.7 Условный экстремум функции изменения параметров

Пусть имеется некоторая совокупность вариационных связей, наложенных на n параметров ,, …,  геометрических объектов. Пусть эта совокупность связей накладывает m уравнений

,

, (7.7.1)

,

на параметры объектов Если m = n, то все параметры могут быть найдены путем решения системы уравнений вариационных связей. Если m < n, то для определения параметров нужно составить систему уравнений, в которой число определяемых параметров было бы равно числу уравнений, и среди уравнений содержались бы уравнения (7.7.1). Систему уравнений получим из требования экстремума некоторой функции параметров, несущей определенный геометрический смысл. Это требование является критерием поведения параметров связей. Для вариационных связей, управляющих координатами точек и размерными параметрами, критерием поведения служит требование минимума суммы квадратов изменений варьируемых параметров, то есть минимума функции

,

где  – исходные значения варьируемых параметров.


Лекция № 14

7.8 Вариационные связи двухмерных точек

Применим метод минимизации изменений связанных параметров для вариационных связей двухмерных геометрических объектов в декартовой прямоугольной системе координат.

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

Размер вдоль координаты. Размер вдоль одной координаты между двумя точками  и  описывается одним из уравнений

, или , (7.8.1)

где d – требуемый размер. Пусть до постановки размера положение точек описывалось радиус-векторами  и . Для того, чтобы поведение точек при установки размера было симметричным, потребуем, чтобы сумма квадратов перемещений связанных точек

(7.8.2)

была минимальна. Для определенности будем считать, что размер поставлен вдоль координат x. Необходимым условием минимума функции (7.8.2) при условии (7.8.1) является равенство нулю частных производных по параметрам , , , ,  функции

(7.8.3)

Искомые координаты точек и параметр  найдем из системы уравнений

,   , (7.8.4)

,   .

Данная система уравнений имеет решение

,    

,    (7.8.5)

.

Размер вдоль направления. Размер вдоль заданного направления между двухмерными точками  и  описывается уравнением (7.3.10), которое в координатной форме имеет вид

, (7.8.6)

где  – задающий направление двухмерный вектор единичной длины. Найдем положение точек из условия минимума их суммарного перемещения (7.8.2). В соответствии с методом Лагранжа составим функцию

(7.8.7)

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

В результате получим решение

,

,

, (7.8.8)

,

.

Перемещение точек производится вдоль вектора  на одинаковое расстояние от исходного положения точек.

Линейный размер. Линейный размер на плоскости между двумя точками  и  описывается уравнением (7.3.1), которое в координатной форме имеет вид

. (7.8.9)

Для симметричного поведения точек при установки размера потребуем, чтобы суммарное перемещение связанных точек было минимальным. Необходимым условием минимума функции (7.8.2) при условии (7.8.9) является равенство нулю частных производных по параметрам функции

(7.8.10)

Решение имеет вид:

,   ,

,   , (7.8.11)

.

где . Перемещение точек производится вдоль прямой линии, проходящей через точки  и , на одинаковое расстояние.

Если точки  и  входят в структуру данных отрезка, то с помощью связей

или ,

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

(7.8.12)

получим систему уравнений

,   ,   . (7.8.13)

Ее решение равно

,   ,   . (7.8.14)

Симметрия двух точек. Рассмотрим симметрию точек  и  относительно прямой линии

. (7.8.15)

Симметрия точек относительно прямой линии описывается двумя уравнениями

(7.8.16)

где вектор  ортогонален вектору . Пусть точка  имеет координаты х и у. Составим функцию

(7.8.17)

Систему уравнений для определения положения точек получим из равенства нулю частных производных функции (7.8.17)

,   ,

,   ,

,   .

Угловой размер между тремя точками на плоскости. Угловой размер на плоскости между тремя точками ,  и  описывается уравнением (7.3.16), где

, (7.8.18)

. (7.8.19)

Величина s равна произведению длин векторов  и  на . Величина c равна произведению векторов  и  на . Угловой размер на плоскости связывает шесть параметров. Составим функцию

, (7.8.20)

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

,

,

,

, (7.8.21)

,

,

.

Решение этой системы определит положение точек при заданном угле .

7.9 Вариационные связи двухмерных линий

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

Пусть даны два отрезка прямых

, (7.9.1)

, (7.9.2)

построенных по точкам , , , . На данные четыре точки можно наложить вариационную связь, определяющую угол между двумя отрезками  и . Эта связь аналогична угловому размеру и описывается тем же уравнением (7.3.16), где  – заданный угол. Синус и косинус угла пропорциональны величинам:

, (7.9.3)

. (7.9.4)

В нашем случае уравнение (7.3.16) связывает восемь параметров.

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

. (7.9.5)

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

(7.9.6)

где , , ,  – исходные положения точек, в общем случае не удовлетворяющие уравнению (7.9.5).

Параллельность отрезков. Другим частным случаем связи (7.3.16) является вариационная связь, устанавливающая параллельность отрезков. Она определяется уравнением

. (7.9.7)

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

(7.9.8)

Касание сплайнов. Рассмотрим вариационные связи касания линий друг друга. Пусть даны две NURBS кривые. Одна из них описывается функцией

,   , (7.9.9)

и построена на точках , i = 1, 2, …, n с весами , а другая описывается функцией

,   , (7.9.9)

и построена на точках , j = 1, 2, …, k с весами . Найдем две наиболее близкие друг другу точки  и  на этих кривых, одна – на первой, другая – на второй, касательные в которых параллельны. Эти точки должны удовлетворять уравнениям

,   . (7.9.10)

Пусть этим точкам соответствуют параметры  и  (рис. 7.9.1).

Точки на кривых выражаются в виде сумм

,            (7.9.11)

,         (7.9.12)

где

,   .

Пусть точки имеют координаты , i = 1, 2, …, n, , j = 1, 2, …, k. Если бы точки  и  совпали, то являлись бы решением задачи касания кривых (7.9.8) и (7.9.9). Поэтому в качестве уравнения связи возьмем уравнение

(7.9.13)

Составим функцию суммарного перемещения точек касающихся кривых совместно с уравнением связи (7.9.13). Эта функция имеет вид

. (7.9.14)

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

Касание отрезка и окружности. Решим задачу касания в частных случаях. Касание отрезка  и окружности ,

(7.9.15)

описывается уравнением

(7.9.16)

где ,  – начальная и конечная точки отрезка, r – радиус окружности,  – центр окружности,  – значение параметра отрезка, соответствующее проекции центра окружности на отрезок. В данном случае радиус окружности также является варьируемым параметром. Параметр , соответствующий проекции центра окружности на отрезок, будем вычислять на каждой итерации. Систему уравнений для определения параметров связи получим, приравняв нулю частные производные по параметрам функции

(7.9.17)

где , ,  – исходные положения точек , , ,  – исходное значение окружности.

Касание окружностей. Касание двух окружностей

(7.9.18)

(7.9.19)

описывается уравнением

. (7.9.20)

В данном случае радиусы окружностей также являются варьируемым параметрами. Уравнение (7.9.20) связывает шесть параметров. Систему уравнений для определения параметров связи получим, приравняв нулю частные производные по параметрам функции

(7.9.21)

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

,   ,

,   , (7.9.22)

,   ,   ,

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

7.10 Формирование и решение системы уравнений связей

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

с помощью вариационных связей осуществляется управление сразу всеми связанными объектами. Как правило, на одни и те же параметры наложено несколько вариационных связей. Каждая связь представляет собой некоторый вариационный объект, который изменяет параметры геометрических объектов. Различные типы вариационных связей геометрических моделей представлены на рис. 7.10.1. Каждая связь имеет одно или несколько уравнений и перечень параметров, участвующих в каждом уравнении.

Рис. 7.10.1 – Типы вариационных связей

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

Пусть задан набор вариационных связей, приводящий к системе m уравнений

(7.10.1)

для  изменяемых параметров  геометрических объектов. Число уравнений связей, как правило, меньше числа связанных параметров. Для того, чтобы решить систему уравнений связей, требуется сформулировать критерий поведения связанных геометрических объектов, который бы позволил решить систему уравнений связей. Простым и эффективным критерием поведения параметров является требование минимума суммы квадратов изменений параметров. Этот критерий выражается минимумом функции

(7.10.2)

Поиск минимума функции (7.10.2) при условии выполнения связей (7.10.1) приводит к задаче нахождения минимума функции

(7.10.3)

Для выполнения необходимого условия минимума указанной функции требуется наряду с (7.10.1) выполнение уравнений

(7.10.4)

где  – подлежащие определению совместно с параметрами  коэффициенты. В конечном итоге мы пришли к системе n + m уравнений (7.10.1) и (7.10.4) для n + m неизвестных ,.


Лекция № 15

8 Вычисление геометрических характеристик

8.1 Возможности геометрической модели. Геометрические модели хранения и
визуализации

Геометрическая модель позволяет определить массово-центровочные и инерционные характеристики проектируемого объекта, выполнить изменения длин и углов его элементов. Она дает возможность произвести расчет размерных цепей и определить собираемость проектируемого объекта. Если объект представляет собой механизм, то на модели можно проверить его работоспособность и выполнить расчет кинематических характеристик.

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

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

8.2 Геометрические характеристики плоских сечений

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

Периметр сечения. Периметр плоского сечения равен длине ограничивающего сечение контура и определяется интегралом

.

В общем случае периметр можно вычислить как сумму длин сегментов контура.

Площадь и центр масс сечения. Площадь и статические моменты сечения относительно осей координат определяется формулами

, (8.2.1)

,   , (8.2.2)

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

,   . (8.2.3)

Точка, при переносе в которую начала координат статические моменты сечения становятся равными нулю, является центром масс сечения. Координаты центра масс сечения определяются формулами

,   . (8.2.4)

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

Моменты инерции сечения. Осевые и центробежный моменты инерции сечения определяются интегралами

,   ,   . (8.2.5)

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

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

, (8.2.6)

, (8.2.7)

. (8.2.8)

Заметим, что величина  одинакова в обеих системах координат. Эта величина называется полярным моментом инерции сечения.

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

, (8.2.9)

. (8.2.10)

Вычисление моментов инерции сечения.

Формулы для определения площади, статистических моментов и моментов инерции плоского сечения через криволинейные интегралы по ограничивающим линиям:

, (8.2.11)

, (8.2.12)

, (8.2.13)

, (8.2.14)

, (8.2.15)

. (8.2.16)

Если плоское сечение ограничено одним внешним контуром, то криволинейный интеграл должен быть взят при обходе контура против часовой стрелки. Если сечение кроме внешнего контура ограничено еще и внутренними контурами, то к интегралу по внешнему контуру должны быть добавлены интегралы по внутренним контурам, вычисленные при их обходе по часовой стрелке. Таким образом, в формулах (8.2.11) – (8.2.16) стоят суммы интегралов по всем контурам, ограничивающим плоское сечение и имеющим соответствующую ориентацию.

8.3 Длина и центр масс кривой линии

Длина кривой. Длина кривой определяется интегралом

. (8.3.1)

Для двухмерной кривой координату z радиус-вектора кривой следует опустить. Если для кривой определить функцию распределенной по ней плотности , то интеграл

(8.3.2)

определит массу кривой.

Центр масс кривой. Пусть на кривой определена функция распределенной по ней плотности . Тогда интегралы

(8.3.3)

(8.3.4)

(8.3.5)

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

,   ,   .

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

,   ,   . (8.3.6)

Для кривой, так же как и для тела, можно определить моменты инерции. Формулы для их вычисления аналогичны формулам для вычисления моментов инерции тел, с той лишь разницей, что интегрирование ведется не по объему, а по кривой линии.


Лекция № 16

8.4 Площадь поверхности, объем и центр масс тела

Площадь поверхности тела. Площадь поверхности тела слагается из площадей поверхности его граней. Площадь S каждой поверхности определяется интегралом

. (8.4.1)

Площадь поверхности тела равна сумме площадей граней

, (8.4.2)

где ,  – параметры i-й грани тела,  – область параметров поверхности i-й грани тела.

Объем тела. Объем тела определяется формулой

. (8.4.3)

Пусть плотность тела  постоянна по всему объему. Тогда масса тела определяется формулой

. (8.4.4)

Если плотность тела не является постоянной, то нам не удастся перейти от интеграла по объему к интегралу по поверхности тела при вычислении его массы. В формулах (8.4.3) и (8.4.4) подразумевается суммирование по граням тела. Заметим, что  есть нормаль грани тела, а не поверхности этой грани. Нормаль грани всегда направлена наружу тела, а нормаль поверхности, на которой базируется грань, может совпадать с нормалью грани или может иметь противоположенное грани направление. В общем случае тело может иметь пустоты внутри. Тогда оно описывается несколькими замкнутыми оболочкам. одна из которых является внешней, а остальные внутренними и полностью лежат внутри внешней оболочки. Нормаль к любой точке направлена вне объема тела. Интегрирование в (8.4.3) и (8.4.4) выполняется по всем оболочкам, как внешней оболочке, так и внутренним оболочкам.

Статические моменты тела. Центр масс тела определяется с помощью статических моментов. Статические моменты тела относительно координатных плоскостей соответственно равны объемным интегралам

, (8.4.5)

, (8.4.6)

, (8.4.7)

где  – плотность тела. Интегрирование выполняется по объему тела. Пусть плотность тела постоянна по всему объему. Это позволит нам при вычислении геометрических характеристик тела перейти от интегрирования по объему к интегрированию по поверхности тела. Статические моменты можно вычислить с помощью поверхностных интегралов по формулам

, (8.4.8)

, (8.4.9)

. (8.4.10)

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

(8.4.11)

Центр масс тела. Точка, при параллельном переносе в которую начала координат статические моменты тела становятся равными нулю, называется центром масс тела. Формула

(8.4.12)

определяет радиус-вектор центра масс тела. Координаты центра масс вычисляются формулами

,   ,   . (8.4.13)

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

Лекция № 17

8.5 Моменты инерции тела

Моменты инерции тела определяются объемными интегралами

(8.5.1)

а также

(8.5.2)

где x, y, z – компоненты радиус-вектора . Величины  называются моментами инерции тела относительно соответствующих координатных осей, а величины  называются центробежными моментами инерции тела.

Тензор инерции. Моменты инерции вводятся при рассмотрении движения (вращения) твердого тела, имеющего неподвижную точку. Поместим начало координат в неподвижную точку, тогда скорость некоторой точки тела определяется соотношением , где  – вектор мгновенной угловой скорости тела. Вектор момента количества движения тела равен

. (8.5.3)

Проекции вектора момента количества движения тела на оси декартовой системы координат равны

,

,

,

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

, (8.5.4)

где величина J определяется матрицей, элементами которой являются осевые моменты инерции (8.5.1) и центробежные моменты инерции (8.5.2), взятые с противоположенным знаком:

. (8.5.5)

Моменты инерции тела (с точностью до знака) являются компонентами тензора J, который называется тензором инерции. Компоненты тензора инерции зависят от ориентации системы координат, но тензор инерции представляет физический объект, не зависящий от ориентации системы координат. Тензор инерции характеризует инертность тела при его вращении вокруг некоторой неподвижной точки и является аналогом массы, которая характеризует инертность тела при поступательном движении. Тензор инерции имеет различные значения в различных точках тела (является функцией неподвижной точки тела). Он образует тензорное поле.

Собственные значения матрицы инерции. В формуле (8.5.4) вектор количества движения  в общем случае не совпадает по направлению с вектором угловой скорости . Это приводит к тому, что при вращении тела вокруг заданной оси, в точках крепления тела возникают зависящие от модуля угловой скорости реакции. Такое вращение является динамически неуравновешенным. Найдем такие направления для тензора инертности J, при которых вектор количества движения  совпадает по направлению с вектором угловой скорости . Пусть это направление определяется единичным вектором , тогда вектор , будет пропорционален вектору . Запишем это условие в виде равенства

, (8.5.6)

где  – неизвестный скаляр, Е – единичная матрица ранга тензора J. Уравнение имеет нетривиальное решение, когда определитель системы проекций данного условия на оси координат равен нулю:

. (8.5.7)

Это равенство выполняется, когда скаляр  удовлетворяет условию

, (8.5.8)

где

,

,

.

Уравнение (8.5.8) называется характеристическим уравнением тензора инертности. Корни характеристического уравнения , i = 1, 2, 3 являются собственными значениями матрицы моментов инерции.

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

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

Вычисление моментов инерции тела. Компоненты тензора инерции тела определяются по формулам:

, (8.5.9)

, (8.5.10)

, (8.5.12)

, (8.5.13)

, (8.5.14)

, (8.5.15)

В формулах (8.5.9) – (8.5.15) подразумевается суммирование по граням тела.  – нормаль граней тела. Формулы (8.5.9) – (8.5.15) позволяют вычислить моменты инерции в той системе координат, в которой задано тело.

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

, (8.5.16)

, (8.5.17)

, (8.5.18)

, (8.5.19)

, (8.5.20)

, (8.5.21)

где

,

,

,

,

,

.




1. Тема 1 Вопросы- Финансы как экономическая категория Роль и значение финансов в экономике Фун
2. Реферат на тему Земельная рента
3. а 20 рік період Шифр показників пов
4. психологической компетентности людей и оказания психологической помощи как отдельному человеку так и груп
5. Бухгалтерский учет в торговле и строительств
6. В тени пирамид и храмов
7. разлетаются в разные стороны
8. АЬВААИД МУХАММЕД ИБН АХМЕД 1126 1198 Энциклопедически образованный ученый философ представитель восточног
9. МИНУСИНСКИЙ МЕДИЦИНСКИЙ ТЕХНИКУМ КУРСОВАЯ РАБОТА Физическое воспитание детей дошк
10. ий Группа-930193 подгруппа- 3 Клиническая база- Отделение- Преподаватель- Оцен
11. Давайте дружить
12. Вариант 1 3 b3 n4; {1;2;1;1} {2;3;1;0;} {3;1;1;2} {0;4;1;3} {1;0;2;6} {1;0;3;5}
13. Неандертальского человека повсюду где найдены его останки в верхнем палеолите сменяет человек современн.
14. Перевод с английского В
15. тема протипожежного захисту
16. Государственное и местное управление в России
17. Детские инфекционные болезни
18. Методичні рекомендації до виконання курсового проекту для студентів напряму підготовки 6
19. Виды договоров и их классификация в гражданском праве.html
20. Экзаменационные вопросы по методологии науки