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模块封装代码
Feb 07 Python
Python3基础之基本数据类型概述
Aug 13 Python
python对字典进行排序实例
Sep 25 Python
在Python中使用M2Crypto模块实现AES加密的教程
Apr 08 Python
python实现比较两段文本不同之处的方法
May 30 Python
python实现基于SVM手写数字识别功能
May 27 Python
python如何读写json数据
Mar 21 Python
python实现猜拳小游戏
Apr 05 Python
Python预测2020高考分数和录取情况
Jul 08 Python
python pygame 愤怒的小鸟游戏示例代码
Feb 25 Python
Python爬虫基础之初次使用scrapy爬虫实例
Jun 26 Python
Python中的datetime包与time包包和模块详情
Feb 28 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
ThinkPHP3.1新特性之内容解析输出详解
2014/06/19 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
php判断是否为ajax请求的方法
2016/11/29 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
javascript下function声明一些小结
2007/12/28 Javascript
JS中prototype关键字的功能介绍及使用示例
2013/07/21 Javascript
php,js,css字符串截取的办法集锦
2014/09/26 Javascript
jQuery中hide()方法用法实例
2014/12/24 Javascript
js+html5实现canvas绘制网页时钟的方法
2016/05/21 Javascript
jQuery获取多种input值的简单实现方法
2016/06/20 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
vue-cli中的webpack配置详解
2017/09/25 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
2019/06/17 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
python输出指定月份日历的方法
2015/04/23 Python
Python实现二维数组输出为图片
2018/04/03 Python
Python模拟登录的多种方法(四种)
2018/06/01 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
使用Python-OpenCV消除图像中孤立的小区域操作
2020/07/05 Python
JD Sports法国:英国篮球和运动时尚的领导者
2017/09/28 全球购物
汽车销售顾问求职自荐信
2014/01/01 职场文书
校园演讲稿汇总
2014/05/21 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
2014年计生工作总结
2014/11/21 职场文书
交通事故被告代理词
2015/05/23 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
入党申请书怎么写?
2019/06/11 职场文书
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL
Python基本数据类型之字符串str
2021/07/21 Python
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android