- 积分
- 36247
- 明经币
- 个
- 注册时间
- 2006-12-16
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2007-5-17 07:33:00
|
显示全部楼层
不懂几何求解,只能先给个结果,是利用python编程的,不过还是要寻求几何解,不过似乎很难,还请高手指教
python代码(activepython+scipy)- import os
- import math
- from scipy import *
- from scipy.optimize import fsolve
- def dis(p0,p1):
- p0x=p0[0]
- p0y=p0[1]
- p1x=p1[0]
- p1y=p1[1]
- return math.sqrt((p0x-p1x)**2+(p0y-p1y)**2)
- def p2l(p1,p2,p3):
- return [dis(p1,p2),dis(p2,p3),dis(p3,p1)]
- def in_rb(p1,p2,p3):
- l=p2l(p1,p2,p3)
- a=l[0]
- b=l[1]
- c=l[2]
- p=0.5*(a+b+c)
- return [math.sqrt((p-a)*(p-b)*(p-c)/p),p-c]
- def func(x):
- point1=[0,0]
- point2=[x[0],0]
- point3=[x[1],45]
- point11=[100,0]
- res1=in_rb(point1,point2,point3)
- res2=in_rb(point11,point2,point3)
- out=[res1[0]-2*res2[0]]
- out.append(res1[1]-res2[1])
- return out
- x02 = fsolve(func, [50, 50])
- print x02
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
评分
-
查看全部评分
|