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画ROC曲线和AUC值计算
Sep 19 Python
Python中的is和==比较两个对象的两种方法
Sep 06 Python
python+selenium识别验证码并登录的示例代码
Dec 21 Python
Python实现的各种常见分布算法示例
Dec 13 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
Jun 21 Python
Python 用matplotlib画以时间日期为x轴的图像
Aug 06 Python
Python 中pandas索引切片读取数据缺失数据处理问题
Oct 09 Python
python3的UnicodeDecodeError解决方法
Dec 20 Python
利用 Python ElementTree 生成 xml的实例
Mar 06 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
Sep 21 Python
pycharm + django跨域无提示的解决方法
Dec 06 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
Feb 20 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
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
php 判断数组是几维数组
2013/03/20 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
phpmyadmin打开很慢的解决方法
2014/04/21 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
php 输出json及显示json中的中文汉字详解及实例
2016/11/09 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
网页的标准,IMG不支持onload标签怎么办
2006/06/29 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
jquery重新播放css动画所遇问题解决
2013/08/21 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
JavaScript实现页面无操作倒计时退出
2016/10/22 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
jQuery实现三级联动效果
2017/03/02 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
vue实现element表格里表头信息提示功能(推荐)
2019/11/20 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
python访问类中docstring注释的实现方法
2015/05/04 Python
python正则表达式re之compile函数解析
2017/10/25 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
C#和SQL Server的面试题
2016/08/12 面试题
行政部总经理岗位职责
2014/01/04 职场文书
使用nginx动态转换图片大小生成缩略图
2021/03/31 Servers
python - timeit 时间模块
2021/04/06 Python
用Python可视化新冠疫情数据
2022/01/18 Python
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android