Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

7577

.pdf
Скачиваний:
0
Добавлен:
23.11.2023
Размер:
1.16 Mб
Скачать

При этом если ( ) , то получим кривую в бирадиальной параметризации. Например, при 2a получим эллипс с полуосями a и b ,

при 2a – гиперболу, а при a – овалы Кассини.

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

Для точечного исчисления важным является выбор параметра, который для обеспечения покоординатного расчёта должен быть аффинным инвариантом. Рассмотрим более подробно простое отношение трех точек прямой (рис. 2), которое в рамках аффинной

геометрии является инвариантом и выражается

 

 

 

следующим

соотношением

длин

 

отрезков:

Рис. 2. Простое отношение

ABC

AC

 

 

 

 

 

 

 

 

 

 

 

трех точек прямой

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CB

 

 

 

 

 

 

 

 

 

 

 

 

Представим прямую ACB (рис. 2),

как

 

 

 

вырожденный треугольник, для которого угол

 

 

 

при вершине C равен .

 

 

 

 

 

 

 

 

 

 

 

Если это угол будет равен

(рис. 3), то

Рис. 3. Простое отношение

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

трёх точек прямой с изломом

получим прямоугольный треугольник, в

 

 

 

котором

отношение

отрезков

 

определяется

через

стандартные

тригонометрические функции:

ABC

AC

 

b

ctgA .

Аналогичным образом,

 

 

 

 

 

 

 

 

 

 

CB

 

a

 

 

 

представим стандартные синус и косинус с помощью простого отношения трёх

точек

 

 

прямой

 

с

изломом:

 

CAB

CB

sin A

, CBA

AC

cos A.

 

 

 

 

 

BA

 

 

 

BA

 

 

Если угол

при вершине C будет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4. Определение обобщённых

не кратным

2 (рис. 4), то получим более

тригонометрических функций

общий

случай,

для

которого

простое

 

 

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

11

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

CBA

 

AC

 

sin

sin

 

 

cos

.

 

 

 

 

 

 

 

 

BA

 

 

sin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CAB

CB

 

sin

sin

 

 

cos

 

.

 

 

 

 

 

 

BA

 

 

sin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BAC

CB

 

sin

 

 

tg .

 

 

AC

cos

 

 

 

 

 

 

 

 

 

 

 

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

В работе были сформулированы и доказаны некоторые свойства ОТФ.

 

sin ( ) sin cos ( ) sin cos ;

 

 

sin ( ) sin cos sin cos ;

 

 

sin sin sin (sin 1);

 

sin

 

2 sin

 

cos

cos

( ) 2sin

 

cos ;

 

 

 

 

 

 

 

 

 

 

 

 

sin

 

 

sin( )

.

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

sin sin

 

 

ОТФ были использованы для задания дуг плоских кривых с помощью радиальной и угловой параметризаций, поскольку они позволяют работать с любым треугольником как с прямоугольным, что значительно облегчает получение уравнений дуг плоских кривых в нужной на практике параметризации. Например, получено уравнение дуги окружности, проходящей через 3 наперёд заданные точки (рис. 5):

M A C sin ( )sin B C sin ( )sin C,

где 0 .

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

12

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

Рис. 5. Пример использования ОТФ для моделирования дуги окружности, проходящей через 3 точки, и отсека поверхности на её основе

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

 

M ( A C)

 

asin ( - )

(B C)

 

 

 

 

 

 

 

b

 

 

 

 

 

C,

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

a sin ( - )

b

 

asin ( - )

b

 

где 0 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Также

 

в

работе

 

 

было

показано

 

 

 

 

 

 

 

 

 

 

 

 

использование ОТФ для построения специальных

 

 

 

 

 

 

 

 

 

 

 

 

кривых типа «синусоида». Осью такой кривой

 

 

 

 

 

 

 

 

 

 

 

 

первого поколения является окружность. Осью

 

 

 

 

 

 

 

 

 

 

 

 

кривой каждого следующего поколения является

 

 

 

 

 

 

 

 

 

 

 

 

кривая

предыдущего

поколения.

На примере

 

 

 

Рис. 6. Графическая

показаны специальные

кривые

