Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python 求直线交点坐标

python 求直线交点坐标

作者头像
py3study
发布于 2020-01-03 03:18:18
发布于 2020-01-03 03:18:18
2.6K00
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

参考:http://blog.csdn.net/abcjennifer/article/details/7584628

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# -*- coding: utf-8 -*-
class Point(object):
    x =0
    y= 0
    # 定义构造方法
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y

class Line(object):
    # a=0
    # b=0
    # c=0
    def __init__(self, p1, p2):
        self.p1 = p1
        self.p2 = p2


def GetLinePara(line):
    line.a =line.p1.y - line.p2.y;
    line.b = line.p2.x - line.p1.x;
    line.c = line.p1.x *line.p2.y - line.p2.x * line.p1.y;


def GetCrossPoint(l1,l2):

    GetLinePara(l1);
    GetLinePara(l2);
    d = l1.a * l2.b - l2.a * l1.b
    p=Point()
    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
    return p;



p1=Point(1,1)
p2=Point(3,3)
line1=Line(p1,p2)

p3=Point(2,3.1)
p4=Point(3.1,2)
line2=Line(p3,p4)
Pc = GetCrossPoint(line1,line2);
print("Cross point:", Pc.x, Pc.y);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
计算几何之求圆与直线的交点
求圆与直线的交点的方法是: 求圆心c在直线l上的投影点pr 求出直线l上的单位向量e 根据r和pr的长度来计算出圆内线段部分的一半base 用pr±base*e即得到答案 题目:CGL_7_D AC代码: #include <iostream> #include <cstdio> #include <math.h> using namespace std; #define COUNTER_CLOCKWISE -1 //逆时针 #define CLOCKWISE 1 //顺时针 #de
灯珑LoGin
2022/10/31
1.2K0
计算几何之求圆与直线的交点
在两条直线相交处添加圆角,算法该如何实现?
然后基于圆心作两条直线的垂足得到两个点,这两个点就是圆弧起点和终点,然后确定方向就可以了。
前端西瓜哥
2024/06/17
2060
在两条直线相交处添加圆角,算法该如何实现?
Python面向对象的魔术方法
在Python中,所有以__双下划线包起来的方法,都统称为魔术方法。比如最常见的 __init__ 。
职场亮哥
2020/10/10
7550
计算几何之求两线段的交点
思路就是连接线段的端点,构造向量,从而构造出相似三角形,然后求出交点在一条线段上的位置(用比例t来表示),然后再加到线段端点上就可以了。
灯珑LoGin
2022/10/31
9690
Python中反射
运行时,区别于翻译时,指的是程序被加载到内存中执行的时候。 反射,reflection,指的是运行时获取类型定义信息。 一个对象能够在运行时,像照镜子一样,反射出其类型信息。简单说,在Python中,能够通过一个对象,找出其type、class、attribute或method的能力,称为反射或自省。 具有反射能力的函数有type(),isinstance(),callable().dir().getattr()等
用户7886150
2020/12/20
8740
【算法】Graham 凸包扫描算法 ( 凸包概念 | 常用的凸包算法 | 角排序 | 叉积 | Python 代码示例 )
博客代码下载 : https://download.csdn.net/download/han1202012/89428182
韩曙亮
2024/06/14
3870
【算法】Graham 凸包扫描算法 ( 凸包概念 | 常用的凸包算法 | 角排序 | 叉积 | Python 代码示例 )
Python——花式打印对象的若干种方法
我们先从类和对象当中最简单的打印输出开始讲起,打印一个实例是一个非常不起眼的应用,但是在实际的编程当中却非常重要。原因也很简单,因为我们debug的时候往往会想看下某个类当中的内容是不是符合我们的预期。但是我们直接print输出的话,只会得到一个地址。
TechFlow-承志
2020/04/16
5.6K0
计算几何算法概览
  计算机的出现使得很多原本十分繁琐的工作得以大幅度简化,但是也有一些在人们直观看来很容易的问题却需要拿出一套并不简单的通用解决方案,比如几何问题。作为计算机科学的一个分支,计算几何主要研究解决几何问题的算法。在现代工程和数学领域,计算几何在图形学、机器人技术、超大规模集成电路设计和统计等诸多领域有着十分重要的应用。在本文中,我们将对计算几何常用的基本算法做一个全面的介绍,希望对您了解并应用计算几何的知识解决问题起到帮助。
