如何在AutoLISP中对嵌套坐标列表的X、Y元素分别求和?
求解LISP坐标列表的X、Y坐标总和
首先把你的坐标列表定义为变量:
(setq coords '((587243.0 4.04705e+006) (587242.0 4.04704e+006) (587228.0 4.04704e+006) (587226.0 4.04704e+006) (587227.0 4.04705e+006) (587243.0 4.04705e+006)))
接下来分别计算X、Y坐标的总和并存入变量:
- 计算X坐标总和:
(setq sum-x (apply #'+ (mapcar #'first coords)))
- 计算Y坐标总和:
(setq sum-y (apply #'+ (mapcar #'second coords)))
简单解释
mapcar #'first coords遍历坐标列表,提取每个点的第一个元素(X坐标),生成纯X坐标的列表apply #'+ ...把求和函数+作用在这个坐标列表上,得到所有X坐标的总和second用于提取每个点的第二个元素(Y坐标),逻辑和X坐标求和完全一致
如果要查看结果,直接打印变量即可:
(print sum-x) (print sum-y)
内容的提问来源于stack exchange,提问作者Neperin
相关产品推荐
相关产品推荐

