kkq0305 发表于 2019-8-30 21:20:34

计算凸多边形面积(不封闭也行)

(defun c:ar ()
(setq en (car (entsel)))
(setq
    ptl(mapcar
    'cdr
    (vl-remove-if-not '(lambda (x) (= 10 (car x))) (entget en))
)
)
(setq ptl (mapcar 'list ptl (append (cdr ptl) (list (car ptl)))))
(apply '+
   (mapcar
   '(lambda (x)
      (expt (* (car x)
         (- (car x) (cadr x))
         (- (car x) (caddr x))
         (- (car x) (last x))
      )
      0.5
      )
      )
   (mapcar '(lambda (y) (cons (* 0.5 (apply '+ y)) y))
       (mapcar '(lambda (z)
            (list (distance (car z) (cadr z))
            (distance (cadr z) (last z))
            (distance (car z) (last z))
            )
          )
         (mapcar '(lambda (m) (cons (caar ptl) m)) ptl)
       )
   )
   )
)
)

kkq0305 发表于 2019-11-19 10:01:14

cghdy 发表于 2019-11-16 15:51
谢谢分享,好贴

这个只是为了练习表函数,不过用vla-get-area更好。

kkq0305 发表于 2019-8-30 21:20:58

利用海伦公式

cghdy 发表于 2019-11-16 15:51:18

谢谢分享,好贴

wzxcad 发表于 2019-11-18 18:44:34

好方法,谢谢分享

852456 发表于 2019-12-15 16:48:30

谁能讲解讲解 看都看不懂

QQ873240166 发表于 2020-3-29 23:08:17

NNWS神速神速
页: [1]
查看完整版本: 计算凸多边形面积(不封闭也行)