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创建XML文档
Mar 01 Python
使用python BeautifulSoup库抓取58手机维修信息
Nov 21 Python
浅析Python中的多条件排序实现
Jun 07 Python
TensorFlow实现卷积神经网络
May 24 Python
通过python爬虫赚钱的方法
Jan 29 Python
python文本数据处理学习笔记详解
Jun 17 Python
Python常用模块os.path之文件及路径操作方法
Dec 03 Python
安装完Python包然后找不到模块的解决步骤
Feb 13 Python
python实现微信打飞机游戏
Mar 24 Python
Python run()函数和start()函数的比较和差别介绍
May 03 Python
Python中logging日志记录到文件及自动分割的操作代码
Aug 05 Python
python实现网页录音效果
Oct 26 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
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
jQuery中nextAll()方法用法实例
2015/01/07 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
JavaScript对象属性操作实例解析
2020/02/04 Javascript
[01:35]2018完美盛典章节片——共竞
2018/12/17 DOTA
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python中 chr unichr ord函数的实例详解
2017/08/06 Python
Pyqt5自适应布局实例
2019/12/13 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
英国在线电子和小工具商店:TecoBuy
2018/10/06 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
中科软测试工程师面试题
2012/06/16 面试题
大学生毕业的自我鉴定
2013/11/13 职场文书
财务担保书范文
2014/04/02 职场文书
我读书我快乐演讲稿
2014/05/07 职场文书
计算机售后服务承诺书
2014/05/30 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
2015年高校图书馆工作总结
2015/04/30 职场文书
贷款工作证明模板
2015/06/12 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python
基于Redis位图实现用户签到功能
2021/05/08 Redis