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定时采集摄像头图像上传ftp服务器功能实现
Dec 23 Python
举例讲解Linux系统下Python调用系统Shell的方法
Nov 07 Python
python实现随机梯度下降(SGD)
Mar 24 Python
浅谈Python 列表字典赋值的陷阱
Jan 20 Python
Python对象与引用的介绍
Jan 24 Python
树莓派+摄像头实现对移动物体的检测
Jun 22 Python
python读写csv文件实例代码
Jul 05 Python
python笔记_将循环内容在一行输出的方法
Aug 08 Python
使用Windows批处理和WMI设置Python的环境变量方法
Aug 14 Python
Python函数式编程指南:对生成器全面讲解
Nov 19 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
Jun 10 Python
python 模块重载的五种方法
Apr 24 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中is_file不能替代file_exists的理由
2014/03/04 PHP
PHP遍历文件夹与文件类及处理类用法实例
2014/09/23 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
php实现设计模式中的单例模式详解
2014/10/11 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
简单实现异步编程promise模式
2015/07/31 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
前端性能优化建议
2020/09/17 Javascript
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
基于Python绘制个人足迹地图
2020/06/01 Python
什么是Python中的匿名函数
2020/06/02 Python
Python打印不合法的文件名
2020/07/31 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
澳大利亚购买健身器材网站:Gym Direct
2019/12/19 全球购物
北美最大的参茸药食商城:德成行
2020/12/06 全球购物
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
什么是反射
2012/03/17 面试题
毕业生求职简历中的自我评价
2013/10/18 职场文书
外语学院毕业生的自我鉴定
2013/11/28 职场文书
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
中式结婚主持词
2014/03/14 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书