2.3      Аппроксимация кривой методом Фергюсона

Сегмент кривой может быть описан векторным уравнением:

r(u)=a3u3+a2u2+a1u+a0 , (1)

где r(u)- радиус-вектор текущей точки кривой :

u – параметр, 0<=u<=1;

a1 – векторы коэффициентов i=0..3.

уравнение (1) – представляет собой векторную форму записи системы:

x(u)=a13u3+a12u2+a11u+a10;

y(u)=a23u3+a22u2+a21u+a20; (2)

z(u)=a33u3+a32u2+a31u+a30;

Таким образом, для определения сегмента кривой необходимо знать 4 вектора или 12 коэффициентов. Обычно задаются значения r(u) и r’(u) на концах сегмента:

r(0)=a0;

r(1)=a3+a2+a1+a0; (3)

r’(0)=a1;

r’(1)=3a3+2a2+a1;

Решив систему, уравнений относительно (3) a0 ,a1 , a2 , a3 и подставив полученные значения в уравнение сегмента кривой в форме Фергюсона:

r(u)=r(0)(1-3u2+2u3)+r(1)(3u2-2u3)+r’(0)(u-2u2+u3)+r’(1)(u3-u2).

Однако в индивидуальном задании дано 6 точек и не указаны значения производных на концах отрезка – делаю вывод, что аппроксимацию необходимо проводить для сплайна степени 5 – так, как для построения сплайна степени n необходимо знать n+1 радиус-вектор.

Итак, уравнение сегмента проходящего через заданные точки в векторной форме:

r(u)=a5u5+a4u4+ a3u3+a2u2+a1u+a0 (4)

Система (2) запишется в следующем виде для плоского сплайна:

x(u)=a15u5+a14u4+a13u3+a12u2+a11u+a10;

y(u)=a25u5+a24u4+a23u3+a22u2+a21u+a20; (5)

Подставляя значения из заданной таблицы в систему (5) и решая её относительно коэффициентов a, получим шесть векторов входящих в уравнение кривой (4), которая проходит через шесть точек.

(6)

(7)

В результате решения системы (6) методом Гаусса получим:

a15=117,1875; a14=-255,208(3); a13=-621,3541(6); a12=563,958(3); a11=195,41(6); a10=49,0.

В результате решения системы (7) методом Гаусса получим:

a25=156,25; a14=-351,5625; a13=-630,208(3); a12=-143,4375; a11=-291,458(3); a10=28,0.

Итак, имеется 6 векторов и параметрический сплайн 5 степени – это есть необходимое и достаточное условие построения сегмента кривой проходящего через 6 точек.

2.4 Текст программы, реализующей метод Фергюсона.

(defun task2()

(command "erase" "all" "")

(setq a15 117.1875)

(setq a14 -255.2083333)

(setq a13 -621.3541666)

(setq a12 563.9583333)

(setq a11 195.4166666)

(setq a10 49.0)

(setq a25 156.25)

(setq a24 -351.5625)

(setq a23 630.2083333)

(setq a22 -143.4375)

(setq a21 -291.4583333)

(setq a20 28.0)

(setvar "pdmode" 2)

(command "point" (list 49.0 28.0))

(command "point" (list 105.3 -31.5))

(command "point" (list 172.3 -78.6))

(command "point" (list 211.1 -95.8))

(command "point" (list 183.0 -66.1))

(command "point" (list 49.0 28.0))

(setq u 0)

(setq du 0.01)

(setq file1 (open "c:\\mydata1.txt" "w"))

(while (<= u 1.0)

(setq x1 (+ (* (expt u 5) a15) (* (expt u 4) a14) (* (expt u 3) a13) (* (expt u 2) a12) (* u a11) a10))

(setq y1 (+ (* (expt u 5) a25) (* (expt u 4) a24) (* (expt u 3) a23) (* (expt u 2) a22) (* u a21) a20))

(if (or (<= (abs (- u 0)) 0.00001) (<= (abs (- u 0.2)) 0.00001) (<= (abs (- u 0.4)) 0.00001) (<= (abs (- u 0.6)) 0.00001) (<= (abs (- u 0.8)) 0.00001) (<= (abs (- u 1.0)) 0.00001))

(print (list x1 y1) file1)

)

(setq u (+ u du))

(setq x2 (+ (* (expt u 5) a15) (* (expt u 4) a14) (* (expt u 3) a13) (* (expt u 2) a12) (* u a11) a10))

(setq y2 (+ (* (expt u 5) a25) (* (expt u 4) a24) (* (expt u 3) a23) (* (expt u 2) a22) (* u a21) a20))

(command "line" (list x1 y1) (list x2 y2))

(command)

)

(print (list x2 y2) file1)

(close file1)

)

2.5 Таблица, получаемая в результате выполнения задания:

(49.0 28.0) вектор отклоненией– (0,0)

(105.3 -31.5) вектор отклоненией– (0,0)

(172.3 -78.6) вектор отклоненией– (0,0)

(211.1 -95.8) вектор отклоненией– (0,0)

(182.0 -67.1) вектор отклоненией– (1,1)

(49.0 28.0) вектор отклоненией– (0,0)

2.6 Рисунок с экрана

2.7 Вывод

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


Задание № 3

Методы конструирования кривых.


Информация о работе «Построение линии пересечения объёмных геометрических объектов»
Раздел: Информатика, программирование
Количество знаков с пробелами: 12319
Количество таблиц: 3
Количество изображений: 5

Похожие работы

Скачать
114578
4
3

... разделить на 5 частей: 1) Заказ оснастки. 2) Ведомость заказов. 3) Сборочный чертёж, рабочие чертежи. 4) Деталировка. 5) Спецификации. 2.2. АВТОМАТИЗИРОВАННОЕ ПРОЕКТИРОВАНИЕ . Между парарметрами оснащаемой детали и формиру-емой технологической оснасткой существует инфор-мационно-функциональная взаимосвязь. Аналогичные взаимосвязи существуют также между технологичес-кими решениями по производству ...

Скачать
141647
0
0

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

Скачать
130434
3
194

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

Скачать
90175
1
57

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

0 комментариев


Наверх