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静态方法实例
Jan 14 Python
python实现百万答题自动百度搜索答案
Jan 16 Python
Python实现变声器功能(萝莉音御姐音)
Dec 05 Python
flask框架自定义url转换器操作详解
Jan 25 Python
Python @property及getter setter原理详解
Mar 31 Python
python中shell执行知识点
May 06 Python
tensorflow pb to tflite 精度下降详解
May 25 Python
python怎么自定义捕获错误
Jun 29 Python
django 实现后台从富文本提取纯文本
Jul 02 Python
如何利用Python 进行边缘检测
Oct 14 Python
Python return语句如何实现结果返回调用
Oct 15 Python
Django数据库迁移常见使用方法
Nov 12 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留言本实例代码
2010/05/09 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
php自动加载代码实例详解
2021/02/26 PHP
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
js事件(Event)知识整理
2012/10/11 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
html判断当前页面是否在iframe中的实例
2016/11/30 Javascript
javaScript+turn.js实现图书翻页效果实例代码
2017/02/16 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
[01:07:34]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第二场 1月9日
2021/03/11 DOTA
python高并发异步服务器核心库forkcore使用方法
2013/11/26 Python
Python如何快速上手? 快速掌握一门新语言的方法
2017/11/14 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
Python中logging日志库实例详解
2020/02/19 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
美国领先的商务贺卡出版商:The Gallery Collection
2018/02/13 全球购物
2014学校庆三八妇女节活动总结
2014/03/01 职场文书
和睦家庭事迹
2014/05/14 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
社区党务工作总结2015
2015/05/19 职场文书
张丽莉观后感
2015/06/16 职场文书
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript
讲解Python实例练习逆序输出字符串
2022/05/06 Python