Функции определения и вызова пользовательских функций
Функции вычислений
К основным вычислительным функциям относятся следующие функции:
· (fix <число>) — усечение числа до целого (отбрасывается дробная часть);
· (rem [<число1> [<число2>... [<числоN>]... ]]) — получение остатка от деления аргументов <число1> на <число2>, затем остатка от деления результата на аргумент <число3> и т. д.;
· (mах [<число1> [<число2>... [<числоN>]... ]]) — определение максимальногоиз чисел;
· (min [<число1> [<число2>... [<число1N>]... ]]) — определение минимального из чисел;
· (gcd <число1> <число2>) — вычисление наибольшего общего делителя для двух положительных целых чисел;
· (angle <точка1> <точка2>) — вычисление угла, в радианах, между осью Х текущей системы координат и вектором, идущим из точки заданной аргументом <точка1> в точку заданную аргументом <точка2>;
· (distance <точка1> <точка2>) — вычисление расстояния между двумя точками, заданными аргументами <точка1> и <точка2>;
|
|
· (sqrt <число>) — вычисление квадратного корня;
· (sin <число>) — вычисление синуса угла;
· (cos <число>) — вычисление косинуса угла;
· (atan <число1> [<число2>]) — вычисление арктангенса; если второй аргумент опущен, то вычисляется арктангенс от первого аргумента <число1>; если заданы оба аргумента, то вычисляется арктангенс частного от деления первого аргумента на второй <число1>/<число2>; если аргумент <число2> равен нулю, то возвращается угол +pi/2 или -pi/2 (знак выбирается по знаку аргумента <число1>);
· (ехр <число>) — вычисление натурального антилогарифма— результата возведения в степень постоянной е (2.71828);
· (expt <основание> <степень>) — возведение числа в степень;
· (log <число>) — вычисление натурального логарифма.
(defun <символ> <список аргументов> <выражение>...)
определяет функцию с именем <символ>. Список, следующий за именем функции, - это список аргументов (возможно пустой), за которым следует (факультативно) косая черта (slach) и имена одного или более локальных символов функции. Косая черта должна отделятся от локальных символов и аргументов, если они есть, хотя бы одним пробелом. Если нет аргументов и локальных символов, за именем функции следует поставить пустые скобки.
За списком аргументов следует одно или более выражений, которые вычисляются в процессе выполнения функции. Функция будет возвращать результат последнего вычисленного выражения. Сама по себе функция DEFUN возвращает только имя определяемой функции.
(polar <точка> <угол> <расстояние>)
возвращает точку, находящуюся под углом <угол> и на расстоянии <расстояние> от заданной <точки>. <Угол> выражается в радианах.
|
|
Пример:
(defun lab()
(setq t0 '(0 0))
(setq t1 (polar t0 0 50))
(setq t2 (polar t1 (/ pi 2) 50))
(setq t3 (polar t2 pi 50))
(command "pline" t0 "w" 1 1 t1 t2 t3 "close")
(command "linetype" "s" "center" "")
(command "line" '(25 -3) '(25 53) "")
(command "linetype" "s" "continuous" "")
(command "_dimlinear" t2 t3 (polar t2 (/ pi 2) 10))
(command "zoom" "e")
)
t3 50 t2
t0t1