
vb计算多边形面积
展开全部
算法思想:
凸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
凸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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询