如题,依次点若干个点,形成一个多边形,如何计算其面积.
主要想请教大家多边形面积的计算公式,不过有代码示范那就最好了.
主要想请教大家多边形面积的计算公式,不过有代码示范那就最好了.
解决方案 »
- 祝老魏同志生日快乐
- 急等!!!
- mshflexgrid的leavecell和rowcolchange事件的问题。
- TXT文件大小问题?
- 水晶报表9打包发布的问题?
- 数据库字段na为字符串形。有一个值为t'20,如何处理'
- 100分 ,20 分钟结帐!! VB生成的*.exe文件那个的运行包,网上下的,5M左右,我忘记在哪里了。连名字都拼不起来了。 急! 100分,20
- 向高手请教:程序写好后需要用汇编来调试吗?
- 請問如何用VB創建桌面快捷方式和創建在開始菜單中呢.還有在VB中如何設置打印機直印或橫印呢
- 怎样用VB实现视频,音频和文字信息的同时传送。
- 两个简单问题,谢谢!
- 怎么把日期转成UNIX 时间戳型式? 如(1109001909445这样的时间戳转换为类似2004-2-22 10:45:53秒
有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)
'假定10边形
n = 10
s = 0#
Dim x(10), y(10)
For i = 1 To 10
x(i) = InputBox("X(" & i & ")=")
y(i) = InputBox("Y(" & i & ")=")
Next
For i = 2 To 9
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 "多边行的确面积:" & sEnd Sub
y(n+1)=y(1)
for i=1 to n
s=x(i)*y(i+1)-y(i)x(i+1)
next
s=s/2
这个公式可以用有向三角形推出来
逆时针结果为正,顺时针为负