двух поколений

 

 

 

 

 

визуализация специальных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(рис. 6). Точечное уравнение такой кривой в

 

 

 

кривых типа «синусоида»

общем виде выглядит следующим образом:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Kt

 

t

1 k 2 2k cos k

 

sin B C

b

 

t

1 k 2

2k cos k

sin

C,

A C

 

 

 

i

i

i

 

 

 

 

 

i

 

i

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 1

 

 

 

k

 

 

 

 

 

 

 

 

 

a

 

i 1

 

 

k

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

где

Kt

текущая

точка

дуги

специальной кривой

 

типа

«синусоида»

t го

поколения.

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

13

Для аналитического описания геометрических объектов многомерного пространства необходимо иметь специальный набор уравнений дуг кривых, проходящих через наперёд заданные точки. При этом особую роль играют кривые, полученные на основе проективных алгоритмов их образования, поскольку они позволяют охватить большее количество исходных точек. Обычно для полиномиальной интерполяции характерна следующая зависимость: порядок кривой на единицу меньше количества узловых точек интерполяции. Например, чтобы интерполировать 5 точек, необходимо использовать кривую 4-го порядка. Однако, из проективной геометрии известно, что кривая 2-го порядка однозначно определяется 5-ю точками, что делает её использование предпочтительней во многих случаях моделирования.

Рассмотрим геометрический алгоритм конструирования дуги AA1 A2MA3B кривой 2-го порядка (рис. 7). Точки A и

Bпредставляют соответственно начало

иконец дуги, A1, A2 , A3 ‒ точки, через которые проходит кривая 2-го порядка.

Согласно теореме Паскаля, объединяем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

противолежащие

 

 

 

 

 

 

 

 

 

 

стороны

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

шестиугольника AA1 A2MA3B (рис. 7).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тогда точки P ,

Q

 

и

R

 

 

образуют

 

 

 

 

Рис. 7. Геометрический алгоритм

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

прямую Паскаля.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

моделирования дуги кривой 2-го порядка

Точечное уравнение полученной кривой в плоскости общего положения

имеет следующий вид:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p2q2q3 1 p2q2

 

p2q2

 

 

p2

 

 

 

p1 p2q2 q2

1 tt

 

M A C

t

t

t

 

 

 

 

 

p q t p q q 1 p q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

t

 

 

 

 

 

 

 

 

 

 

 

 

2

2

 

 

 

2

2

3

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p q

 

p

p q q

 

 

1 p q

 

 

 

 

 

 

 

 

 

t

t

2

 

 

 

 

 

 

 

 

 

 

2 2

 

 

 

 

 

2

 

2 2 3

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p p q2q t

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

C,

 

 

(B C) p q t p q q 1 p q

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

2

2

3

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

2

 

2

2

 

 

3

 

2

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p q q

 

 

1 p

 

 

 

 

 

 

 

 

 

 

 

 

p q

 

p

 

 

q

 

 

 

 

 

 

 

 

t

 

t

2

 

 

 

 

 

 

 

 

 

 

2 2

 

 

 

 

 

2

 

 

 

 

2 2 3

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

где 0 p1, p2 ,q2 ,q3

1;

0 t

1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Уравнение имеет достаточно громоздкий вид, поскольку кроме точек симплекса содержит в себе ещё 3 точки, каждая из которых определяется своими параметрами. В случае конкретного расположения точек, параметрические уравнения такой кривой будут иметь более компактный вид (рис. 8).

14

 

4t 9t 0,8

x

 

 

 

 

70t

2

75t 44, 2

 

 

 

 

8t t 1

y

 

 

 

 

 

 

 

 

 

 

 

2

15t 8,84

 

14t

 

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

Также

в работе

исследованы

 

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

 

кривых 3-го порядка, проходящих через

 

наперёд

заданные

точки.

Из

 

проективной геометрии известно, что

 

пространственная кривая 3-го порядка

 

однозначно

определяется

6

своими

 

точками, не лежащими по 4 в одной

 

плоскости, или 2 точками и 4

 

бисекантами, или 3 точками и 3

 

бисекантами.

 

 

 

 

 

В работах Т. Рейе приводится

 

