找回密码
 注册
Simdroid-非首页
查看: 218|回复: 13

[基础概念] 由若干点连成的封闭的平面多边形,如何计算面积?

[复制链接]
发表于 2011-8-18 13:31:49 | 显示全部楼层 |阅读模式 来自 黑龙江哈尔滨
本帖最后由 TBE_Legend 于 2011-8-18 13:32 编辑

已知:  N 个点, 这个N个点可以练成一个封闭 平面 多边形。  只考虑最简单的情况,即,每个点处只有两条直线共享,也不考虑折叠,翻转啥的。

求: 这个多边形的面积。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2011-8-18 13:35:09 | 显示全部楼层 来自 黑龙江哈尔滨
Simdroid开发平台
已知:  N 个点, 这个N个点可以练成一个封闭 平面 多边形。  只考虑最简单的情况,即,每个点处只有两条直 ...
TBE_Legend 发表于 2011-8-18 13:31

  1. {{168.872, 146.285, 0}, {168.823, 146.594, 0}, {168.681, 146.873,
  2.   0}, {168.46, 147.094, 0}, {168.181, 147.236, 0}, {167.872, 147.285,
  3.   0}, {167.563, 147.236, 0}, {167.284, 147.094, 0}, {167.063, 146.873,
  4.    0}, {166.921, 146.594, 0}, {166.872, 146.285, 0}, {166.921,
  5.   145.976, 0}, {167.063, 145.697, 0}, {167.284, 145.476, 0}, {167.563,
  6.    145.334, 0}, {167.872, 145.285, 0}, {168.181, 145.334, 0}, {168.46,
  7.    145.476, 0}, {168.681, 145.697, 0}, {168.823, 145.976, 0}}
复制代码



比如,上面是某个一个圆的坐标点, 如何计算这个圆的面积? 不要拟合的方法,因为圆只是举个例子,还可以是别的形状。
回复 不支持

使用道具 举报

发表于 2011-8-18 15:57:12 | 显示全部楼层 来自 上海
回复 不支持

使用道具 举报

发表于 2011-8-18 16:02:39 | 显示全部楼层 来自 甘肃兰州
本帖最后由 jimogsh 于 2011-8-18 16:20 编辑

http://demonstrations.wolfram.com/SignedAreaOfAPolygon/
http://mathworld.wolfram.com/PolygonArea.html
第二个链接给出了算法

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-8-18 18:38:01 | 显示全部楼层 来自 湖南长沙
本帖最后由 FlyingDuckman 于 2011-8-18 18:49 编辑
  1. << Polytopes`;Area[Polygon]
复制代码
但是只能求几种单位边长的正多边形面积...如果只要答案的话就用CAD里的Area指令吧

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-8-19 09:11:57 | 显示全部楼层 来自 北京
本帖最后由 waynebuaa 于 2011-8-19 09:14 编辑

回复 2# TBE_Legend
设各个点顺时针依次为a1,a2,a3,..................
顺次求三角形a1a2a3 , a1a3a4,a1a4a5 ,。。。的面积 (,用行列式求,注意方向,有正负),加起来再取绝对值即可

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-8-19 10:06:53 | 显示全部楼层 来自 北京
回复 6# waynebuaa

顺时针的概念不清,参考点是谁?
回复 不支持

使用道具 举报

 楼主| 发表于 2011-8-20 07:00:55 | 显示全部楼层 来自 山东济南
回复  waynebuaa

顺时针的概念不清,参考点是谁?
guocong89 发表于 2011-8-19 10:06


就是这些点的顺序, a1,a2,...,an 的顺序是正时针旋转就行,或以这个封闭曲线内部的任一点为参考做正时针旋转。

现在的问题是,如何简单有效地把这些点按正时针顺序排列起来呢? 比如下面这些点。
  1. {{168.872, 146.285, 0}, {168.823, 146.594, 0}, {168.681, 146.873,
  2.   0}, {168.46, 147.094, 0}, {168.181, 147.236, 0}, {167.872, 147.285,
  3.   0}, {167.563, 147.236, 0}, {167.284, 147.094, 0}, {167.063, 146.873,
  4.    0}, {166.921, 146.594, 0}, {166.872, 146.285, 0}, {166.921,
  5.   145.976, 0}, {167.063, 145.697, 0}, {167.284, 145.476, 0}, {167.563,
  6.    145.334, 0}, {167.872, 145.285, 0}, {168.181, 145.334, 0}, {168.46,
  7.    145.476, 0}, {168.681, 145.697, 0}, {168.823, 145.976, 0}}
复制代码
多谢各位,意见都很好~
回复 不支持

使用道具 举报

 楼主| 发表于 2011-8-20 07:02:40 | 显示全部楼层 来自 山东济南
但是只能求几种单位边长的正多边形面积...如果只要答案的话就用CAD里的Area指令吧
FlyingDuckman 发表于 2011-8-18 18:38


用的是solidworks,但没有找到求取面积的api,我的程序只能用命令,不能手动操作。

谢谢
回复 不支持

使用道具 举报

发表于 2011-8-20 08:08:48 | 显示全部楼层 来自 北京顺义
回复 8# TBE_Legend
不一定是顺时针,逆时针也可以的,最终只是影响了结果的正负号。
但千万别乱序就行。
因为,很简单
给定无序的n个点,不能唯一的确定一个多边形!
回复 不支持

使用道具 举报

发表于 2011-8-20 08:17:48 | 显示全部楼层 来自 北京顺义
回复 8# TBE_Legend

你的标题是“由若干点连成的封闭的平面多边形,如何计算面积?”
说明你已经事先给定了点的连线顺序。
========================
接下来,你只需按照这个顺序依次求行列式的值就行
回复 不支持

使用道具 举报

发表于 2011-8-20 12:22:52 | 显示全部楼层 来自 甘肃兰州
回复 11# waynebuaa


    对啊,如果只是一堆散点的话也就无所谓面积了。如果已经存在唯一的多边形点的顺序应该也是已经确定的
回复 不支持

使用道具 举报

发表于 2011-8-20 21:43:33 | 显示全部楼层 来自 北京顺义
:)    ......
回复 不支持

使用道具 举报

发表于 2011-8-22 09:37:51 | 显示全部楼层 来自 上海
就是这些点的顺序, a1,a2,...,an 的顺序是正时针旋转就行,或以这个封闭曲线内部的任一点为参考做正时 ...
TBE_Legend 发表于 2011-8-20 07:00


Try FindCurvePath, May works.

http://reference.wolfram.com/mathematica/ref/FindCurvePath.html

评分

2

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-25 08:56 , Processed in 0.065579 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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