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中还原JavaScript的escape函数编码后字符串的方法
Aug 22 Python
利用python模拟sql语句对员工表格进行增删改查
Jul 05 Python
Python数据结构之单链表详解
Sep 12 Python
对python For 循环的三种遍历方式解析
Feb 01 Python
python 利用pandas将arff文件转csv文件的方法
Feb 12 Python
Django页面数据的缓存与使用的具体方法
Apr 23 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
May 07 Python
python与字符编码问题
May 24 Python
python3.x提取中文的正则表达式示例代码
Jul 23 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
Oct 14 Python
PyInstaller运行原理及常用操作详解
Jun 13 Python
python人工智能human learn绘图可创建机器学习模型
Nov 23 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
Zend的Registry机制的使用说明
2013/05/02 PHP
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
PHP中的use关键字概述
2014/07/23 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
CSS常用网站布局实例
2008/04/03 Javascript
javascript新手语法小结
2008/06/15 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
Python实现多线程HTTP下载器示例
2017/02/11 Python
深入解答关于Python的11道基本面试题
2017/04/01 Python
Python实现网站表单提交和模板
2019/01/15 Python
python实现趣味图片字符化
2019/04/30 Python
python 实现让字典的value 成为列表
2019/12/16 Python
np.dot()函数的用法详解
2020/01/17 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
input元素的url类型和email类型简介
2012/07/11 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
酒店前厅员工辞职信
2014/01/08 职场文书
简历的自我评价
2014/02/03 职场文书
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL
Python自动化实战之接口请求的实现
2022/05/30 Python