| 赞 | 486 |
| VIP | |
| 好人卡 | |
| 积分 | 498 |
| 经验 | |
| 最后登录 | 2026-10-12 |
| 在线时间 | 7956 小时 |
老黄鸡
- 梦石
- 4
- 星屑
- 45793
- 在线时间
- 7956 小时
- 注册时间
- 2009-7-6
- 回帖
- 13338
   
|
发表于 2010-9-30 06:55:26
|
显示全部楼层
给个求面积思路…… 水水水水……
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)分别为两点的坐标值
用到变量 n, s, i, x(i), y(i), a, b, c, p
k:
n = 多边形数
n < 3 出错
x()和y() 数组定义为0到n
For i = 1...n
x(i) = 第i个点的横坐标
y(i) = 第i个点的纵坐标
end
For i = 2 ... n - 1
a = Sqr((x(1) - x(i)) ^ 2 + (y(1) - y(i)) ^ 2) #不知道RUBY支持这种算法否?
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))
end
s就是面积 |
|