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(); } //求两直线的交点,斜
随机推荐
- SqlServer类似正则表达式的字符处理问题
- 三种asp.net页面跳转的方法
- exit(-1)或者return(-1)shell得到的退出码为什么是255
- iOS仿微信添加标签效果(shape实现)
- php实现有趣的人品测试程序实例
- PHP原理之异常机制深入分析
- 解决Eclipse创建android项目无法正常预览布局文件问题的方法
- Android入门之Gallery用法实例解析
- 10个值得深思的PHP面试题
- hibernate更新数据方法小结
- Android获取设备CPU核数、时钟频率以及内存大小的方法
- 解析mysql中如何获得数据库的大小
- JavaScript基于自定义函数判断变量类型的实现方法
- ES6入门教程之let和const命令详解
- java list,set,map,数组间的相互转换详解
- javascript图片自动缩放和垂直居中处理函数
- jquery中map函数与each函数的区别实例介绍
- javascript如何实现暂停功能
- Windows下利用Gvim写PHP产生中文乱码问题解决方法
- 浅谈java7增强的try语句关闭资源