python计算两个坐标点的距离(python怎么求两条直线的交点)

技术Python怎么计算点到直线距离和直线间交点夹角这篇文章主要讲解了“Python怎么计算点到直线距离和直线间交点夹角”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Py

本文主要讲解“Python如何计算点到直线的距离和直线之间的交角”。本文的解释简单明了,易学易懂。请跟随边肖的思路学习学习“Python如何计算点到直线的距离和直线之间的交角”!

前言

项目中,会有计算点到直线距离、两条直线交点坐标、两条直线夹角的要求。

一、点到直线距离计算

因为在项目中最容易得到点的坐标,所以最清楚的是用矢量法进行所有的数学计算。用矢量法推导出点到直线的距离。

Python怎么计算点到直线距离和直线间交点夹角

importnumpayasnp

array_longi=np.array([x2-x1,y2-y1])

array _ trans=NP . array([x2-line _ start _ x,y2-line_start_y])

#矢量点对点计算示例

array _ temp=(float(array _ trans . dot(array _ longi))/array _ longi . dot(array _ longi))

array_temp=array_longi .点(array_temp)

distance=NP . sqrt((array _ trans-array _ temp)。点(数组_ trans-array _ temp)) #距离

二、两条直线交点坐标计算

一般方程法:

直线的一般方程是F(x)=ax乘以c=0。假设直线的两点是(x0,y0)和(x1,y1),那么a=y0y1,b=x1x0,c=x0 y1x1y 0就可以得到。

因此,两条直线可以表示为

F0(x)=a0*x b0*y c0=0

F1(x)=a1*x b1*y c1=0

那么两条直线的交点应该满足

a0*x b0*y c0=a1*x b1*y c1

由此可以推断。

x=(B0 * C1B1 * c0)/D

y=(a1 * c0A0 * C1)/D

D=A0 * B1A1 * B0,(当D为0时,两条直线平行)

事实上,它们是联立方程的叉积应用。

F0(x)=a0*x b0*y c0=0

F1(x)=a1*x b1*y c1=0

i j k

a0 b0 c0

a1 b1 c1

分类点:

x=0

y=0

def__init__(self,x=0,y=0):

self.x=x

self.y=y

类别:

def__init__(self,p1,p2):

self.p1=p1

self.p2=p2

defGetLinePara(线路):

line.a=line.p1.y-line.p2.y

line.b=line.p2.x-line.p1.x

line . c=line . P1 . x * line . p2 . y-ine . p2 . x * line . P1 . y

定义交叉点(l1,l2):

GetLinePara(l1)

GetLinePara(l2)

d=l1.a*l2.c-l2.a*l1.b

p=点()

p . x=(L1 . b * L2 . c-L2 . b * L1 . c)* 1.0/d

p . y=(L1 . c * L2 . a-L2 . c * L1 . a)* 1.0/d

p1=点(1,1)

p2=点(3,3)

线1=线(p1,p2)

p3=点(2,3.1)

p=点(3.1,2)

line2=Line(p3,p4)

PC=Get交叉点(第1行,第2行)

Print(Pc.x,Pc.y)

三、两条直线夹角计算

用矢量法求两条直线的夹角。这个思路类似于求点到直线的距离,也是用余弦定理。

Python怎么计算点到直线距离和直线间交点夹角

importnumpayasnp

defGetCrossAngle(l1,l2):

arr _ 0=NP . array([(L1 . p2 . x-L1 . P1 . x),(l1.p2.y-l1.p1.y)]

arr _ 1=NP . array([(L2 . p2 . x-L2 . P1 . x),(l2.p2.y-l2.p1.y)]

cos _ value=(float(arr _ 0 . dot(arr _ 1))/(NP . sqrt(arr _ 0 . dot(arr _ 0))* NP . sqrt(arr _ 1 . dot(arr _ 1)))

returnnp . arccos(cos _ value)*(180/NP . pi)

Angle=getcrossangle(第1行,第2行)#感谢阅读。以上就是“Python如何计算点到直线的距离以及直线之间的交角”的内容。看完这篇文章,相信大家对Python如何计算点到直线的距离以及直线之间的交角有了更深的理解,具体用法还需要实践验证。在这里,边肖将为您推送更多关于知识点的文章,敬请关注!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/155607.html

(0)

相关推荐

  • 个人面试小总结之一

    技术个人面试小总结之一 个人面试小总结之一基础
    值传递和引用传递的区别
    值传递:指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,那么我们的实际参数不会改变
    引用传递:指在调

    礼包 2021年12月5日
  • wcf继承实体序列化怎么处理(wcf的完整形式是什么)

    技术WCF序列化是什么本篇内容介绍了“WCF序列化是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!近期看了大量关于W

    攻略 2021年12月14日
  • Scala的标识符构成方式有哪些

    技术Scala的标识符构成方式有哪些本篇内容介绍了“Scala的标识符构成方式有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

    攻略 2021年12月9日
  • 无法复制到剪贴板,CAD无法复制到粘贴板怎么办

    技术无法复制到剪贴板,CAD无法复制到粘贴板怎么办复制粘贴应该算是日常办公的必备操作技能啦!当然无法复制到剪贴板,在CAD制图中也不例外,不知道小伙伴们有没有遇到过CAD无法复制到粘贴板的情况?这到底是什么原因呢?那么,

    生活 2021年10月30日
  • 手机闹钟怎么设置闹铃,苹果手机闹铃声音在哪里设置

    技术手机闹钟怎么设置闹铃,苹果手机闹铃声音在哪里设置苹果手机闹铃声音的设置方法:打开苹果手机时钟,点击“加号”,滑动数字设置闹钟时间,打开“重复”,勾选一周里要使用闹钟的日期,点击“返回”;选择“铃声”,找到喜欢的铃声并

    生活 2021年10月29日
  • oracle如何加快回滚速度

    技术oracle如何加快回滚速度这篇文章将为大家详细讲解有关oracle如何加快回滚速度,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。记得一次大批量删除数据时,由于回滚段满,导致del

    攻略 2021年11月11日