求多边形面积 三角形分割法
来源:互联网 发布:电话监控软件 编辑:程序博客网 时间:2024/05/12 02:25
Rem 凸n变形可以看成是n-1个三角形的面积
Rem 三角形的面积S=sqr(p*(p-a)*(p-b)*(p-c)),其中,p=(a+b+c)/2,a、b、c为边长,边长=sqr((x1-x2)^2+(y1-y2)^2),而(x1,y1)和(x2,y2)分别为两点的坐标值
Rem 以下代码为求任意多边形的面积,边数由用户自行决定
Private Sub Command1_Click()
Dim n, s, i, x(), y(), a, b, c, p
k:
n = Int(Val(Trim(InputBox("请输入多边形的边数:", "多边形面积", 3))))
If n < 3 Then MsgBox "边数必须≥3!请重试!", , "多边形面积": GoTo k
On Error Resume Next
ReDim x(1 To n), y(1 To n)
s = 0
For i = 1 To n
x(i) = Val(Trim(InputBox("请输入" & IIf(n = 3, "三角形", n & "边形") & "第" & i & "个点的横坐标:")))
y(i) = Val(Trim(InputBox("请输入" & IIf(n = 3, "三角形", n & "边形") & "第" & i & "个点的横坐标:")))
If i > 1 Then Line (x(i), y(i))-(x(i - 1), y(i - 1))
Next
For i = 2 To n - 1
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
s = s + Sqr(p * (p - a) * (p - b) * (p - c))
Next
MsgBox IIf(n = 3, "三角形", n & "边形") & "面积是" & s, , "多边形面积"
End Sub
- 求多边形面积 三角形分割法
- 叉乘法求三角形的面积及任意多边形面积
- C++ 求多边形面积,(通过计算三角形)
- 求不规则多边形面积
- 多边形求面积,
- hdu2036 求多边形面积
- hdu2036 求多边形面积
- Hdu2036-求多边形面积
- 怎样求多边形面积
- 求多边形面积
- hud2036 求多边形面积
- 求多边形面积
- 求多边形面积
- HDU2036 求多边形面积
- 求多边形的面积
- 【多边形面积】求多边形的面积 pol
- JSP求三角形面积
- 求三角形的面积
- [转]为VS2008添加AJAX Control Toolkit3.5
- linux设置IP路由等网络命令汇总
- 博文收藏分类:博主
- 如何自动判断Request.QueryString参数的编码格式
- Linux NFS安装与配置
- 求多边形面积 三角形分割法
- C程序编程习惯总结
- JAVA 2核心技术第七版(中文pdf)
- javascript dateUtil.js
- Oracle 归档与非归档的切换
- 今天笔试时候所遇到的题
- C++中成员初始化列表的使用
- oracle RAC环境改归档模式步骤
- javascript 截取字符串