TBE_Legend 发表于 2011-8-18 13:31:49

由若干点连成的封闭的平面多边形,如何计算面积?

本帖最后由 TBE_Legend 于 2011-8-18 13:32 编辑

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

求: 这个多边形的面积。

TBE_Legend 发表于 2011-8-18 13:35:09

已知:N 个点, 这个N个点可以练成一个封闭 平面 多边形。只考虑最简单的情况,即,每个点处只有两条直 ...
TBE_Legend 发表于 2011-8-18 13:31 http://forum.simwe.com/images/common/back.gif

{{168.872, 146.285, 0}, {168.823, 146.594, 0}, {168.681, 146.873,
0}, {168.46, 147.094, 0}, {168.181, 147.236, 0}, {167.872, 147.285,
0}, {167.563, 147.236, 0}, {167.284, 147.094, 0}, {167.063, 146.873,
   0}, {166.921, 146.594, 0}, {166.872, 146.285, 0}, {166.921,
145.976, 0}, {167.063, 145.697, 0}, {167.284, 145.476, 0}, {167.563,
   145.334, 0}, {167.872, 145.285, 0}, {168.181, 145.334, 0}, {168.46,
   145.476, 0}, {168.681, 145.697, 0}, {168.823, 145.976, 0}}


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

AeroMusic 发表于 2011-8-18 15:57:12

http://mathworld.wolfram.com/DelaunayTriangulation.html

http://mathworld.wolfram.com/MinimalEnclosingCircle.html

jimogsh 发表于 2011-8-18 16:02:39

本帖最后由 jimogsh 于 2011-8-18 16:20 编辑

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

FlyingDuckman 发表于 2011-8-18 18:38:01

本帖最后由 FlyingDuckman 于 2011-8-18 18:49 编辑

<< Polytopes`;Area但是只能求几种单位边长的正多边形面积...如果只要答案的话就用CAD里的Area指令吧

waynebuaa 发表于 2011-8-19 09:11:57

本帖最后由 waynebuaa 于 2011-8-19 09:14 编辑

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

guocong89 发表于 2011-8-19 10:06:53

回复 6# waynebuaa

顺时针的概念不清,参考点是谁?

TBE_Legend 发表于 2011-8-20 07:00:55

回复waynebuaa

顺时针的概念不清,参考点是谁?
guocong89 发表于 2011-8-19 10:06 http://forum.simwe.com/images/common/back.gif

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

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

TBE_Legend 发表于 2011-8-20 07:02:40

但是只能求几种单位边长的正多边形面积...如果只要答案的话就用CAD里的Area指令吧
FlyingDuckman 发表于 2011-8-18 18:38 http://forum.simwe.com/images/common/back.gif

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

谢谢

waynebuaa 发表于 2011-8-20 08:08:48

回复 8# TBE_Legend
不一定是顺时针,逆时针也可以的,最终只是影响了结果的正负号。
但千万别乱序就行。
因为,很简单
给定无序的n个点,不能唯一的确定一个多边形!

waynebuaa 发表于 2011-8-20 08:17:48

回复 8# TBE_Legend

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

jimogsh 发表于 2011-8-20 12:22:52

回复 11# waynebuaa


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

waynebuaa 发表于 2011-8-20 21:43:33

:)    ......

AeroMusic 发表于 2011-8-22 09:37:51

就是这些点的顺序, a1,a2,...,an 的顺序是正时针旋转就行,或以这个封闭曲线内部的任一点为参考做正时 ...
TBE_Legend 发表于 2011-8-20 07:00 http://forum.simwe.com/images/common/back.gif

Try FindCurvePath, May works.

http://reference.wolfram.com/mathematica/ref/FindCurvePath.html
页: [1]
查看完整版本: 由若干点连成的封闭的平面多边形,如何计算面积?