明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3635|回复: 7

[讨论] 以多边形顶点坐标计算面积

[复制链接]
发表于 2013-3-21 08:19:29 | 显示全部楼层 |阅读模式
之前看到过有利用多边形顶点坐标计算面积的代码?具体做法忘记了,请求高手指点一下,非常感谢!
发表于 2013-3-21 08:54:37 | 显示全部楼层
本帖最后由 Gu_xl 于 2013-3-21 09:05 编辑

  1. ;; 返回由表 L1 构成的多边形面积. 点逆时针为正,顺时针为负
  2. (defun getplarea (l1 / s x1 y1 x2 y2 p1)
  3.   (setq s 0.
  4.     p1 (last l1)
  5.     x1 (car p1)
  6.     y1 (cadr p1)
  7.   )
  8.   (foreach p1 l1
  9.     (setq x2 (car p1)
  10.       y2 (cadr p1)
  11.       s (- (+ s (* x1 y2)) (* x2 y1))
  12.       x1 x2
  13.       y1 y2
  14.     )
  15.   )
  16.   (* 0.5 s )
  17. )
  18. ;;简洁写法
  19. (defun getplarea (l)
  20.   (* 0.5
  21.      (apply '+
  22.             (mapcar '(lambda (a b)
  23.                        (- (* (car a) (cadr b)) (* (car b) (cadr a)))
  24.                        )
  25.                     l
  26.                     (append (cdr l) (list (car l)))
  27.                     )
  28.             )
  29.      )
  30.   )

点评

对的,就是这个,还是版主厉害,非常感谢。这个是自己推导出来的公式还是什么定理呢?数学里似乎没有学过的呢!  发表于 2013-3-21 22:50
发表于 2013-3-21 19:58:36 | 显示全部楼层
ptn  → pline → vla-get-area
 楼主| 发表于 2013-3-21 20:41:33 | 显示全部楼层
谢谢!好像还有另处一种方法,如有点: (x1,y1) (x2,y2)(x3,y3)....则面积等于(x1*y2-y1*x2)+....,不知道这个依据是什么,我验证过,貌似正确

点评

这应该是初中数学知识吧!我给出的代码就是用此公式计算!  发表于 2013-3-22 08:11
发表于 2015-7-12 18:11:40 | 显示全部楼层
顶~~~~~~~~~~~~~~~~~~~~~~~~~
发表于 2022-5-9 14:28:14 | 显示全部楼层
sageman 发表于 2013-3-21 20:41
谢谢!好像还有另处一种方法,如有点: (x1,y1) (x2,y2)(x3,y3)....则面积等于(x1*y2-y1*x2)+....,不知道 ...

测量书本上有计算多边形(不规则)图形的面积计算公式
发表于 2022-11-13 12:35:44 来自手机 | 显示全部楼层
学习了。。刚好有个地方用到
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-23 13:58 , Processed in 0.191114 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表