使用python 在已知圆弧两个端点和中点坐标 计算圆弧的圆心坐标
2012-12-07 09:29
2156 查看
代码中x1 y1是端点1 ,x3 y3是端点2,x2 y2是中点。
# -*- coding:utf-8 -*-
#use to caculator the arc center from the three point
def getCenter(x1,y1,x2,y2,x3,y3):
# x1 = 55.962697
# y1 = 12.807461
# x2 = 53.49
# y2 = 25.11
# x3 = 43.0
# y3 = 32.0
a = (x1 -x2)*(x1-x2)*(x1-x3)
b = (x1 -x2)*2*y2*(y1-y3)
c = a - b
d = (pow(y2,2)-pow(y1,2))*(x1-x3)
e = (y1-y2)*(x1-x3)
f = (y1-y3)*(x2-x1)
g = 2*(e+f)
if g == 0:
print "Caculator error"
return False
y0 = (c-d) / g
print "y0",y0
i = 2*y0*(y1-y2)
j = (pow(y2,2)-pow(y1,2)) + (pow(x2,2)-pow(x1,2))
k = i + j
l = 2*(x2-x1)
if l == 0:
print "Caculator error"
return False
x0 = k / l
print "x0",x0
return (x0,y0)
# 程序入口
if (__name__=="__main__"):
getCenter(1,0,0,1,-1,0)
# -*- coding:utf-8 -*-
#use to caculator the arc center from the three point
def getCenter(x1,y1,x2,y2,x3,y3):
# x1 = 55.962697
# y1 = 12.807461
# x2 = 53.49
# y2 = 25.11
# x3 = 43.0
# y3 = 32.0
a = (x1 -x2)*(x1-x2)*(x1-x3)
b = (x1 -x2)*2*y2*(y1-y3)
c = a - b
d = (pow(y2,2)-pow(y1,2))*(x1-x3)
e = (y1-y2)*(x1-x3)
f = (y1-y3)*(x2-x1)
g = 2*(e+f)
if g == 0:
print "Caculator error"
return False
y0 = (c-d) / g
print "y0",y0
i = 2*y0*(y1-y2)
j = (pow(y2,2)-pow(y1,2)) + (pow(x2,2)-pow(x1,2))
k = i + j
l = 2*(x2-x1)
if l == 0:
print "Caculator error"
return False
x0 = k / l
print "x0",x0
return (x0,y0)
# 程序入口
if (__name__=="__main__"):
getCenter(1,0,0,1,-1,0)
相关文章推荐
- 已知圆弧上两点坐标及圆半径,计算圆心坐标
- 高德已知圆心,半径,计算圆弧坐标
- 在百度地图API开发中已知两个点之间的经纬度坐标计算其距离
- C++ 计算一个线段长度,两个端点的坐标值分别为(100,200)(200,300)。要求:定义一个CLine类,属性是CPoint对象。(初始化参数列表)
- 已知圆弧上两点坐标和半径求圆心坐标的算法(C++)
- 使用iOS原生类计算两个坐标点之间的距离
- 在百度地图API开发中已知两个点之间的经纬度坐标计算其距离
- Python:通过计算阶乘来学习lambda和reduce这两个函数的使用
- Python:通过计算阶乘来学习lambda和reduce这两个函数的使用
- Python:通过计算阶乘来学习lambda和reduce这两个函数的使用
- python实现已知两个点坐标求与正北夹角度数
- 在arcgis使用python脚本进行字段计算时是如何解决中文问题的
- 使用python中openpyxl模块操作excel文件,计算单元格分子式的相对分子质量(二)
- 已知两点坐标和半径求圆心坐标程序C++
- C#中使用TimeSpan计算两个时间的差值
- Python使用difflib对比两个文件操作实例
- Hdu 4052 Adding New Machine(给你W*H大小的矩形,其中有N个地区不能使用(给出了这个地区的两个顶点的坐标即(x1,y1)和(x2,y2)),问能下多少个1*M的矩形)
- 7.设计一个抽象类Shape, 属性为x和y,表示圆心坐标,计算面积的抽象方法double area(),并设计一个计算圆心距离坐标原点距离的方法distance(double x ,double y
- C++设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角与右下角两个点的坐标,根据坐标计算矩形的面积
- 如何使用python计算2个毫秒级字符串的计算