owent
2023/03/05
1.6K0
Python教程之粒子运动轨迹动态绘图
  今天我们来讲一下Python中的动态绘图库--matplotlib.animation,以粒子运动轨迹为例来说明如何绘制动态图。
猫叔Rex
2020/09/03
2.6K0
C++ OpenCV透视变换改进---直线拟合的应用
前一篇《C++ OpenCV透视变换综合练习》中针对透视变换做了一个小练习,上篇中我们用多边形拟合的点集来计算离最小旋转矩形最近的点来定义为透视变换的点,效果是有,无意间又想了一个新的思路,在原来的点的基础上效果会更好一点,其中就用到了直线拟合的方法,今天这篇就说一下优化的思路及直线拟合的函数。
Vaccae
2021/01/20
1.4K0
C++ OpenCV透视变换改进---直线拟合的应用
计算几何之判断线段相交
两条线段都满足“另一条线段的两个端点分别位于当前线段的顺时针方向和逆时针方向”,那么这两条线段相交。
灯珑LoGin
2022/10/31
4840
Point(类与构造) Python
第一组测试数据点p1的x坐标 第一组测试数据点p1的y坐标 第一组测试数据点p2的x坐标 第一组测试数据点p2的y坐标
叶茂林
2023/07/30
2480
Point(类与构造) Python
Python OOP - practice_3
定义一个门票系统 门票的原价是100元 当周末的时候门票涨价20% 小孩子半票 计算2个成人和1个小孩的平日票价 class Ticket(): def __init__(self, weekend = False, child = False): self.exp = 100 if weekend: self.inc = 1.2 else: self.inc = 1
ruochen
2021/05/20
4330
Python OOP - practice_3
HDU 5572--An Easy Physics Problem(射线和圆的交点)
An Easy Physics Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 3840 Accepted Submission(s): 765
Enterprise_
2019/02/20
4350
丘比特的神箭续
本题数据量较大,如果使用 的算法将被 T 飞. 所以亟需能在 时间内判断点和凸多边形关系的算法.
ACM算法日常
2020/07/14
3850
python学习笔记6.5-类中描述符的使用
本文介绍了Python中类方法、静态方法、类变量、描述符以及装饰器在Python中的应用。类方法使用`@classmethod`装饰器定义,可以在不创建类实例的情况下被调用;静态方法使用`@staticmethod`装饰器定义,不会获取类的实例;类变量使用`@classproperty`装饰器定义,可以在类实例之间共享数据;描述符使用`@descriptor`装饰器定义,可以用于实现自定义的属性;装饰器是用于修改或生成其他类的函数或属性,可以增强现有类的功能或改变其行为。
锦小年
2018/01/02
6820
进阶的运维开发(三)- 反射
反射就是通过字符串的形式,导入模块,通过字符串的形式,去模块寻找制定函数并执行。利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动。
奔跑的骆驼
2020/02/27
3460
位置和方向的世界,计算几何的基本问题
本文从最基本的线段相交问题出发,从解析几何进入计算几何,介绍点积和叉积这个最基本的计算几何工具,引入计算几何这个关于位置和方向的大航海世界~
ACM算法日常
2020/06/29
9100
一篇文章带你了解Python运算符重载
您可以根据所使用的操作数来更改Python中运算符的含义。这种做法称为运算符重载,今天我们一起来聊聊运算符重载。
Go进阶者
2021/04/29
4560
一篇文章带你了解Python运算符重载
python中程序运行计时的三种方式
下面这段程序截取自Python High Performance Programming(个人觉得这本书还不错,虽然有点零碎。因为我做数据分析比较多,有时候数据量大了确实也需要考虑代码优化。当然,如果数据量太大,我应该还是会毫不犹豫地用SAS。)
py3study
2020/01/06
3.4K0
相关推荐
计算几何之求圆与直线的交点
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文