- •Глава 1. Основные виды геометрических объектов
- •§1. Основные аналитические способы задания кривых
- •§2. Виды кривых
- •§3. Основные способы задания прямых
- •§4. Способы задания окружностей и их дуг
- •§6. Виды поверхностей
- •Пример 2.Уравнение конуса второй степени
- •§7. Основные способы задания плоскостей
- •§8. Аналитические способы задания пространственных тел
- •Глава 2. Интерполяция кривых и поверхностей алгебраическими полиномами
- •§1. Основные способы моделирования кривых. Интерполяция и аппроксимация
- •§2. Интерполирование кривых с помощью алгебраических полиномов канонического вида
- •§3. Интерполирование по однократным узлам. Интерполяционные многочлены Лагранжа и Ньютона
- •§4. Интерполирование по двукратным узлам. Интерполяционные многочлены Эрмита
- •§5. Интерполирование поверхностей
- •5.1. Интерполирование по однократным узлам. Билинейные поверхности
- •5.2. Интерполирование по двукратным узлам
- •Глава 3. Моделирование кривых и поверхностей при помощи сплайнов
- •I. Построение локальных сплайнов.
- •II. Построение интерполяционных сплайнов.
- •§1. Интерполирование кривых и поверхностей с помощью локальных сплайнов
- •1.1 Построение сплайнов по однократным узлам
- •1.2 Интерполирование по двукратным узлам
- •§2. Построение интерполяционных сплайнов.
- •2.2. Кубические интерполяционные сплайны
- •§3. Интерполяция с помощью в-сплайнов
- •Глава 4. Интерполирование поверхностей по линиям
- •§1.Интерполирование по кривым (линейчатые или плазовые поверхности)
- •§2. Линейные поверхности Кунса
- •§3. Обобщенные поверхности Кунса
- •Глава 5. Аппроксимация алгебраическими полиномами
- •§1. Аппроксимация по методу наименьших квадратов
- •§2. Аппроксимация алгебраическими многочленами по критерию наилучшего равномерного приближения
- •§ 3. Аппроксимация при помощи кривых и поверхностей Безье
- •Глава 6. Модели объектов. Плоские и пространственные линейные преобразования
- •§1. Модели (структуры данных) графических объектов
- •§2. Задание плоских и пространственных линейных преобразований при помощи уравнений связи
- •§ 3. Однородные координаты. Матричные представления линейных преобразований
- •Задачи. Записать прямые и обратные матрицы элемен-тарных преобразований, при помощи которых можно осу-ществить следующие действия:
- •§ 4. Составные линейные преобразования
- •§ 5. Линейные преобразования каркасных моделей
- •Глава 7.Проективные изображения трехмерных объектов
- •§1. Аксонометрические проекции
- •1.1.Ортогональные проекции
- •1.2 Диметрические проекции
- •Куб Диметрическая проекция
- •1. 3. Изометрическая проекция
- •§2. Перспективные проекции
- •§3. Построение проективных векторных изображений трёхмерных объектов
- •Глава 8. Графические базы данных (гбд)
- •§1. Структура и схема функционирования типовых гбд
- •§2. Постановка задачи проектирования гбд в графической системе AutoCad
- •Точки привязки
- •§3. Разработка структуры гбд
- •§4. Пакетные файлы гбд
- •§5. Параметрические функции гбд
- •§6. Создание библиотек слайдов гбд
- •§7. Модификация основного меню AutoCad 2000
- •7.1. Файл меню. Его разделы. Управляющие символы
- •7.2. Модификация всплывающего и падающего меню AutoCad2000
- •7.3. Модификация экранного меню AutoCad2000
- •7.4. Модификация графического меню AutoCad2000
- •§8. Использование разработанной базы данных
- •Глава 9. Создание реалистических изображений
- •§ 1. Пространственные модели
- •§2. Геометрическое моделирование объектов сложной формы
- •§ 3. Текстуры
- •§ 4. Основные операции при построении реалистических изображений
- •§ 5. Моделирование источников освещения и расчёт освещённости малых участков поверхности объектов
- •§ 6. Моделирование отражающих свойств поверхностей
- •§ 7. Моделирование отражения от поверхности (затенение)
- •§ 8. Удаление невидимых граней. Расчёт теней
- •§9. Создание стереоскопического эффекта
- •§10. Анимация
- •Порядок выполнения и примерные темы курсовых работ
- •Литература
§5. Параметрические функции гбд
Ниже приведен текст функции trap, выполняющей вычер-чивание трапеции по параметрам, указанным пользо-вателем. Стандартные наборы параметров вводятся по номеру типоразмера автоматически из пакетного файла trap.dat, нестандартные – непосредственно по запросам с клавиатуры. Параметры привязки вводятся пользователем в диалоговом режиме. Данная функция использует вспомо-гательную функцию mas , которая по заданному номеру типоразмера считывает из списка набор геометрических параметров объекта.
(defun c:trap()
(setq a nil b nil h nil)
; Запрос о типе вводимых параметров
(setq v (getint "Введите тип параметров(0-
стандартные, иначе – нестандартные):"))
; Ввод нестандартных параметров c клавиатуры
(if (/= v 0)
(setq a (getreal "Введите a:")
b (getreal "Введите b:") h (getreal "Введите h:"))
)
; Ввод стандартных параметров из файла trap.dat
(if (= v 0) (prong
; 1. Переписывание файла trap.dat в список sp
(setq fl (open "c:\\ACAD\\mas\\trap.dat" "r") sp nil dl nil)
(while (setq dl (read-line fl))
(setq sp (cons (read dl) sp)) ) (close fl)
(setq sp (reverse sp) fl nil)
; 2. Поиск в списке sp строки параметров по
161
; заданному типоразмеру и запись их в список mas1
(mas "Введите типоразмер трапеции" 0 sp)
; 3.Присваивание переменным а,b,h значений из mas1
(setq a (nth 1 mas1) b (nth 2 mas1) h (nth 3 mas1))
) )
; Ввод параметров вставки с клавиатуры (экрана)
(setq pp (getpoint "Введите точку вставки"))
(setq u (getreal "Введите угол вставки"))
; Перевод значения угла вставки в радианы
(setq u (* u (/ pi 180)) d (* 0.5 (- b a)) fi (atan (/ h d)) )
(setq
ps (polar pp (+ u (* 1.5 pi)) (* 0.5 h))
; Расчёт координат вершин (р1,р2,р3,р4)
p1 (polar ps (+ u pi) (* 0.5 b))
p2 (polar p1 (+ u fi) (/ h (sin fi)))
p3 (polar p2 u a)
p4 (polar p3 (+ u (- (* 2 pi) fi)) (/ h (sin fi)))
; Расчёт точек для осей (ра1,ра2,рb1,рb2)
pa1 (polar pp (+ u pi) (* 0.6 (+ a b)))
pa2 (polar pp u (* 0.6 (+ a b)))
pb1 (polar pp (+ u (* 1.5 pi)) (* 0.8 h))
pb2 (polar pp (+ u (* 0.5 pi)) (* 0.8 h))
)
; Запоминание текущего слоя
(setq currsl (getvar "clayer"))
; Открытие нового слоя для изображения трапеции
(command "layer" "m" "trp" "c" "white" "" "l" "continuous" "" "s" "trp" ""
; Вычерчивание трапеции
"line" p1 p2 p3 p4 "c"
; Открытие нового слоя для изображения осей трапеции
"layer" "m" "osi" "c" "magenta" "" "l" "center" "" "s" "osi" ""
; Вычерчивание осей
"line" pa1 pa2 ""
162
"line" pb1 pb2 ""
; Возврат в исходный слой, перерисовка экрана
"layer" "s" currsl "" "redraw"
)
)
; Вспомогательная функция для поиска параметров в
; списке х по запрашиваемому типоразмеру
(defun mas (text a x)
(setq c 0 mas1 nil)
(while (= mas1 nil)
; Выдача запроса о типоразмере в командную строку
(princ "\n") (princ text)(princ "<") (princ a) (princ ">:")
(setq param (getint))
; Присваивание типоразмера по умолчанию
(if (= param nil) (setq param a))
; Поиск в х строки, у которой позиция с содержит
; значение param и запись её в mas1
(foreach n x (if (= (nth c n) param) (setq mas1 n)))
; Проверка найденных параметров
(if (= mas1 nil) (princ "Неверное значение"))
) )
Очевидно, универсальная функция mas может быть использована не только с рассмотренной выше функцией trap, но и с другими аналогичными параметрическими функциями.
Параметрическая функция orth для вычерчивания прямоугольников может быть создана аналогично. Текст её приведен в Приложении.
