MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Построение линии пересечения объёмных геометрических объектов

Название:Построение линии пересечения объёмных геометрических объектов
Просмотров:118
Раздел:Информатика, программирование
Ссылка:none(0 KB)
Описание: Задание №1 Построение линии пересечения объёмных геометрических объектов 1.1 Цель работы Выработка практических навыков в разработке и отладке программ для построения линий пересечения объёмных геом

Университетская электронная библиотека.
www.infoliolib.info

Часть полного текста документа:

Задание №1

Построение линии пересечения объёмных геометрических объектов

1.1 Цель работы

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

1.2 Индивидуальное задание

Построить поверхности второго порядка

и их линию пересечения.

Вариант a b c d E R 9 140 30 1 1 1 90

1.3 Решение задания

Представим систему в численном виде:

Из неё легко проверить, что получается такая система

Первое уравнение является уравнением окружности с радиусом

, расположенной параллельно плоскости XY на уровне . Эта окружность и является линией пересечения конуса и эллипсоида.

1.4    Текст программы

;Conus

(defun conus()

(setq zmax 140.0)

(setq z 0.0)

(setq dz 5)

(while (<= z zmax)

(setq r (sqrt ( * (* z z) (/ (* 140 140) (* 30 30)))))

(if (= r 0)

(command "point" (list 0 0 0))

(command "circle" (list 0 0 z) r)

)

(setq z (+ z dz))

)

(setq dphi (/ (* 10 pi) 180))

(setq phi 0)

(while (<= phi (* 2.0 pi))

(command "line" (list 0 0 0) (list (* r (cos phi)) (* r (sin phi)) z))

(command)

(setq phi (+ phi dphi))

)

)

; Ellipse in YZ

(defun ell_Y(fy fz)

(setq xmax 90.0)

(setq dx 10.0)

(setq dy 10.0)

(setq x -90.0)

(while (<= x xmax)

(setq ya 0.0)

(setq yk (sqrt (- (* 90.0 90.0) (* x x))))

(setq z (* fz (sqrt (- 8100.0 (* x x)))))

(setq p1 (list x ya z))

(while (> (- yk ya) dy)

(setq ya (+ ya dy))

(setq y (* fy ya))

(setq z (* fz (sqrt (- 8100.0 (* x x) (* y y)))))

(setq p2 (list x y z))

(command "line" p1 p2 "")

(setq p1 p2)

)

(setq y (* fy yk))

(setq p2 (list x y 0.0))

(command "line" p1 p2 "")

(setq x (+ x dx))

)

)

;

; Ellipse in XZ

(defun ell_X (fx fz)

(setq ymax 90.0)

(setq y -90.0)

(while (<= y ymax)

(setq xa 0.0)

(setq xk (sqrt (- (* 90.0 90.0) (* y y))))

(setq z (* fz (sqrt (- 8100.0 (* y y)))))

(setq p1 (list xa y z))

(while (> (- xk xa) dx)

(setq xa (+ xa dx))

(setq x (* fx xa))

(setq z (* fz (sqrt (- 8100.0 (* x x) (* y y)))))

(setq p2 (list x y z))

(command "line" p1 p2 "")

(setq p1 p2)

)

(setq x (* fx xk))

(setq p2 (list x y 0.0))

(command "line" p1 p2 "")

(setq y (+ y dy))

)

)

;

; line cross

(defun lc(fl)

(setq x -88)

(setq dx 2)

(setq x (* fl x))

(setq y (sqrt (- 7744.3902 (* x x))))

(setq z 18.86)

(setq y (* fl y))

(setq p1 (list x y z))

(setq x (* fl x))

(while (> (- 88 x) dx)

(setq x (+ x dx))

(setq x (* fl x))

(setq y (sqrt (- 7744.3902 (* x x))))

(setq y (* fl y))

(setq z 18.86)

(setq p2 (list x y z))

(command "line" p1 p2 "")

(setq x (* fl x))

(setq p1 p2)

)

(setq x 88)

(setq x (* fl x))

(setq y (sqrt (- 7744.3902 (* x x))))

(setq z 18.86)

(setq p2 (list x y z))

(setq x (* fl x))

(command "line" p1 p2 "")

)

;

; control

(Defun gr()

(setq sb (getvar "blipmode"))

(setq sc (getvar "cmdecho"))

(command "erase" "all" "")

(setvar "blipmode" 0)

(setvar "cmdecho" 0)

(command "color" 5)

(ell_Y 1 1)

(ell_Y 1 -1)

(ell_Y -1 1)

(ell_Y -1 -1)

(ell_X 1 1)

(ell_X 1 -1)

(ell_X -1 1)

(ell_X -1 -1)

(command "color" 3)

(conus)

(command "color" 2)

(lc 1)

(lc -1)

(setvar "blipmode" sb)

(setvar "cmdecho" sc)

)


1.5      Результат выполнения программы


Задание № 2

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

2.1 Цель работы

Выработка практических навыков конструирования кривых.

2.2 Индивидуальное задание

Сконструировать кривую по заданным точкам методом Фергюсона. Создать функцию рисующую кривую в плоскости XY, исходные точки отметить маркерами. Оформить таблицу значений  функции и отклонений от заданных значений в опорных точках.

Вариант 0,0 0,2 0,4 0,6 0,8 1 09 49,0 105,3 172,3 211,1 183,0 49,0 28,0 -31,5 -78,6 -95,8 -66,1 28,0

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

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

3.1 Цель работы

Выработка практических навыков конструирования кривых.

3.2 Индивидуальное задание

Сконструировать кривую по заданным точкам методом Безье. ............







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

Название:Изучение особенностей работы с программой Norton Commander
Просмотров:146
Описание: Министерство образования и науки РФ Рязанская Государственная Радиотехническая Академия Кафедра ЭВМ Контрольная работа Изучение особенностей работы с программой Norton Commander Вы

Название:Характеристика программы "SpeedCommander"
Просмотров:138
Описание: Федеральное государственное образовательное учреждение Высшего профессионального образования «Чувашский государственный университет им. И.Н.Ульянова» Кафедра математического и аппаратного обеспечения

Название:Управління файлами за допомогою файлового менеджера Windows Commander
Просмотров:122
Описание: ЗМІСТ   ЗМІСТ 1. ВСТУП 2. АНАЛІЗ ФУНКЦІОНУВАННЯ ФАЙЛОВОГО МЕНЕДЖЕРА  WINDOWS COMMANDER 2.1 КЛЮЧОВІ ЯКОСТІ WINDOWS COMMANDER 2.2 ОПЕРАЦІЇ З ФАЙЛАМИ 2.3 УПРАВЛІННЯ АРХІВАМИ 2.4 ЛОКАЛЬНІ МЕНЮ

Название:Технология работы в Total Commander. Антивирусные программы. Установка и удаление программ
Просмотров:101
Описание: Лабораторная работа №3 Тема Технология работы в Total Commander. Антивирусные программы. Установка и удаление программ Введение Цель работы: ознакомиться с основными функци

Название:Особенности работы с файловым менеджером Free Commander
Просмотров:93
Описание: ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «Мордовский государственный педагогический институт имени М.Е. Евсевьева» ФИЗИКО-МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ КАФЕДРА ИНФО

 
     

Вечно с вами © MaterStudiorum.ru