алгоритм

построения

кривой

3-го

 

порядка при задании двух

ее

точек и

Рис. 9. Определение общей образующей

 

двух пар скрещивающихся прямых, в соответствии с которым сначала необходимо определить линию пересечения плоскостей, полученных на основе двух исходных точек A5 и A6 (рис. 9). При этом искомая линия строится по точкам пересечения следов плоскостей в гранях тетраэдра A1 A2 A3 A4 и эти точки являются следами прямой в соответствующих гранях. По этой прямой пересекаются две линейчатые поверхности. Тогда искомая прямая I123 J134 будет их общей образующей. Линией пересечения двух линейчатых поверхностей второго порядка с общей образующей является искомая кривая 3-го порядка.

Далее рассмотрим геометрический алгоритм построения текущей точки дуги кривой 3-го порядка методом подвижного симплекса (рис. 10).

Зададим параметрическую точку T , которая двигаясь по прямой A1 A3 , создает подвижный симплекс TI123 J134 , вращающийся вокруг оси I123 J134 . Этот симплекс, пересекаясь с противоребрами тетраэдра A1 A2 A3 A4 , создает

15

случае
Рис. 10. Геометрический алгоритм построения дуги кривой 3-го порядка

соответственно точки T12 , T23 , T34 и T41 . Текущую точку M кривой 3-го порядка определим пересечением

прямых T12T34 и T23T41 .

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

Вчетвёртой главе

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

проходящих через наперёд заданные точки, на основе кривых Безье. Алгебраические кривые, проходящие через наперёд заданные точки,

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

Исходное точечное уравнение кривых Безье, которые в общем

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

n 1 -й

кривизны в точечной форме имеет следующий вид:

 

n

n!

 

 

 

M Ai 1

 

 

 

t n iti ,

(1)

 

 

i! n i !

i 0

 

 

 

где t 1 t ‒ дополнение параметра t до 1.

Использовав равномерное распределение текущего параметра t nj ,

получим:

16

n

n! n j

n i

 

j

i

 

 

 

 

M j 1 Ai 1

 

 

 

 

 

 

 

.

2)

 

 

 

 

i 0

i! n i !

n

 

n

 

Переопределим точки ломаной линии A1 A2...An , An 1 через точки M1M2...Mn , Mn 1 , которые принадлежат дуге кривой, определенной с помощью уравнения (2), пропорционально изменяя значение параметра t от 0 до 1. В результате получим систему n 1 линейных алгебраических уравнений, каждая строка которой определяется следующим уравнением:

n

n!

 

 

 

 

n j n i j i Ai 1 nnM j 1.

(3)

i! n i !

i 0

 

 

Решив эту систему уравнений (3) методом Крамера и подставив в исходное уравнение, получим уравнение дуги кривой, проходящей через наперёд заданные точки M1M2...Mn , Mn 1 . Потом полученный результат подставляем в исходное уравнение (1). Используя предложенный способ, получены дуги кривых 2-10 порядка, проходящие соответственно через 3-11 точек. Например:

1. Дуга кривой 2-го порядка, проходящая через 3 наперед заданные точки:

MM1t 1 2t 4ttM2 M3t 2t 1 .

2.Дуга кривой 3-го порядка, проходящая через 4 наперед заданные

точки:

M M1 t 3 2,5t 2t tt2 M 2 9t 2t 4,5tt 2M3 4,5t 2t 9tt2 M 4 t 2t 2,5tt 2 t3 .

3. Дуга кривой 4-го порядка, проходящая через 5 наперед заданных точек:

M 16t

2

M 16 t

4 3

M M1

3t 643 t 2t 2

3t 643 t 2t 2

 

 

4

 

13

 

3

13

 

2

2

 

 

 

3

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

t t

 

 

 

t t

 

tt

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

3

 

 

 

 

 

 

 

 

 

 

16 tt3 M3 12t 3t 40t t 2

3

16tt3 M 5 t 3t 13 t 2t 2 13

3 32

12tt3

tt3 t 4 .

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

17

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

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

xi nlit bi ,

