
(GETANGLE А) выполняют соответственно ввод расстояния между двумя
выбранными точками и угла между прямой, проходящей через две выбранные точки, и
осью ОХ.
Реальные задачи построения и обработки чертежей, как правило, проще
решаются итерационными, а не рекурсивными программами. Для организации циклов в
Автолиспе предназначена функция WHILE, имеющая формат (WHILE A
Bl
B2,...,BN).
Аргумент А является условием, при выполнении которого
(AoNIL)
последовательно
оцениваются аргументы В1, ..., BN. Затем снова проверяется условие А. Когда А
становится равным NIL, функция WHILE завершает работу и возвращает в качестве
своего значения последнюю оценку BN.
Функции-предикаты, AND, OR, IF,
COND,
SETQ,
DEFUN
полностью
соответствуют соответствующим функциям muLisp, в частности, функция
DEFUN
может иметь вид (DEFUN А В
С1,
. ., CN), что обычно используется для записи
итерационных процедур.
Отметим также несколько функций для работы с точками изображения. Функция
(POLAR
ABC)
используется для перехода на чертеже от одной точки к другой.
Аргумент А представляет собой точку (то есть является списком координат X,Y), В -
вещественное число, определяющее величину угла в радианах, и С - вещественное
число, задающее расстояние. Функция POLAR возвращает новую точку (список
координат), находящуюся на расстоянии С от точки А под углом В к этой точке
относительно оси ОХ против часовой стрелки. Заметим, что в Автолиспе имеется
встроенная константа PI (число
ii).
Функция (DISTANCE А В) вычисляет расстояние
между точками А и В, а функция (ANGLE А В) - величину угла в радианах между
прямой, проходящей через точки А и В, и осью ОХ. Наконец, функция (INTERS
Al
A2
Bl В2 Р) находит точку пересечения прямых, проходящих через точки А1, А2 и
Bl,
B2.
Если аргумент Р (признак) не равен NIL, точка пересечения ищется только внутри
отрезков (Al, A2) и
(В1,В2),
в противном случае определяется точка пересечения
прямых линий бесконечной длины
В заключении рассмотрим команду загрузки внешних модулей. Внешние модули
в Автолиспе загружаются командой (LOAD
"<имя
файла>"),
расширением по
умолчанию является
Isp.
Тексты программ набираются во внешнем редакторе.
81