Параметрические кубические кривые. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Параметрические кубические кривые.



Параметрическая кубическая кривая задаётся тремя уравнениями.

 
 


x(t)=axt3+bxt2+cxt+dx

y(t)=ayt3+byt2+cyt+dy

z(t)=azt3+bzt2+czt+dz

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

 

 

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

1) Рассмотрим форму Эрмита.

Исходными данными являются точки: касательная P1, конечная P4 и касательная вектора в этих точках. Это один приближающий участок.

 

 

R1

P4 R4


P1

 

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

 

R4

R1

P4 R4 P4

 

P1

 

 

Таких участков может быть сколь угодно много.

X(0) = P1x

X’(0) = R1x

Аналогично по всем координатам. В конечной точке P4:

X(1) = P4x

X’(1) = R4x

 

это равно Сх

 
 


T

 

Аналогично z(t).


Совершенно аналогично для производных.

 

y’(t) и z’(t) аналогично.

Подставим в x(t) и x’(t) 0 и 1:

x(0) = P1x = [0, 0, 0, 1]* Cx

x(1) = P4x = [1, 1, 1, 1]* Cx

x’(0) = P1x = [0, 0, 1, 0]* Cx = R4x

x’(1) = P4x = [3, 2, 1, 0]* Cx = R4x

 

 

 

Эрмитова

матрица Ghx

x(t)=TMhGhx

y(t)=TMhGhy

z(t)=TMhGhz

Свойства.

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

2. Вектора R4 и R4‘ не стыкуются, следовательно куски стыкуются не гладко.

 

2) РассмотриРаР

м форму Безье. Запись выглядит чуть лучше.

При записи в форме Безье исходными являются координаты четырёх точек.

 
 


P2

 
 

 


P1 P4

 
 

 


P3

 

P1, P2, совпадают с вектором касательной в точке P1; P3, P4 – с вектором касательной в точке P4. И к ним опущены перпендикуляры.

Исходные данные – координаты точек P1, P2, P3, P4. Математически вывели, что касательный вектор определяется по формуле:

Вектор Эрмита:

матрица вектор

Безье Безье

Тогда x(t)=T*Mhb*Mh*Gb=T*Mb*Gb, где

Таким образом, матрицы Mh(цифровая)b, Mb – числовые. В Gb подставляем координаты четырёх точек и получаем пространственное представление кривой третьего порядка.

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

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

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

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

Пример.

 

 

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

x(t) = T*Ms*Gsx, где

, где 2 £ i £ n-2

Берём первые 4 точки, рисуем участок, затем сдвиг на одну и т.д. Эти кусочки стыкуются друг с другом. Линия эта непрерывна, выполняется функция частичного сглаживания далеко стоящих точек. В настоящее время широко применяется в описании сложных 3D объектов. Особенно выгодно, когда есть макет изделия, если его склеить, получим погрешности, применим В-сплайн, получим обтекаемую поверхность. Применяется в самолётостроении.

МАТРИЧНЫЕ ПРЕОБРАЗОВАНИЯ ОБЪЕКТОВ

 

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

1. Сдвиг.

y

 
 


Сдвиг точки по OY обозначается Dy,

P’(x’,y’) по OX обозначается Dx,

       
 
   
 


Dy x’ = x + Dx,

P(x,y) y’ = y + Dy,

 
 


Важен знак коэффициента D.

x


Dx

[x’, y’] = [x, y] + [Dx, Dy]

P’ = P + T

Теоретически для любого изображения нужно выполнить такие действия над каждой точкой изображения. Если имеем дело с векторным изображением, то для отрезка (А, В) достаточно выполнить перенос концов отрезка (А’, В’). Данное утверждение справедливо для действий масштабирования и поворота. Три действия сдвиг, масштаб и поворот позволяют получить абсолютно любое пространственное преобразование объекта.

2. Масштабирование.

y

       
 
   
 

 

 


P’(x’, y’)

P(x,y)

 

x

При масштабировании координаты точки умножаются на коэффициент масштабирования.

 
 


x’ = x * Sx

y’ = y * Sy

 

Запишем в матричной форме коэффициент масштабирования S.

Тогда

P’ = P * S

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

Для простоты промасштабируем по обоим осям.

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

1) y

Промасштабируем его по обеим осям с коэффициентом 2.

P2(1,1) Sx = Sy = 2.

P3(0.5;0.5)

x

P1(0,0)

Тогда получится

y

 

P2‘(2, 2)

 

 

P1‘(0,0)

 
 


2) Возьмём P3(0.5;0.5). Выполним масштаб по обеим осям с тем же коэффициентом. Зрительно отрезок как бы сместился вправо. При масштабировании это происходит всегда.

y

P2(2,2)

 

 

P3(1,1)

 


x

 


3. Поворот. Если известен угол поворота a, то

y

P2‘(x’,y’) x’ = x cos a – y sin a

y’ = x sin a + y cos a

 

 

a P(x,y)

 
 

 


x

В матричной форме

Или P’ = P * R, где R – это матрица поворота. При движении против часовой стрелки угол поворота считается положительным, при движении по часовой стрелке угол поворота отрицательный. Недостатки в преобразованиях: сдвиг выполняется через сложение, а масштаб и поворот через умножение. При достаточно сложном объекте это неудобно. Чтобы уйти от сложения в сдвиге объекта, из математики позаимствовали понятие однородных координат.

P(Wx,Wy,W)

То есть, для точки в двухмерном пространстве появляется фиктивная третья координата:

Тогда сдвиг выполняется в матричной форме через умножение P’ = P * T. Таким же образом третья координата добавляется в действие масштабирования и поворота.

Для масштабирования:

 

 

 

Для поворота:

P’ = P * T * S *R – даёт наименьшее количество операций умножения.

 

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

 

       
 
   
 


P(x,y) – над которой выполняется преобразование

 

 
 


P1(x1,y1)

 

 
 

 


Результирующее положение точки P’(x’,y’). Относительно начала координат мы знаем. Проще всего так:

1) Сдвинем начало координат в точку P1(x1,y1).

2) Выполним все нужные действия над точкой P.

3) Вернёмся к исходной системе координат.

 

Сдвиг всей картинки на величину –x1 и –y1:

сдвиг действия возврат

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

Например.

– результат – это матрица размером 3х3.

Результат умножения таких матриц имеет вид:

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

Очень часто применяется способ упрощения реализации поворота. От кадра к кадру угол меняется не более чем на 1 градус. В этом случае косинус близок к 1, то есть cos a»1, при a £ 1°:

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

 

Матричное представление трёхмерных преобразований.

Точка представляется тремя координатами P(x,y,z). В однородных координатах:

Соответственно матрица преобразования будет иметь вид:

Поворот выполняют на основе некоторых принятых соглашений:

1) Ось вращения – OX. Положительное направление от оси OY к OZ.

2) Ось вращения – OY. Положительное направление от оси OZ к OX.

3) Ось вращения – OZ. Положительное направление от оси OX к OY.

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

1) Поворот вокруг оси OZ (угол поворота обозначается a)

2) Поворот вокруг оси OX (угол поворота обозначается b)

3) Поворот вокруг оси OY (угол поворота обозначается g)

Поворот в трёхмерном пространстве описывается матрицей поворота R, где

, где матрица отдельных поворотов имеет вид:

Когда не успевают по быстродействию, то можно выполнить с помощью следующей матрицы:

, где _ – частные произведения.

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

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

 

 



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 258; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.222.231.51 (0.102 с.)