Python求两个圆的交点坐标或三个圆的交点坐标方法


Posted in Python onNovember 07, 2018

计算两个圆的交点

代码如下:

# -*- 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的身份证号码自动生成程序
Aug 15 Python
Python实现单词翻译功能
Jun 06 Python
django用户注册、登录、注销和用户扩展的示例
Mar 19 Python
python调用API实现智能回复机器人
Apr 10 Python
pybind11在Windows下的使用教程
Jul 04 Python
用python建立两个Y轴的XY曲线图方法
Jul 08 Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
Aug 02 Python
Python爬虫爬取、解析数据操作示例
Mar 27 Python
python爬虫中PhantomJS加载页面的实例方法
Nov 12 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
Jan 28 Python
使用pandas生成/读取csv文件的方法实例
Jul 09 Python
Python获取江苏疫情实时数据及爬虫分析
Aug 02 Python
在Python中分别打印列表中的每一个元素方法
Nov 07 #Python
对python中数组的del,remove,pop区别详解
Nov 07 #Python
对Python中plt的画图函数详解
Nov 07 #Python
python使用matplotlib绘制热图
Nov 07 #Python
Django objects的查询结果转化为json的三种方式的方法
Nov 07 #Python
Python将一个Excel拆分为多个Excel
Nov 07 #Python
python计算两个矩形框重合百分比的实例
Nov 07 #Python
You might like
PHP Session变量不能传送到下一页的解决方法
2009/11/27 PHP
让的PHP代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
PHPCMS的使用小结
2010/09/20 PHP
php缓存技术详细总结
2013/08/07 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
php中try catch捕获异常实例详解
2014/11/21 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
jQuery 中$(this).index与$.each的使用指南
2014/11/20 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
2016/05/27 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
分析JS中this引发的bug
2017/12/12 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
vue中npm包全局安装和局部安装过程
2019/09/03 Javascript
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
[04:27]DOTA2官方论坛水友赛集锦
2013/09/16 DOTA
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
python实现决策树
2017/12/21 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
Python tkinter三种布局实例详解
2020/01/06 Python
python生成大写32位uuid代码
2020/03/03 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
windows上彻底删除jupyter notebook的实现
2020/04/13 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
德国拖鞋网站:German Slippers
2019/11/08 全球购物
如何写毕业求职自荐信
2013/11/06 职场文书
纺织工程专业个人求职信范文
2014/01/27 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis