Python判断直线和矩形是否相交的方法


Posted in Python onJuly 14, 2015

本文实例讲述了Python判断直线和矩形是否相交的方法。分享给大家供大家参考。具体实现方法如下:

"""
A(ax,ay),B(px,py)为两个点 (x1,y1),(x2,y2)为矩形的左上角和右下角坐标 ,判断A,B两点是否和矩形相交 
"""
def Judge(ax, ay, px, py, x1, y1, x2, y2):
  #转换为真除法
  ax, ay, px, py = float(ax), float(ay), float(px), float(py)
  x1, y1, x2, y2 = float(x1), float(y1), float(x2), float(y2)
  #判断矩形上边线和两点直线相交的点
  sx = (y1 - ay) * (px - ax) / (py - ay) + ax
  if sx >= x1 and sx <= x2:
    return True
  #判断矩形下边线和两点直线相交的点
  xx = (y1 - ay) * (px - ax) / (py - ay) + ax
  if sx >= x1 and sx <= x2:
    return True
  #判断矩形左边线和两点直线相交的点
  zy = (y2 - ay) * (x2 - ax) / (px - ax) + ay
  if zy >= y1 and zy <= y2:
    return True
  #判断矩形右边线和两点直线相交的点
  yy = (y2 - ay) * (x2 - ax) / (px - ax) + ay
  if yy <= y1 and yy >= y2:
    return True
  return False
ax = raw_input()
ay = input()
px = input()
py = input()
x1 = input()
y1 = input()
x2 = input()
y2 = input()
print Judge(ax, ay, px, py, x1, y1, x2, y2)

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python中__call__内置函数用法实例
Jun 04 Python
Python人脸识别初探
Dec 21 Python
Python实现简单生成验证码功能【基于random模块】
Feb 10 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
在Python中使用gRPC的方法示例
Aug 08 Python
python中类的输出或类的实例输出为这种形式的原因
Aug 12 Python
python 实现多维数组转向量
Nov 30 Python
keras获得model中某一层的某一个Tensor的输出维度教程
Jan 24 Python
利用Python制作动态排名图的实现代码
Apr 09 Python
Python内置函数locals和globals对比
Apr 28 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
Jan 05 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
Feb 03 Python
Python下Fabric的简单部署方法
Jul 14 #Python
python简单获取数组元素个数的方法
Jul 13 #Python
python连接字符串的方法小结
Jul 13 #Python
简单上手Python中装饰器的使用
Jul 12 #Python
python比较两个列表大小的方法
Jul 11 #Python
python实现计算倒数的方法
Jul 11 #Python
python实现基本进制转换的方法
Jul 11 #Python
You might like
PHP_Flame(Version:Progress)的原代码
2006/10/09 PHP
Zend的AutoLoad机制介绍
2012/09/27 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
php简单实现多语言切换的方法
2016/05/09 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
JavaScript 学习笔记(十一)
2010/01/19 Javascript
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
2013/04/28 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
解决js图片加载时出现404的问题
2020/11/30 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
详解vue后台系统登录态管理
2019/04/02 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
Python socket编程实例详解
2015/05/27 Python
对Python中9种生成新对象的方法总结
2018/05/23 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
CSS3 边框效果
2019/11/04 HTML / CSS
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
C语言50道问题
2014/10/23 面试题
汽车专业毕业生自荐信
2013/11/03 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书
聊聊pytorch测试的时候为何要加上model.eval()
2021/05/23 Python
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript