精华内容
下载资源
问答
  • python求交点
    千次阅读
    2021-06-06 00:55:51

    问题

    我们在python进行编程的时候,可能会涉及到求直线交点的问题,而有些平台numpy等库没法载入使用,因此就需要纯python代码求交点坐标。


    方法

    这个方法转载自python 计算两直线交点评论区,直接上代码!!!

    # 计算交点函数
    def cross_point(line1,line2):
        # 取直线坐标两点的x和y值
        x1=line1[0]
        y1=line1[1]
        x2=line1[2]
        y2=line1[3]
        
        x3=line2[0]
        y3=line2[1]
        x4=line2[2]
        y4=line2[3]
        
        # L2直线斜率不存在操作
        if (x4-x3)==0:
            k2=None
            b2=0
            x=x3
            # 计算k1,由于点均为整数,需要进行浮点数转化
            k1=(y2-y1)*1.0/(x2-x1)
            # 整型转浮点型是关键
            b1=y1*1.0-x1*k1*1.0
            y=k1*x*1.0+b1*1.0
        elif (x2-x1)==0:
            k1=None
            b1=0
            x=x1
            k2=(y4-y3)*1.0/(x4-x3)
            b2=y3*1.0-x3*k2*1.0
            y=k2*x*1.0+b2*1.0
        else:
            # 计算k1,由于点均为整数,需要进行浮点数转化
            k1=(y2-y1)*1.0/(x2-x1)
            # 斜率存在操作
            k2=(y4-y3)*1.0/(x4-x3) 
            # 整型转浮点型是关键
            b1=y1*1.0-x1*k1*1.0
            b2=y3*1.0-x3*k2*1.0
            x=(b2-b1)*1.0/(k1-k2)
            y=k1*x*1.0+b1*1.0    
        return [x,y]

    希望我的分享能够帮到您,谢谢您的观看!!! 

     

    更多相关内容
  • Pure numpy中两条曲线的交点从灵感matlab实现,写的如何检测两条曲线相交这个Python实现。示例用法 from intersect import intersectiona , b = 1 , 2phi = np . linspace ( 3 , 10 , 100 )x1 = a * phi - b * np . ...
  • 计算两个圆的交点代码如下:# -*- coding: utf-8 -*-import mathimport numpy as npdef insec(p1,r1,p2,r2):x = p1[0]y = p1[1]R = r1a = p2[0]b = p2[1]S = r2d = math.sqrt((abs(a-x))**2 + (abs(b-y))**2)if d &...

    计算两个圆的交点

    代码如下:

    # -*- 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 计算两直线交点

    万次阅读 多人点赞 2018-05-08 19:17:40
    最近在做图像的透射变换,有一...因此,需要通过编写一个函数计算两直线交点。首先,我们定义:直线L1:[x1,y1,x2,y2],直线L2:[x3,y3,x4,y4]简单解释一下原理:两点确定一条直线,而每一条直线都可以表示为:Y=kX+...

    最近在做图像的透射变换,有一个关键问题就是找到原图像内四边形的四个顶点。

    在处理过程中,经过霍夫直线检测后,即可得到四边形的四边。而边的表示形式为:[x1,y1,x2,y2],即以两点确定一条直线。

    因此,需要通过编写一个函数计算两直线交点。

    首先,我们定义:直线L1:[x1,y1,x2,y2],直线L2:[x3,y3,x4,y4]

    简单解释一下原理:

    两点确定一条直线,而每一条直线都可以表示为:Y=kX+b 的形式(即直线的斜截式方程),找到两条直线的斜截式方程后联立方程组,求解。

    联立方程组为:,其中|,之后任意取线上一点即可得b1与b2,至此两条直线就已经得到。

    之后,推导计算公式

    通过联立的方程组,可以解得横坐标x为:,取直线L1,将x带入即可得纵坐标y。

    最后,考虑特殊情况

    某一直线为水平直线,斜率为0,此时交点纵坐标直接取水平线上两点任一点的纵坐标。(该情况不会引起程序错误,因此未加考虑)

    某一直线为竖直直线,斜率不存在,此时交点横坐标直接取竖直线上两点任一点的横坐标。(代码考虑L2可能存在该情况)

    两条直线均水平或均竖直,则无交点。(代码未考虑该情况)

    代码

    def cross_point(line1,line2):#计算交点函数
        x1=line1[0]#取四点坐标
        y1=line1[1]
        x2=line1[2]
        y2=line1[3]
        
        x3=line2[0]
        y3=line2[1]
        x4=line2[2]
        y4=line2[3]
        
        k1=(y2-y1)*1.0/(x2-x1)#计算k1,由于点均为整数,需要进行浮点数转化
        b1=y1*1.0-x1*k1*1.0#整型转浮点型是关键
        if (x4-x3)==0:#L2直线斜率不存在操作
            k2=None
            b2=0
        else:
            k2=(y4-y3)*1.0/(x4-x3)#斜率存在操作
            b2=y3*1.0-x3*k2*1.0
        if k2==None:
            x=x3
        else:
            x=(b2-b1)*1.0/(k1-k2)
        y=k1*x*1.0+b1*1.0
        return [x,y]
    对程序进行测试:
    line1=[1,1,-1,-1]
    line2=[-1,1,1,-1]
    print cross_point(line1, line2)

    结果如下,且正确:

    编程环境为python2.7,直线的数据结构为列表。

    若有任何问题欢迎交流~谢谢观看

    展开全文
  • 利用python求两个相交直线的交点

    千次阅读 2022-01-21 19:02:10
    n 2 ( x 1 − x 2 ) m 1 n 2 − m 2 n 1 t=\frac{m_2(y_1-y_2)-n_2(x_1-x_2)}{m_1n_2-m_2n_1} t=m1​n2​−m2​n1​m2​(y1​−y2​)−n2​(x1​−x2​)​ 将 t t t代入该点坐标即可出该点坐标值。 使用 输入 直线...

    calCoordinateFrom2Lines

    功能

    已知两直线的“点向式”方程,分别输入两条直线的点和方向向量,计算两直线的交点坐标。

    原理

    如图所示,空间上两条直线对应的点坐标 P ( x 1 , y 1 , z 1 ) P(x_1,y_1,z_1) P(x1,y1,z1) Q ( x 2 , y 2 , z 2 ) Q(x_2,y_2,z_2) Q(x2,y2,z2),对应的方向向量 s 1 ( m 1 , n 1 , z 1 ) s_1(m_1,n_1,z_1) s1(m1,n1,z1) s 2 ( m 2 , n 2 , p 2 ) s_2(m_2,n_2,p_2) s2(m2,n2,p2),两条直线相交于 M ( x , y , z ) M(x,y,z) M(x,y,z)

    https://gitee.com/zhaoqiushan/pic/raw/master/0da58f3802b2472ccfebdb17169a3e0.png

    根据空间直线的一点与该直线的方向向量可得到直线的点向式方程:
    l 1 : x − x 1 m 1 = y − y 1 n 1 = z − z 1 p 1 l 2 : x − x 2 m 2 = y − y 2 n 2 = z − z 2 p 2 l_1:\frac{x-x_1}{m_1}=\frac{y-y_1}{n_1}=\frac{z-z_1}{p_1}\\ l_2:\frac{x-x_2}{m_2}=\frac{y-y_2}{n_2}=\frac{z-z_2}{p_2} l1:m1xx1=n1yy1=p1zz1l2:m2xx2=n2yy2=p2zz2
    利用中间参数 t t t可将直线上某点坐标表示为:
    x = x 1 + m 1 t y = y 1 + n 1 t z = z 1 + p 1 t x=x_1+m_1t\\ y=y_1+n_1t\\ z=z_1+p_1t x=x1+m1ty=y1+n1tz=z1+p1t
    将该点坐标带入 l 2 l_2 l2中,计算出 t t t的值为:
    t = m 2 ( y 1 − y 2 ) − n 2 ( x 1 − x 2 ) m 1 n 2 − m 2 n 1 t=\frac{m_2(y_1-y_2)-n_2(x_1-x_2)}{m_1n_2-m_2n_1} t=m1n2m2n1m2(y1y2)n2(x1x2)
    t t t代入该点坐标即可求出该点坐标值。

    使用

    输入

    直线 l 1 l_1 l1的任意点坐标 P ( x 1 , y 1 , z 1 ) P(x_1,y_1,z_1) P(x1,y1,z1)和该直线的方向向量 s 1 ( m 1 , n 1 , p 1 ) s_1(m_1,n_1,p_1) s1(m1,n1,p1)

    直线 l 2 l_2 l2的任意点坐标 Q ( x 2 , y 2 , z 2 ) Q(x_2,y_2,z_2) Q(x2,y2,z2)和该直线的方向向量 s 2 ( m 2 , n 2 , p 2 ) s_2(m_2,n_2,p_2) s2(m2,n2,p2)

    输出

    空间两直线的交点 M ( x , y , z ) M(x,y,z) M(x,y,z)

    DEMO

    import geomeas as gm
    import numpy as np
    
    P_1 = np.array([-108.45, 174.45, 0])
    s_1 = np.array([-335.6, -77.27, 0])
    Q_1 = np.array([227.15, 174.45, 0])
    s_2 = np.array([335.6, -77.27, 0])
    
    print(gm.Coordinate().calCoordinateFrom2Lines(P_1, s_1, Q_1, s_2))
    

    代码链接

    展开全文
  • python3数学建模基础(四)多个函数图像求交点,多个,交点,生姜,建模,函数python3数学建模基础(四)多个函数图像求交点python3数学建模基础(四)多个函数图像求交点本文以sin(x)和e^(-x)为例,用python3实现数学建模中多...
  • python求两条线的交点

    千次阅读 2021-01-11 10:13:16
    def line_intersection(line1, line2): xdiff = (line1[0][0] - line1[1][0], line2[0][0] - line2[1][0]) ydiff = (line1[0][1] - line1[1][1], line2[0][1] - line2[1]... B), (C, D)) 转自: 如何计算两条线的交点
  • Python - 两圆相交求交点坐标Max.Bai2016-05-16Python - 两圆相交求交点坐标三轴机械臂坐标问题,其实转化为平面问题就是两圆相交求交点问题,交点算出来就可以用反三角函数算出各个机械臂的夹角。 已知圆1, 半径...
  • 首先分析一下交点个数怎么。一个四边形,交点只有一个,也就是,四个顶点,确定一个交点,那么n边形(n>=4),也就是从n个顶点里面选取四个,且没有顺序,所以顶点个数就是C4/n,也就是n * (n-1) * (n
  • 理论推导:...def calc_abc_from_line_2d(x0, y0, x1, y1): a = y0-y1 b = x1-x0 c = x0*y1-x1*y0 return a, b, c def get_line_cross_point(line1, line2): a0, b0, c0 = calc_abc_from_line_2d(*
  • python求直线交点

    2021-06-03 22:00:33
    <p>python有没有直接可以输入两条直线的解析式,求交点的第三方包。如果所有这类平面乃至空间几何都自己编程求解的话,好麻烦。所以想问问大佬有没有类似的第三方包。</p>
  • python 两条直线交点

    2022-05-20 15:32:30
    主要还是通过两点式,求解方程组。 运行结果如下。
  • 记录:python 两直线交点

    千次阅读 2020-07-17 17:24:15
    本人数学渣渣,公式来自知乎大佬,大佬真是太强了。 ...用方程法,避开了算K,真是太强了x2。 def calc_abc_from_line_2d(x0, y0, x1, y1): a = y0 - y1 b = x1 - x0 c = x0*y1 - x1*y0 return a, b, c ...
  • 目的:圆和线段的交点 网上搜出的代码大多千篇一律,都是这样: 千篇一律,或许根本运都没运行就发出来了; 源代码 # 计算圆 与 直接相交的点 def line_intersect_circle(p, lsp, esp): # p is the circle ...
  • python 直线交点坐标

    万次阅读 2017-08-11 15:27:42
    参考:http://blog.csdn.net/abcjennifer/article/details/7584628 # -*- coding: utf-8 -*- class Point(object): x =0 y= 0 # 定义构造方法 def __init__(self, x=0, y=0): self.x = x s...
  • python求两条线段的交点

    万次阅读 2018-09-25 20:25:34
    本来想找一段线段交点的代码,但是网上很多的代码都没有考虑除0的特殊情况,所以自己写了一份。具体原理: 一般方程法: 直线的一般方程为F(x) = ax + by + c = 0。既然我们已经知道直线的两个点,假设为(x0,y0)...
  • python函数:空间线面交点
  • Python-matplotlib:查找线条图的交点

    千次阅读 2020-12-07 15:06:02
    我们可以使用scipy.interpolate.PiecewisePolynomial创建由分段线性数据定义的函数。p1=interpolate.PiecewisePolynomial(x1,y1[:,np.newaxis])p2=interpolate.PiecewisePolynomial(x2,y2[:,np.newaxis])我们可以把...
  • 分别已知两个函数上的两个不同的点,两个线性函数的交点 from sympy import * x = symbols('x') #两个函数的交点 x1 = 1 x2 = -2 #第一个函数过的两点的纵坐标值 y1 = 6.55 y2 = 7.72 k1 = (y2-y1)/(x2-x1) b1 =...
  • python-opencv椭圆拟合并求交点

    千次阅读 2022-04-06 20:19:11
    python-opencv进行椭圆拟合,然后直线与曲线的交点
  • from imutils.perspective import four_point_transform import cv2 import numpy as np from scipy import stats from numpy import unique from numpy import where from sklearn.cluster import KMeans ...
  • python求两曲线交点

    2021-09-17 23:15:09
    两条曲线是通过Q,t,q三组数据画出来的 Q-t与q-t 着两线的交点各位大佬
  • 两直线求交点?这不是初中数学吗??还需要专门写一个算法? 我第一看到这个问题也是这样想的,觉得简直不要太简单,相信如果是在试卷上用笔算一定是半分钟解决的问题,可就是这简简单单的初中题目想要呈现在程序中...
  • python求取射线与线段的交点

    千次阅读 2019-05-12 18:30:21
    从更为一般的角度出发,光线和线段都作为直线的一部分,均可表示成直线的一般形式ax+by+c=0,可通过一个向量表示成[a,b,c],则通过线性代数,即可出二者的交点。 但这样比较难以判断二者是否相...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,527
精华内容 2,210
关键字:

python求交点

友情链接: radar.zip