已知俩点求俩点之间的直线,俩点间的中垂线,俩条直线的交点

本文介绍了通过两点确定直线、中垂线方程及两直线交点坐标的计算方法,并提供了Python实现代码进行验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考博客

https://www.cnblogs.com/DHUtoBUAA/p/8057056.html

用的时候才发现这些基础知识还真忘了不少。

1.俩点之间的直线

直线的一般表达式是:Ax+By+C=0。如果一直俩点(x1,y2)、(x2,y2).那么对于过着俩点的一般式是这样:

  • A=y2-y1
  • B=x1-x2
  • C=X2×Y1-X1×Y2
    所以用Python代码来表示是这样:
#已知俩点求直线一般式
def GeneralEquation(x1,y1,x2,y2):
    # 一般式 Ax+By+C=0

    A=y2-y1
    B=x1-x2
    C=x2*y1-x1*y2
    return A,B,C

测试一下:

A,B,C = GeneralEquation(0,0,1,1)

输出为:1 -1 0
也就是y=x,所以是正确的。

2.俩点之间的中垂线

同样是点(x1,y1)、(x2,y2)。那么这俩点的中垂线一般表达式Ax+By+C=0表示如下:
- A=2(x2-x1)
- B=2(y2-y1)
- C=(x1^2-x2^2)+(y1^2-y2^2)
Python代码如下:

#求俩点之间中垂线
def medLine(x1,y1,x2,y2):
    A = 2*(x2-x1)
    B = 2*(y2-y1)
    C = x1**2-x2**2+y1**2-y2**2
    return A,B,C

测试代码如下:

A,B,C=medLine(0,2,-2,0)

结果:

-4 -4 0

也就是y=-x,正确

3.俩直线交点

二条直线:A1X+B1Y+C1=0与A2X+B2Y+C2=0,他们焦点是(x,y)。则:

  • x=(C2×B1-C1×B2)/(A1×B2-A2×B1)
  • y=(C1×A2-C2×A1)/(A1×B2-A2×B1)

    Python代码如下:

def GetIntersectPointofLines(x1,y1,x2,y2,x3,y3,x4,y4):

    A1,B1,C1=GeneralEquation(x1,y1,x2,y2)
    A2, B2, C2 = GeneralEquation(x3,y3,x4,y4)
    m=A1*B2-A2*B1
    if m==0:
        print("无交点")
    else:
        x=(C2*B1-C1*B2)/m
        y=(C1*A2-C2*A1)/m
    return x,y

即求过(x1,y1)(x2,y2)的直线与过(x3,y3)(x4,y4)的直线他们的交点坐标。下面进行测试,输入:

x,y = GetIntersectPointofLines(0,0,2,2,0,2,2,0)
print(x,y)

输出为:1.0 1.0
也就是y=x和x+y=2交点在(1,1),正确!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值