где xi i-я ось проекций глобальной системы координат; n − порядок дуги кривой; bi − начальное значение фактора влияния, соответствующее i-й оси проекций; li − шаг равномерного распределения проекции исходных точек на i- ю ось.

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

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

 

 

 

 

 

 

3

 

B C

t3

 

 

M

 

A C

 

 

t

C.

(4)

2

 

 

 

 

 

 

 

 

 

 

 

1

tt

1 tt

 

 

 

 

 

 

 

18

Рассмотрим пример одного из геометрических алгоритмов моделирования одномерного обвода ГА10. Пусть задан дискретный ряд точек:

 

Ai , Ai 1 ,

 

Ai 2 , …, An .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.

 

Формируем массив значений i ,

i 2,3,..., n 2

используя следующее

соотношение:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xA

xA

yA

 

yA

yA

 

xA

xA

 

 

yA

xA

 

yA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 1

 

 

i 3

 

 

 

i 2

i 1

 

i 3

i 2

i 3

 

 

 

 

i 1

i 1

 

i 3 .

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

xA xA

yA

yA

xA xA

yA yA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

i 2

 

 

 

 

i 1

i 3

 

 

i 1

i 3

 

 

 

 

 

 

i

 

i 2

 

 

 

 

 

 

 

 

 

 

 

2.

 

Определяем

 

массив

координат

точек

 

Bi ,

i 2,3,..., n 2

 

для

промежуточных точек обвода используя соотношение:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bi Ai Ai 2 i Ai 2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.

 

Определяем

 

массив

координат

точек

 

Ci ,

i 2,3,..., n 2

 

для

промежуточных точек обвода: Ci Ai Ai 1 Bi .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.

 

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

 

A1 A2

 

,

 

A1 A3

 

,

 

 

 

 

 

 

An 2 An 1

 

и

 

An 2 An

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.

 

Определяем координаты точек C1 и Cn 1

 

на

первом

и

последнем

участках:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C A A

 

 

A1 A2

 

 

 

A ,

C

 

A

A

 

 

 

 

An 2 An 1

 

 

A

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

A A

 

 

2

 

A A

 

 

 

 

 

 

 

 

 

1

1

3

 

 

 

 

2

 

n 1

 

n 2

n

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 2

n

 

 

 

 

 

 

 

 

 

 

 

 

6.

 

Формируем

массив

линий

 

обвода

Mi ,

 

 

i 1,2,..., n 1

используя

уравнение (4).

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

Пусть задано m дискретно заданных кривых, каждая из которых состоит из n точек:

A1,1

A1, j

A1,n

 

Ai,1

Ai, j

Ai,n

 

Am,1

Am, j

Am,n

 

Матрицу точек (6) можно

записать

символьно:

Ai, j , i 1,2,...,m;

j 1,2,...,n. Чтобы построить составную поверхность через

m n дискретных

точек, сформируем опорные линии в виде

обводов с параметром u и

объединим их образующей – обводом с параметром v .

 

 

19

 

 

1.

Формируем массив значений i,

j , i 1,2,..., m ,

 

j 2,3,..., n 2 :

 

 

 

 

 

 

 

 

 

 

 

xA

xA

3

 

yA

2

 

yA

 

 

 

 

yA

 

xA

 

xA

 

 

yA

 

 

xA

 

 

 

yA

3 .

 

 

 

 

 

i , j 1

 

 

 

 

 

 

 

i , j

 

 

 

 

 

i , j

 

 

 

 

 

 

 

i , j 1

 

 

 

 

i , j 3

 

 

 

i , j

2

 

 

 

 

 

i , j 3

i , j 1

 

 

i , j 1

 

i , j

 

 

i, j

 

 

 

 

xA

 

 

xA

 

yA

 

 

 

yA

 

xA

 

 

 

 

xA

 

 

 

 

 

yA

 

 

yA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i , j

 

 

 

 

 

i , j 2

 

 

 

 

i , j 1

 

 

 

 

 

 

i , j 3

 

 

 

 

 

i , j 1

 

 

 

 

i , j 3

 

 

i , j

 

 

 

 

 

i , j 2

 

 

 

 

 

 

 

 

2.

Определяем

 

 

 

массив

 

точек Bi, j ,

 

 

