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结合selenium获取XX省交通违章数据的实现思路及代码
Jun 26 Python
Python2.7读取PDF文件的方法示例
Jul 13 Python
tensorflow实现KNN识别MNIST
Mar 12 Python
Python Tkinter模块实现时钟功能应用示例
Jul 23 Python
Python读写zip压缩文件的方法
Aug 29 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 Python
python实现画出e指数函数的图像
Nov 21 Python
python 实现读取csv数据,分类求和 再写进 csv
May 18 Python
python爬虫把url链接编码成gbk2312格式过程解析
Jun 08 Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 Python
python爬虫泛滥的解决方法详解
Nov 25 Python
python3读取文件指定行的三种方法
May 24 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学习 运算符与运算符优先级
2008/06/15 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
用PHP来计算某个目录大小的方法
2014/04/01 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
eval与window.eval的差别分析
2011/03/17 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
在JavaScript中构建ArrayList示例代码
2014/09/17 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
2020/05/09 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
python 中字典嵌套列表的方法
2018/07/03 Python
Sanic框架流式传输操作示例
2018/07/18 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
python爬虫实现POST request payload形式的请求
2020/04/30 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2020/05/19 Python
Python参数传递对象的引用原理解析
2020/05/22 Python
Python logging模块handlers用法详解
2020/08/14 Python
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
介绍一下SOA和SOA的基本特征
2016/02/24 面试题
自我评价的正确写法
2013/09/19 职场文书
法人授权委托书样本
2014/09/19 职场文书
领导班子对照检查剖析材料
2014/10/13 职场文书
2014年商场工作总结
2014/11/22 职场文书
高中班主任评语
2014/12/30 职场文书
工作表扬信范文
2015/01/17 职场文书
消费者理赔投诉书
2015/07/02 职场文书
pytorch 6 batch_train 批训练操作
2021/05/28 Python