Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Нахождение Решения

Читайте также:
  1. B. Принятия оптимального управленческого решения по наиболее важным вопросам деятельности на рынке.
  2. I.5.5. Просмотр и анализ результатов решения задачи.
  3. Алгоритм решения
  4. Алгоритм решения задачи
  5. Алгоритм решения.
  6. АПК РФ и ГПК РФ (в отличие от УПК РФ) не содержат требования о справедливости судебного решения и указания о возможности применять по аналогии УПК РФ.
  7. Ая основа – Хаджури выводит из Сунны за грехи – как совместное нахождение мужчин и женщин в одном помещении (ихтилят).

Пусть желаемая интерполированная кривая B-spline степени p следующая:

Эта кривая B-spline имеет n + 1 неизвестных контр. точек. Так как параметр tk соответствует исходной точке d k, то, подставляя tk в вышеуказанное уравнение, получим следующее:

Так как в вышеуказанном уравнении n + 1 базисных функций B-spline (т.e. N 0, p (u), N 1, p (u), N 2, p (u),... и Nn,p (u), и n + 1 параметр (т.e. t 0, t 1, t 2,... и tn), то, подставив эти tk в Ni,p (u) получим (n +1)2 значений. Эти значения можно записать в виде матрицы N размера (n +1)×(n +1), в которой k -й ряд содержит значения N 0, p (u), N 1, p (u), N 2, p (u),... и Ni,p (u) для tk, как показано ниже:

Давайте также соберем векторы d k и p i в дае матрицы D и P следующим образом:

Здесь будем считать, что исходная точка d k является вектором в s -мерном пространстве (т.e. d k = [ dk 1,..., dks ]) и стоит в k -м ряду матрицы D. Аналогично, считаем p i вектором в s -мерном пространстве (т.e. p i = [ pi 1,..., pis ]) и что она находится в i -м ряду матрицы P. Заметьте, что в трехмерном пространстве s = 3, а на плоскости s = 2. Также заметьте, что матрицы D и P - обе размера (n +1)× s. Затем, нетрудно проверить, что соотношение между значениями d k и ti преобразуется к такому более простому виду:

Так как матрица D содержит исходные точки и матрица N получены вычислением базисных функций B-spline по данным параметрам, то D и N - обе известны, а неизвестно только P. Так как это просто система линейных уравнений с неизвестным P, то, решая относительно P, получим контр. точки и желаемая интерполированная кривая B-spline станет доступной. Таким образом, задача интерполяции кривой решена!

Алгоритм

Матрицы D и P - не являются матрицами-столбцами, но это не большая проблема. Можно решать систему по столбцам. Говоря точнее, пусть i -й столбец D и i -й столбец P будут d i и p i, соответственно. Из вышеуказанной системы линейных уравнений, получаем следующее:

Затем, решая относит. p i из N и d i даст i -й столбец P. Проделываем это для каждого i в пределах от 0 до h, и получим в итоге P. Таким образом, все контр. точки найдены. Как вы, наверное, заметили, это очень неэффективно. К счастью, многие вычислительные библиотеки имеют процедуры решения систем линейных уравнений, которые подходят для эффективного решения уравнения D = N . P. Получается, провести кривую B-spline по n +1 точкам не так уж сложно. Оно сводится к решению системы линейных уравнений. Следующий алгоритм объединяет все сказанное:

Вход: n +1 исходных точек d 0,..... d n и степень p
Выход: Кривая B-spline степени p, содержащая все эти исходные точки в данном порядке.
Алгоритм:

Выбираем метод для нахождения набора из n +1 параметров t 0,..., tn;
Заодно получим и узловой вектор U;
for i:= 0 to n do

for j:= 0 to n do

Вычисляем [Evaluate] Nj,p (ti) и ставим в ряд i и столбец j матрицы N;

/* матрица N найдена */
for i:= 0 to n do

Помещаем исходную точку d i в ряд i матрицы D;

/* матрица D построена */
Решаем систему уравнений и находим P из D = N . P
Ряд i матрицы P - это контр. точка p i;
Контр. точки p 0,..., p n, узловой вектор U и степень p определяют интерполированную кривую B-spline;

Ниже, на рисунке (а), показан пример. Здесь 9 исходных точек, показаны черным. Найденные контр. точки показаны синим. Маленькие красные точки на интерполированной кривой - это точки, соответствующие узлам, вычисленным по методу длины хорды. В этом случае, эти "узловые точки" находятся довольно близко к исходным точкам и контр. ломаная также проходит близко к исходной, хоть и не всегда. Например, на рисунке (b), исходная и контрольная ломаные очень отличаются.

(a) (b)

Важно отметить, что матрица N целиком положительна и окружена полосой с половиной ширины меньше [banded with a semi-bandwidth less than] p (т.e. Ni,p (tk) = 0, если | i - k | >= p), если узлы вычисляются по среднему значению от p последовательных параметров. Это было доказано de Boor в 1978 г. Подробности в Получении Узлового Вектора. Это значит, что система линейных уравнений, полученная по вышеизложенному алгоритму, может быть решена методом исключения Гаусса без вращения [центрирования? pivoting].


Дата добавления: 2015-10-29; просмотров: 100 | Нарушение авторских прав


Читайте в этой же книге: Алгоритм De Boor для Кривых NURBS | Параметрические Поверхности | Неявные Поверхности | Поверхности Безье: Алгоритм de Casteljau | Поверхности B-spline: Важные Свойства | Поверхности B-spline: Алгоритм de Boor | Метод Длины Хорды | Центростремительный Метод | Получение Узлового Вектора | Универсальный Метод |
<== предыдущая страница | следующая страница ==>
Параметры и Узловые Векторы для Поверхностей| Глобальная Аппроксимация Кривых

mybiblioteka.su - 2015-2024 год. (0.007 сек.)