- 注册时间
- 2009-7-10
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 4811
- 在线时间
- 小时
|
发表于 2010-11-9 22:12:11
|
显示全部楼层
本帖最后由 056254628 于 2010-11-10 02:31 编辑
mathe的方法都是建立在分图形的Fans心刚好都是关于分界垂直平分。这样的结果是不是能算出最小值,没有被证明。
我的思路,任意设定三个站点的坐标,利用解析方法计算出垂直平分线及图形的分界,计算每个图形的平均距离。对三个分图形的平均距离再进行平均。而权重系数就是图形的面积。
可以采用我在14楼所说的总平均距离的计算公式。
---------------------------------------------------------------------
计算图形的平均距离,有精确公式。可以大大减少计算它所花的时间。
可以把目标点与图形的所有顶点相连,这样就把图形分成了若干个三角形的组合。
我们只要有了计算三角形对其顶点的平均距离的计算公式,就可计算所有图形的计算公式。为了计算方便,把 三角形对其顶点的平均距离乘以其面积作为一个关于三角形三个顶点的函数。
d=OA
L=AB
k=L/d
直角三角形对O点的平均距离乘以面积记作f(d,L).
那么 $f(d,L)=1 / 6 * d ^ 3 * (k * sqrt(k ^ 2 + 1) + ln(k + sqrt(k ^ 2 + 1)))$
-------------------------------------------------
一般三角形,三个顶点的坐标为(x1,y1),(x2,y2),(x3,y3).
那么三角形对点(x1,y1)的平均距离乘以面积(记作g(x1,y1,x2,y2,x3,y3))
那么 g(x1,y1,x2,y2,x3,y3) 的计算公式: g(x1,y1,x2,y2,x3,y3)简写成g
设 $t=sqrt((y3 - y2) ^ 2 + (x3 - x2) ^ 2)$
设$d = ((y3 - y2) * (x1 - x2) + (x2 - x3) * (y1 - y2)) / sqrt((y3 - y2) ^ 2 + (x3 - x2) ^ 2)$
1.若 t=0或d=0 那么 g=0
2.
x = x1 - (y3 - y2) * d/t
y = y1 - (x2 - x3) * d/t
$d1 = sqrt((x3 - x2) ^ 2 + (y3 - y2) ^ 2)$
$ d2 = sqrt((x - x2) ^ 2 + (y - y2) ^ 2)$
$d3 = sqrt((x - x3) ^ 2 + (y - y3) ^ 2)$
当d2 < d1 且 d3 < d1 时 $g= f(|d|, d2) + f(|d|, d3)$
否则 $ g= |f(|d|, d2) -f(|d|, d3)|$
有了一般三角形的计算平均距离的公式,计算其他复杂图形的公式就非常简单了。根据站点计算图形的分界。再把每个分图形分成以各自站点为顶点的三角形。计算所有三角形的g值的和,除以总面积S就得到总图形的平均距离。对于单位正方形城市,S=1.
总图形的平均距离D=(∑ g)/S= ∑ g |
|