newer 发表于 2025-5-12 22:15:00

XD::GEOM:VECTOR-ADD


;; ------------------------------------------------------------------------
;;; 函数名称 / Function Name: XD::GEOM:VECTOR-ADD
;;;
;;; 【功能说明 / Description】
;;;   计算两个向量 A 和 B 的向量加法,支持二维或三维向量。
;;;   根据输入向量的维度分别处理,返回相加后的向量。
;;;
;;; 【参数说明 / Parameters】
;;;   a - (list) 向量 A,二维或三维坐标列表
;;;   b - (list) 向量 B,二维或三维坐标列表
;;;
;;; 【返回值 / Return Value】
;;;   (list) 向量和,格式与输入向量相同(二维或三维)
;;;
;;; 【依赖函数 / Dependencies】
;;;   - length : 获取列表长度
;;;   - car, cadr, caddr : 获取向量分量
;;;   - list   : 构造列表
;;;
;;; 【备注 / Notes】
;;;   - 输入向量 A 和 B 维度应一致,否则结果可能不正确。
;;;
(defun XD::GEOM:VECTOR-ADD (a b / c)
(if (and (equal (length a) 3) (equal (length b) 3))
    ;; 三维向量加法
    (setq c (list (+ (car b) (car a))
                  (+ (cadr b) (cadr a))
                  (+ (caddr b) (caddr a))))
    ;; 二维向量加法
    (setq c (list (+ (car b) (car a))
                  (+ (cadr b) (cadr a))))
)
c
)

HLCAD 发表于 2025-5-13 08:47:21

(mapcar '+ a b)
页: [1]
查看完整版本: XD::GEOM:VECTOR-ADD