i 1,2,..., m ,

 

 

 

j 2,3,..., n 2

 

 

для

промежуточных точек обвода:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Bi, j Ai, j

 

Ai, j 2 i, j

 

Ai, j 2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.

Определяем

 

 

 

массив

 

точек Ci, j

,

 

 

i 1,2,..., m ,

 

 

 

j 2,3,..., n 2

 

 

для

промежуточных точек обвода: Ci, j Ai, j

Ai, j 1 Bi, j .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.

Вычисляем длины отрезков

 

 

Ai,1 Ai,2

 

,

 

 

Ai,1 Ai,3

 

,

 

 

 

Ai,n 2 Ai,n 1

 

 

и

 

 

 

Ai,n 2 Ai,n

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 1,2,..., m для крайних точек обвода:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xA

 

 

 

 

 

 

 

 

2 yA

 

 

 

 

 

 

 

 

 

2 zA

 

 

 

 

 

2

 

 

Ai,1 Ai,2

 

 

 

Ai,1 Ai,2 2

 

 

 

 

 

 

xA

 

 

yA

zA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i ,1

 

 

 

i ,2

 

 

 

 

 

 

 

i ,1

 

 

 

 

 

i ,2

 

 

 

 

 

 

 

 

i ,1

 

 

 

 

i ,2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ai,1 Ai,3

 

 

 

 

 

Ai,1 Ai,3 2 ,

 

 

 

 

Ai,n 2 Ai,n 1

 

 

Ai,n 2 Ai,n 1 2 ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ai,n 2 Ai,n

 

 

 

 

Ai,n 2 Ai,n 2 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.

Определяем точки Ci,1

 

и

 

Ci,n 1 ,

i 1,2,..., m

 

на

 

 

первом и

 

последнем

участках обвода:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ci,1 Ai,1 Ai,3

 

 

Ai,1 Ai,2

 

 

 

Ai,2 ,

 

Ci,n 1 Ai,n 2 Ai,n

 

 

Ai,n 2 Ai,n 1

 

 

 

 

Ai,n 1,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

A A

 

 

2

 

A

 

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i,1 i,3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i,n 2 i,n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.

Формируем

 

 

массив

 

опорных

 

 

линий

 

составной

поверхности

 

Ni, j ,

i 1,2,..., m ,

j 1,2,..., n 1:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ni, j Ai, j Ci, j

 

u

 

 

 

Ai, j 1 Ci, j

 

 

 

 

Ci, j .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 uu

 

1 uu

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7.

Формируем массив значений i,

 

j , i 2,3,..., m 2 ,

 

 

j 1,2,..., n :

 

 

 

 

 

 

 

 

 

 

xN

i

 

xN

i 3, j

yN

 

yN

i 1, j

 

 

yN

i 3, j

xN

i 2, j

xN

i

3, j

yN

 

 

xN

i 1, j

yN

i 3, j .

 

 

 

1, j

 

 

 

 

 

 

 

 

 

 

 

 

i 2, j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i 1, j

 

 

 

 

 

 

 

i, j

 

 

 

 

xN

 

 

xN

 

 

 

 

 

yN

 

 

 

 

yN

 

 

 

 

 

xN

 

 

 

 

xN

 

 

 

 

 

yN

 

yN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i , j

 

 

 

 

 

 

 

i 2, j

 

 

 

 

i 1, j

 

 

 

 

 

 

 

i 3, j

 

 

 

 

 

 

i 1, j

 

 

 

 

 

i 3, j

 

 

 

i , j

 

 

 

i 2, j

 

 

 

 

 

 

 

8.

Определяем

 

 

 

массив

 

точек Pi, j

,

 

 

i 2,3,..., m 2 ,

 

 

j 1,2,..., n

 

 

для

промежуточных точек обвода:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Pi, j Ni, j

Ni 2, j i, j

 

Ni 2, j .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9.

Определяем

 

 

 

массив

 

точек Qi, j ,

 

 

i 2,3,..., m 2 ,

 

 

j 1,2,..., n

 

 

для

промежуточных точек обвода: Qi, j

Ni, j

 

Ni 1, j

Pi, j .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]