sageman 发表于 2013-3-21 08:19:29

以多边形顶点坐标计算面积

之前看到过有利用多边形顶点坐标计算面积的代码?具体做法忘记了,请求高手指点一下,非常感谢!

Gu_xl 发表于 2013-3-21 08:54:37

本帖最后由 Gu_xl 于 2013-3-21 09:05 编辑


;; 返回由表 L1 构成的多边形面积. 点逆时针为正,顺时针为负
(defun getplarea (l1 / s x1 y1 x2 y2 p1)
(setq s 0.
    p1 (last l1)
    x1 (car p1)
    y1 (cadr p1)
)
(foreach p1 l1
    (setq x2 (car p1)
      y2 (cadr p1)
      s (- (+ s (* x1 y2)) (* x2 y1))
      x1 x2
      y1 y2
    )
)
(* 0.5 s )
)
;;简洁写法
(defun getplarea (l)
(* 0.5
   (apply '+
            (mapcar '(lambda (a b)
                     (- (* (car a) (cadr b)) (* (car b) (cadr a)))
                     )
                  l
                  (append (cdr l) (list (car l)))
                  )
            )
   )
)

xyp1964 发表于 2013-3-21 19:58:36

ptn→ pline → vla-get-area

sageman 发表于 2013-3-21 20:41:33

谢谢!好像还有另处一种方法,如有点: (x1,y1) (x2,y2)(x3,y3)....则面积等于(x1*y2-y1*x2)+....,不知道这个依据是什么,我验证过,貌似正确

chbddzx12 发表于 2015-7-12 18:11:40

顶~~~~~~~~~~~~~~~~~~~~~~~~~

fzhemail 发表于 2019-5-3 23:26:47

好,学习了

skg123 发表于 2022-5-9 14:28:14

sageman 发表于 2013-3-21 20:41
谢谢!好像还有另处一种方法,如有点: (x1,y1) (x2,y2)(x3,y3)....则面积等于(x1*y2-y1*x2)+....,不知道 ...

测量书本上有计算多边形(不规则)图形的面积计算公式

guankuiwu 发表于 2022-11-13 12:35:44

学习了。。刚好有个地方用到
页: [1]
查看完整版本: 以多边形顶点坐标计算面积