ВАРИАНТЫ ИНДИВИДУАЛЬНЫХ ЗАДАНИЙ



 

1. Постройте линию, введя данные точек T 1, T 2, T 3 с использованием функций типа SETQ. Точка Т1 при X =20+ n , Y =50+ n; точка Т2 при X =80- n , Y =100- n. Используя полярные координаты, постройте точку Т3 ( R =100- n , L =40+ n ).

2. Постройте окружность на основе введенных данных точки центра PC с X =100- n , Y =100+ n и радиуса R =70+ n.

3. Запишите в переменную К результат A * B * C при A =15+ n , B =5+ n , C =5+ n c помощью функции SETQ.

4. Оформите ввод A , B , C через функцию GETINT или GETREAL.

5. Выведите данные на экран для всех заданий.

 

ЛАБОРАТОРНАЯ РАБОТА 3

ПОСТРОЕНИЕ ПРОСТЕЙШИХ ЛИСП-ПРОГРАММ. ЗАГРУЗКА, ОТЛАДКА И ВЫПОЛНЕНИЕ ПРОГРАММ

 

Цель работы: изучение способов задания геометрических точек в программе на AutoLISP, методики программирования построения параметризованных изображений.

 

ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ

Геометрические точки в программе

 

Приведенные ранее простые примеры не демонстрируют все преимущества программирования на AutoLISP по сравнению с использованием редактора ACAD. Рассмотрим программу, иллюстрирующую принцип построения параметризованных изображений. Для такого построения требуется задавать геометрические объекты «внутри программы», т.е. без участия пользователя. [4-6]

Геометрическая точка в программе может быть задана пятью способами.

Первый нам уже известен − ввод точки пользователем через функцию GETPOINT.

Второй − непосредственное указание координат точки в виде списка из двух (двухмерная точка) или трех (трехмерная точка) элементов с помощью функции QUOTE.

Примеры:

(QUOTE (1.0 1.0)) − точка с координатами 1,1; '(1.0 1.0) − аналогично;

'(1.0 2.0 3.0) − точка в трехмерном пространстве с координатами X=1, Y=2, Z =3.

Третий способ − задание точки через другую точку, угол и расстояние с помощью функции POLAR:

(POLAR <точка> <угол> <расстояние>).

Эта функция возвращает точку, находящуюся под углом <угол> и на расстоянии <расстояние> от заданной <точки>. Угол указывается в радианах против часовой стрелки.

POLAR − основная функция для внутрипрограммных геометрических построений. Ее можно и удобно использовать практически во всех случаях.

Четвертый способ − определение точки пересечения двух отрезков с помощью функции INTERS:

(INTERS <точка1> <точка2> <точка3> <точка4> [<признак>]).

Функция INTERS находит точку пересечения двух отрезков − отрезка от <точки1> к <точке2> с отрезком от <точки3> к <точке4> и возвращает найденную точку; <признак> − любое выражение AutoLISP. Если <признак> равен NIL, то будет определена точка пересечения линий бесконечной длины, наложенных на заданные отрезки. Если <признак> имеет любое значение, отличное от NIL, или если аргумент <признак> вообще отсутствует, то ищется точка пересечения только внутри отрезков. Если точка пересечения в этой ситуации не найдена, то функция INTERS возвращает NIL.

Пятый способ – с помощью функций ANGLE и DISTANCE.

Функция ANGLE задается в виде правила: (ANGLE <точка1> <точка2>).

Функция ANGLE возвращает действительное число, равное углу в радианах, образованному прямой, проходящей через <точку1> и <точку2>, с осью Х.

Функция (DISTANCE <точка1> <точка2>) возвращает действительное число, равное расстоянию между <точкой1> и <точкой2>. [4-6]

 

Принцип построения параметризованных изображений в программе

Принцип построения параметризованных изображений иллюстрирует программа 3, позволяющая построить квадрат с задаваемой стороной и вписанную в него окружность. Аналогично можно строить и более сложные изображения: для получения нового изображения с помощью программы пользователь задает новые значения параметров (точки, расстояния, числа и др.). Из этих данных в программе могут быть получены другие данные с помощью математических функций, функции POLAR и т.п. Полученные данные будут использованы в качестве аргументов команд ACAD посредством функции COMMAND. [4-6]

; Программа 3. Квадрат с вписанной окружностью

(DE F UN C:QUADR ( ) ; заголовок описываемой функции

; Зададим начальную точку − левый нижний угол квадрата:

(SETQ P1 (GETPOINT “\n Нач . точка :”))

; Зададим длину квадрата:

(SETQ L (GETDIST “\nДлина стороны:”))

; определим три оставшиеся вершины квадрата:

(SETQ Р 2 (POLAR P1 0.0 L))

(SETQ P3 (POLAR P2 (/ PI 2) L)) ; угол = PI/2

(SETQ P4 (POLAR P3 PI L)); угол = PI

; Построим квадрат на экране:

( COMMAND “ LINE ” P 1 P 2 P 3 P 4 “С”)

; (Здесь “С” задает опцию “Замкнуть”)

;Определим радиус окружности:

(SETQ R(/L 2));радиус R=L/2

; Определим центр окружности РС:

(SETQ PR (POLAR P1 0.0 R)) ;PR - точка касания

; на нижней стороне

(SETQ PC (POLAR PR (/ PI 2) R))

; Построим окружность на экране:

(COMMAND “CIRCLE” PC R)

) ; Конец описания функции QUADR

Обратим внимание на несколько необычное имя функции − C:QUADR. Символы «С:» имеют определенный смысл, который будет разъяснен далее.


Дата добавления: 2019-09-13; просмотров: 208; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!