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建立Map写Excel表实例解析
Jan 17 Python
python实现顺时针打印矩阵
Mar 02 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
python中多个装饰器的调用顺序详解
Jul 16 Python
python scrapy爬虫代码及填坑
Aug 12 Python
python实现简单银行管理系统
Oct 25 Python
opencv3/C++图像像素操作详解
Dec 10 Python
Python如何读取文件中图片格式
Jan 13 Python
selenium WebDriverWait类等待机制的实现
Mar 18 Python
使用Keras 实现查看model weights .h5 文件的内容
Jun 09 Python
pytorch 中forward 的用法与解释说明
Feb 26 Python
python turtle绘制多边形和跳跃和改变速度特效
Mar 16 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/01/05 PHP
typecho插件编写教程(三):保存配置
2015/05/28 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
2017/11/28 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
top.location.href 没有权限 解决方法
2008/08/05 Javascript
javascript 面向对象全新理练之数据的封装
2009/12/03 Javascript
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
详解Document.Cookie
2015/12/25 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
简单实现jQuery级联菜单
2017/01/09 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
Python是编译运行的验证方法
2015/01/30 Python
Python函数参数操作详解
2018/08/03 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
在HTML5 Canvas中放入图片和保存为图片的方法
2014/05/03 HTML / CSS
银行会计财务工作个人的自我评价
2013/10/29 职场文书
自考自我鉴定范文
2013/10/30 职场文书
服务中心夜班服务员岗位职责
2013/11/27 职场文书
优秀大学生的自我评价
2014/01/16 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
python热力图实现的完整实例
2022/06/25 Python