Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТветы на зачет.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.52 Mб
Скачать

Параметрические поверхности в форме Эрмита

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

Q(t) = G M T.

Заменяя для удобства обозначений t на s:

Q(s) = G M S.

Если теперь допустить, что точки в геометрической матрице G могут меняться в 3D вдоль некоторой кривой же, которая параметризована по t:

Q(s, t) = [ G1(t) G2(t) G3(t) G4(t) ] M S

Для каждого фиксированного t’ из интервала [ 0 1 ] имеем кривую Q(s, t’) - т.к. G(t’) - константа. Таким образом, получаем на интервале изменения t семейство кривых, которые, будучи близко расположены друг к другу, и определяют искомую поверхность. Если Gi(t) - сами кубические кривые, то и поверхность называется параметрической бикубической кривой.

Итак, кривая Gi(t) имеет свою геометрическую матрицу Gs = [ gsi1 gsi2 gsi3 gsi4 ]. Тогда:

Gi(t) = Gsi M T.

Известно равенство: ( A B C )T = CT BT AT.

Тогда транспонируя:

Gi(t) = TT MT GsiT = TT MT [ gsi1 gsi2 gsi3 gsi4 ]T.

Подставляя:

Q(s, t) = TT MT [ gs11 gs21 gs31 gs41 ] M S

gs12 gs22 gs32 gs42 ]

gs13 gs23 gs33 gs43 ]

[ gs14 gs24 gs34 gs44 ] или

Q(s, t) = TT MT Gs M S, 0 <= s, t, <= 1.

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

Уравнения прямой и плоскости

Основное уравнение плоскости:

Ах + Ву +Сz + D=0,

где А, В, С, D – постоянные, причем А, В, С одновременно не равны нулю.

Уравнение плоскости в векторной форме:

(r, N) +D =0,

где r – радиус вектор точки M(x,y,z) – принадлежащей плоскости, вектор N =(A,B,C) перпендикулярен плоскости(нормальный вектор)

Уравнение плоскости в отрезках(отсекаемых плоскостью на осях Ox, Оy, Оz)

x/a + y/b + z/c =1

Уравнение прямой в векторной форме:

r = r0 + a*t,

где r0(x0,y0,z0) – точка через которую проходит прямая,

a(l,m,n) – направляющий вектор прямой.

Каноническое уравнение прямой в пространстве

(x-x0)/m =(y-y0)/n=(z-z0)/p

Уравнение прямой по двум точкам r0(x0,y0,z0) и r1(x1,y1,z1):

(x-x0)/(x1-x0)=(y-y0)/(y-y1)=(z-z0)/(z-z1)

Анализ взаимного расположения плоскости и прямой.

Прямая может принадлежать плоскости, быть ей параллельной или пересекать ее.

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

Зная уравнение плоскости, мы можем взять любые три точки A, B, C принадлежащие ей, не находящиеся на одной прямой. Возьмем любые не равные друг другу точки O, K, принадлежащие прямой.

Проверка пеерсекает ли пямая плоскость осуществляется через скаляроное произведение нормали к плоскости N и направляющего вектора вдоль прямой Rd. Склярное произведение этих двух нормализованных векторов есть косинус угла между векторами (cos (alpha) = (Rd,N) )

Далее приведены сами формулы требующиеся для рассчета:

(примечание, векторы обозначены большими буквами (или начинаются с большой буквы), скаляры - маленькими, векторное произведение векторов так: [ AB, BC ], скалярное произведение так: (AB, AC) ; модуль вектора-корень из суммы квадратов комтонетов-обозначен так | N | )

Найти два вектора лежащие в плоскости треугольника:

АВ=В-А;

AC=C-A;

найти нормаль треугольников и нормализировать ее

N=[AB,AC];

N=N / | N | ;

найти вектор вдоль прямой и нормализовать его:

Rd=K-O;

Rd=Rd / | Rd | ;

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

cos( alpha) = (Rd, N) ;

Далее проверяем, если модуль косинус альфа >0.0001 значит есть пересечение с плоскостью, если модуль косинус альфа <=0.0001 - считаем, что прямая параллельна плоскости. Если она параллельна, на этом расчет заканчивается, если пересечение есть - то найдем точку пересечения P в несколько шагов:

OA=A-O;

s = (OA, N );

t = s / cos (alpha) ;

P= O + t * Rd;

28