Python求两个圆的交点坐标或三个圆的交点坐标方法
计算两个圆的交点
代码如下:
# -*- coding: utf-8 -*-
import math
import numpy as np
def insec(p1,r1,p2,r2):
x = p1[0]
y = p1[1]
R = r1
a = p2[0]
b = p2[1]
S = r2
d = math.sqrt((abs(a-x))**2 + (abs(b-y))**2)
if d > (R+S) or d < (abs(R-S)):
print ("Two circles have no intersection")
return
elif d == 0 and R==S :
print ("Two circles have same center!")
return
else:
A = (R**2 - S**2 + d**2) / (2 * d)
h = math.sqrt(R**2 - A**2)
x2 = x + A * (a-x)/d
y2 = y + A * (b-y)/d
x3 = round(x2 - h * (b - y) / d,2)
y3 = round(y2 + h * (a - x) / d,2)
x4 = round(x2 + h * (b - y) / d,2)
y4 = round(y2 - h * (a - x) / d,2)
print (x3, y3)
print (x4, y4)
c1=np.array([x3, y3])
c2=np.array([x4, y4])
return c1,c2
P1=np.array([-5,0])
R1=10
P2=np.array([5,0])
R2=5
C=insec(P1,R1,P2,R2)
C1=C[0]
C2=C[1]
计算三个圆的交点,首先要保证三个圆必须有共同的交点,然后调用两次函数,再求交集,即可算出三个圆的交点。
以上这篇Python求两个圆的交点坐标或三个圆的交点坐标方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
python画出三角形外接圆和内切圆的方法
刚看了<最强大脑>中英对决,其中难度最大的项目需要选手先脑补泰森多边形,再找出完全相同的两个泰森多边形.在惊呆且感叹自身头脑愚笨的同时,不免手痒想要借助电脑弄个图出来看看,闲来无事吹吹牛也是极好的. 今天先来画画外接圆和内切圆,留个大坑后面来填. 外接圆圆心:三角形垂直平分线的交点. 内切圆圆心:三角形角平分线的交点. 有了思路,就可以用万能的python来计算了 import matplotlib.pyplot as plt from scipy.linalg import solve im
-
Python求两个文本文件以行为单位的交集、并集与差集的方法
本文实例讲述了Python求两个文本文件以行为单位的交集.并集与差集的方法.分享给大家供大家参考.具体实现方法如下: s1 = set(open('a.txt','r').readlines()) s2 = set(open('b.txt','r').readlines()) print 'ins: %s'%(s1.intersection(s2)) print 'uni: %s'%(s1.union(s2)) print 'dif: %s'%(s1.difference(s2).union(s
-
Python求两个圆的交点坐标或三个圆的交点坐标方法
计算两个圆的交点 代码如下: # -*- coding: utf-8 -*- import math import numpy as np def insec(p1,r1,p2,r2): x = p1[0] y = p1[1] R = r1 a = p2[0] b = p2[1] S = r2 d = math.sqrt((abs(a-x))**2 + (abs(b-y))**2) if d > (R+S) or d < (abs(R-S)): print ("Two circles
-
python 求某条线上特定x值或y值的点坐标方法
问题可以转换为:求一条垂直于x轴或平行于y轴的直线与该线的交点 import numpy as np import shapely.geometry as SG #某条线 list(zip(x,y))为线上的坐标点的list line = SG.LineString(list(zip(x,y))) #(1,0)到(1,100)两点的连线 yline = SG.LineString([(1, 0), (1, 100)]) #or (0,1)到(100,1)两点的连线 xline = SG.Line
-
Python求两个list的差集、交集与并集的方法
本文实例讲述了Python求两个list的差集.交集与并集的方法.分享给大家供大家参考.具体如下: list就是指两个数组之间的差集,交集,并集了,这个小学数学时就学过的东西,下面就以实例形式对此加以分析. 一.两个list差集 如有下面两个数组: a = [1,2,3] b = [2,3] 想要的结果是[1] 下面记录一下三种实现方式: 1. 正常的方式 复制代码 代码如下: ret = [] for i in a: if i not in b: ret.append(
-
基于python求两个列表的并集.交集.差集
这篇文章主要介绍了基于python求两个列表的并集.交集.差集,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 求两个列表的差集 >>> a = [1,2,3] >>> b=[1,2] >>> #################################### >>> #两个列表的差集 >>> ret = [] >>> for i in a:
-
python求两个时间的时间差(实例代码)
我们在用python进行分析的时候,可能会碰到计算两个日期的时间差.下面为大家介绍一下如何计算两个时间的时间差: from dateutil.parser import parse a = parse('2017-10-01/12:12:12') b = parse('2013-3-4/10:10:10') (a-b).days (a-b).seconds (a-b).total_seconds() 为大家介绍上面三种函数的含义: 1.days:来获取时间差的天数 2.seconds:来获取时间
-
python 求两个向量的顺时针夹角操作
以上述图片举例,要求 相对 的顺时针夹角.注意:这里使用图像坐标系 1 定义求顺时针角度的函数 import numpy as np def clockwise_angle(v1, v2): x1,y1 = v1 x2,y2 = v2 dot = x1*x2+y1*y2 det = x1*y2-y1*x2 theta = np.arctan2(det, dot) theta = theta if theta>0 else 2*np.pi+theta return theta 2 求 , 然后求夹
-
Python求两个字符串最长公共子序列代码实例
一.问题描述 给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence).比如字符串1:BDCABA:字符串2:ABCBDAB.则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA 二.算法求解 这是一个动态规划的题目.对于可用动态规划求解的问题,一般有两个特征:①最优子结构:②重叠子问题 ①最优子结构 设X=(x1,x2,...,xn)和Y=(y1,y2,...,ym)是两个序列,将X和Y的最长公共子序列记为LCS(X,Y) 找出LCS(X
-
Python判断两个list是否是父子集关系的实例
list1 和list2 两个list , 想要得到list1是不是包含 list2 (是不是其子集 ) a = [1,2] b = [1,2,3] c = [0, 1] set(b) > set(a) set(b) > set(c) 返回 True False 以上这篇Python判断两个list是否是父子集关系的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: Python求两个list的差集.交集与并集的方法 Python中类型关系
-
JAVA求两直线交点和三角形内外心的方法
一.求两直线交点 复制代码 代码如下: class Point { double x; double y; public Point() { this.x = 0; this.y = 0; }}class Line { Point a; Point b; public Line() { this.a = new Point(); this.b = new Point(); } //求两直线的交点,斜
随机推荐
- 在CentOS上MySQL数据库服务器配置方法
- 浅谈angular2的http请求返回结果的subcribe注意事项
- JavaScript中property和attribute的区别详细介绍
- javascript中有趣的反柯里化深入分析
- 在DW8中CSS应用怎么没效果?
- Convert 将 FAT 和 FAT32 卷转换为 NTFS
- 浅谈Python 字符串格式化输出(format/printf)
- java unicode转码为中文实例
- javascript设计模式--策略模式之输入验证
- 微信小程序 navigator 组件实例详解
- JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
- [全兼容哦]--实用、简洁、炫酷的页面转入效果loing
- Python字符串转换成浮点数函数分享
- VUE实现一个分页组件的示例
- 使用shell脚本分析网站日志统计PV、404、500等数据
- Jquery通过Ajax方式来提交Form表单的具体实现
- c# 两个数组比较,将重复部分去掉,返回不重复部分的实现
- ThinkPHP在新浪SAE平台的部署实例
- Javascript刷新窗口方法小结
- 番茄的表单验证类代码修改版
