算法思想:
凸n边形有n个顶点:A1,A2,A3,A4,An的多边形,坐标为(x1,y1),(x2,y2),(x3,y3),(Xn,Yn)
切割成S123,S134,S145,S1(n-1)n,其中S123为A1A2A3的三角形。
三角形的面积求法是S=sqr(p(p-a)(p-b)(p-c)),其中,p=(a+b+c)/2,a、b、c为边长,a=sqr((x1-x2)^2+(y1-y2)^2)
代码(用户依次输入各点坐标(x,y)):
Private
Sub
Command1_Click()
'假定12边形
n
=
12
s
=
0
Dim
x(12),
y(12)
For
i
=
1
To
12
x(i)
=
InputBox("X("
&
i
&
")=")
y(i)
=
InputBox("Y("
&
i
&
")=")
Next
For
i
=
2
To
11
a
=
Sqr((x(1)
-
x(i))
^
2
+
(y(1)
-
y(i))
^
2)
b
=
Sqr((x(1)
-
x(i
+
1))
^
2
+
(y(1)
-
y(i
+
1))
^
2)
c
=
Sqr((x(i)
-
x(i
+
1))
^
2
+
(y(i)
-
y(i
+
1))
^
2)
p
=
(a
+
b
+
c)
/
2
s0
=
Sqr(p
(p
-
a)
(p
-
b)
(p
-
c))
s
=
s
+
s0
Next
MsgBox
"多边形的面积为"
&
s
End
Sub
问题一:已知任意多边形各边长,怎样算面积 1,把你这个多边形的各点在EXCEL上坐标按(X,Y)格式做好,只要是图形就应该能够按一个点作为原点制作坐标。
2,然后在CAD命令栏里输入PL命令,或者点击多段线图标也行。
3,将EXCEL上做好的多边形的坐标数据复制,在CAD命令栏里粘贴,CAD会自动生成你的多边形。
4,点击CAD菜单栏上的面域图标,将这个多边形制作成一个面域。
5,点击CAD上面域求面积菜单就可以通过求出你的多边形面积了。
6,打印和一般CAD图没有什么区别,建议用选定窗口打印。
问题二:已知任意一个多边形的各个顶点的坐标,怎么去求该多边形的面积?(写下代码和思想--C语言) 用叉乘(或者叫向量积)设多边形的点按某顺序依次是(x1,y1),(x2,y2),,(xn,yn)我们任选一个点和每条边相连,相邻的边做叉乘再除以2(构成三角形的有向面积),一般我们选原点(0,0)则面积S=(x1y2-x2y1)/2+(x2y3-x3y2)/2++(xny1-x1yn)/2这里S是有向面积 还要取绝对值程序很简单了 如果数组标号是0到n-1则double s=0;for (int i=0;i 问题三:用任意多边形面积公式计算四边形面积为负数(Matlab)是怎么回事 你把x和y的点的顺序倒过来就是正的,即改为
x=[200 100 50 0];
y=[0 200 250 250];
说明逆时针旋转为正,顺时针为负。
祝学习愉快
问题四:用c语言编写"求任意多边形的面积" 自己去百度微积分的C语言实现,既然是任意多边形肯定是要用微积分的
问题五:求教怎么编写一个求任意多边形面积的程序 #include
#define PI 314int main()
{
double r;
scanf(%lf, &r);
printf(%lf, r r PI);
}
问题六:你好,如果知道任意多边形的周长如何计算面积 不能,除非是正多边形
首先周长不是问题,
另外,关于面积,需要考虑是凹多边形还是凸多边形,
如果是凸多边形,就是太简单了点:取任意一点p0,它旁边的点依次标记为p1,p2,p3,pn
面积
=
(p0,p1,p2)+(p0,p2,p3)++(p0,pn-1,pn)
其中,(pn-2,pn-1,pn)点集合组成三角形,将求多边形的面积转化为去三角形的面积
如果是凹多边形,按凸多边形的计算出来,然后减去角度凹进形成的三角形的面积(关键就是判断角度,如果放在二维图中,根据坐标组合判断)
//首先找到正n边行的中心点O,我们把中心O与各个顶点连接起来,
//那么正n边形分成n个全等的等腰三角形,我们只需要算成其中一个面积乘以n就是总面积
//假如这个正n边形有两个相邻的顶点A和B,连接OA,OB。得到等腰三角形OAB,其中OA=OB
//可以看出来∠AOB=360/n ,AB边的高 h=(a/2)/tan(360/2n)。其中a是正多边形的边长
public double normalPolygonArea(int n,double a){
if(n<3 || a<0)
return 0;
double pi = 314159265354; //定义π
double h =(a/2)/Mathtan(pi/n); //计算等腰三角形的高
double triangle =ah/2; //计算三角形的面积
return trianglen; //返回正多边形面积
}
面积计算公式:皮克公式:格点多边形面积=多边形一周的格点数÷2+多边形内部格点数-1
设格点多边形的面积为s,它各边上格点的个数和为x。
格点多边形,其内部都只有一个格点,它们的面积与各边上格点的个数和的对应关系如下表,请写出s与x之间的关系式。
扩展资料;
1、格点多边形的面积必为整数或半整数(奇数的一半)。
2、格点关于格点的对称点为格点。
3、格点多边形面积公式,设某格点多边形内部有格点a个,格点多边形的边上有格点b个,该格点多边形面积为S,则根据皮克公式有S=a+b/2-1。
4、格点正多边形只能是正方形。
5、格点三角形边界上无其他格点,内部有一个格点,则该点为此三角形的重心。
参考资料来源:百度百科-格点
Public Function CalArea(Rng As Range) As Double
Dim x0 As Double, y0 As Double, x1 As Double, y1 As Double, x2 As Double, y2 As Double, TC As Long, TempArea As Double
TC = RngRowsCount
If TC < 3 Then
MsgBox "坐标数少于3,无法计算面积!"
CalArea = 0
Exit Function
End If
x0 = RngCells(1, 1)
y0 = RngCells(1, 2)
For i = 2 To TC
x1 = RngCells(i - 1, 1)
y1 = RngCells(i - 1, 2)
x2 = RngCells(i, 1)
y2 = RngCells(i, 2)
TempArea = TempArea + x1 y2 - x2 y1
Next
TempArea = 05 (TempArea + x2 y0 - x0 y2)
CalArea = TempArea
End Function
我这函数是适用于把X坐标与Y坐标分成两列写了,以下截图是使用方法
如果你的坐标是XY坐标写在同一个单元格,那么函数需要改动一下
任意多边形面积计算公式:(x-1,y-1)x(x-2,y-2)。
任意多边形面积计算公式:(x-1,y-1)x(x-2,y-2)。数学用语,由三条或三条以上的线段首尾顺次连接所组成的平面图形叫做多边形。按照不同的标准,多边形可以分为正多边形和非正多边形、凸多边形及凹多边形等。
当物体占据的空间是二维空间时,所占空间的大小叫做该物体的面积,面积可以是平面的也可以是曲面的。平方米,平方分米,平方厘米,是公认的面积单位,用字母可以表示为(m,dm²,cm²)。面积是表示平面中二维图形或形状或平面层的程度的数量。
任意多边形,是指使用“曲线”、“任意多边形”和“自由曲线”工具绘制的任意形状。任意多边形形状可包括直线和手绘曲线。可绘制为开放的和闭合的形状并可使用绘图工具进行编辑。
绘制多边形方法:
以MicrosoftWord最新版本Word2010为例介绍绘制任意多边形的方法:
第1步,打开Word2010文档窗口,切换到“插入”功能区。在“插图”分组中单击“形状”按钮,并在打开的形状面板“线条”区域单击“任意多边形”选项。
第2步,将鼠标指针移动到Word2010页面中,在任意多边形起点位置单击鼠标左键。然后移动鼠标指针至任意多边形第二个顶点处单击鼠标左键,以此类推,分别在第三个顶点、第四个顶点……单击鼠标左键。
如果所绘制的多边形为非闭合的形状,则在最后一个顶点处双击鼠标左键;如果所绘制的多边形为闭合的形状,则将最后一个顶点靠近起点位置时,终点会自动附着到起点并重合,此时单击鼠标左键即可。
基本思路是分解成小的图元,如三角形。
凸多边形还是凹多边形(以下假定已知按时针顺序排列的顶点坐标)?
未知:可以判断每两条边的夹角,如果有大于平角的,那肯定是凹多边形。
凹多边形:可以转为凸多边形。找到大于平角的顶点(就是前面说的那个),连接两边相交的顶点的邻近两个顶点,计算该三角形的面积(算好总面积后要减去这个三角形面积),从多边形的顶点表中删除该顶点(两边相交交点),这样可以转为凸多边形。
凸多边形:可以定一初始顶点,然后连接除相邻两个顶点之外的各个顶点,由三条边的长度计算每个三角形的面积,相加即可。
以上涉及的基本运算:
1、由三边求三角形面积;
2、求两边夹角。
以上就是关于vb计算多边形面积全部的内容,包括:vb计算多边形面积、任意多边形怎么求面积、计算任意多边形周长和面积的VB程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)