python 点到直线的距离

29 篇文章 3 订阅
21 篇文章 0 订阅

一,斜边×sin \alpha

    def distance_point_to_line(long_line, base_line):
        angle = Line.get_cross_angle(long_line, base_line)
        sin_value = np.sin(angle * np.pi / 180)  # 其中current_line视为斜边
        long_edge = math.sqrt(  # 获取斜边长度
            math.pow(long_line.p2.x - long_line.p1.x, 2) + math.pow(long_line.p2.y - long_line.p1.y,
                                                                          2))  # 斜边长度
        distance = long_edge * sin_value
        return distance
def calculate_distance(cx, cy, base_line):
    '''
    点到直线的距离
    :param cx:
    :param cy:
    :param base_line: 这里的基准线是横着的方向, 由两个点组成
    :return:
    '''
    long_line = Line(Point(cx, cy), Point(base_line.p1.x, base_line.p1.y))  # 每个字的质心和基准线上的一个点组成的长边
    distance = Line.distance_point_to_line(long_line, base_line)

直线的定义:https://blog.csdn.net/jizhidexiaoming/article/details/100009138

二,已知直线方程,点到直线距离公式

点(x_bottom, y_bottom)到直线 kx * b = y的距离:

distance = round(abs(k * x_bottom - y_bottom + b) / np.sqrt(k ** 2 + 1), 2)

 

后面再整理下

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值