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 version 2.7 required, which was not found in the registry
Aug 26 Python
Mac下Supervisor进程监控管理工具的安装与配置
Dec 16 Python
Python中用Decorator来简化元编程的教程
Apr 13 Python
python定时执行指定函数的方法
May 27 Python
Python中的推导式使用详解
Jun 03 Python
Python 绘图和可视化详细介绍
Feb 11 Python
python 统计代码行数简单实例
May 04 Python
Python中利用aiohttp制作异步爬虫及简单应用
Nov 29 Python
python面试题Python2.x和Python3.x的区别
May 28 Python
Python3使用PySynth制作音乐的方法
Sep 09 Python
python_array[0][0]与array[0,0]的区别详解
Feb 18 Python
Python识别花卉种类鉴定网络热门植物并自动整理分类
Apr 08 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
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
2006/10/09 PHP
php中strtotime函数用法详解
2014/11/15 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
jQuery 操作option的实现代码
2011/03/03 Javascript
js 获取radio按钮值的实例
2013/08/17 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
简介JavaScript中valueOf()方法的使用
2015/06/05 Javascript
基于JS组件实现拖动滑块验证功能(代码分享)
2016/11/18 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
vue组件讲解(is属性的用法)模板标签替换操作
2020/09/04 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
详解Python中time()方法的使用的教程
2015/05/22 Python
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
Python输入二维数组方法
2018/04/13 Python
对Python中的@classmethod用法详解
2018/04/21 Python
Python3 单行多行万能正则匹配方法
2019/01/07 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
使用CSS3在触屏上为按钮实现激活效果
2013/09/27 HTML / CSS
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
院药学专业个人求职信
2013/09/21 职场文书
优秀学生干部个人的自我评价
2013/10/04 职场文书
公司董事长岗位职责
2014/06/08 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
2014年销售助理工作总结
2014/12/01 职场文书
表扬通报怎么写
2015/01/16 职场文书
单位综合评价意见
2015/06/05 职场文书
辩论赛新闻稿
2015/07/17 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
sql server删除前1000行数据的方法实例
2021/08/30 SQL Server