Тема: LISP. Функция изменения координат точки заданием смещения по Х и У

;;;функция изменения координат
;;;Аргументы
;;;точка в виде (x y z)
;;;смещение по x
;;;смещение по y
;;;
;;;смещения могут быть отрицательными
;;;Возвращаемое значение:
;;;Точка (x+dx y+dy z)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun change_point (point        ;точка
             dx            ;смещение по х
             dy            ;смещение по y
             / new_point    ;измененная точка
                    )
  ;;изменение координаты х
  (setq    new_point
     (subst                         ;заменить
       (+ (car point) dx)        ;на новую x
       (car point)            ;старую x
       point            ;в координатах точки point
     )                ;end subst
  )                    ;end setq
  (setq point new_point)
  ;;изменение координаты y
  (setq    new_point
     (subst
       (+ (cadr point) dy)        ;new y
       (cadr point)            ;old y
       point            ;list
     )                ;end subst
  )                    ;end setq
)

Re: LISP. Функция изменения координат точки заданием смещения по Х и У

Примерчик бы применения.

Re: LISP. Функция изменения координат точки заданием смещения по Х и У

Примерчик.....
Пригодиться допустим в ситуации когда надо програмно нарисовать несколько примитивов с некоторым смещением относительно одной заданной(базовой) точки.

Re: LISP. Функция изменения координат точки заданием смещения по Х и У

> Random
А если  x=y? не проверял?
уж лучше использовать типа: (mapcar '+ point (list dx dy))