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 返回汉字的汉语拼音
Feb 27 Python
python进阶教程之词典、字典、dict
Aug 29 Python
python爬虫实战之爬取京东商城实例教程
Apr 24 Python
浅谈pandas中shift和diff函数关系
Apr 08 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
Apr 12 Python
Python获取一个用户名的组ID过程解析
Sep 03 Python
Python 中@property的用法详解
Jan 15 Python
关于python 跨域处理方式详解
Mar 28 Python
Python flask框架如何显示图像到web页面
Jun 03 Python
解决Python 写文件报错TypeError的问题
Oct 23 Python
Python实现生活常识解答机器人
Jun 28 Python
Python函数对象与闭包函数
Apr 13 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
ubuntu10.04配置 nginx+php-fpm模式的详解
2013/06/03 PHP
php递归使用示例(php递归函数)
2014/02/14 PHP
php实现的双色球算法示例
2017/06/20 PHP
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
基于pthread_create,readlink,getpid等函数的学习与总结
2013/07/17 Javascript
JSF中confirm弹出框的用法示例介绍
2014/01/07 Javascript
使用iframe window的scroll方法控制iframe页面滚动
2014/03/05 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
jquery获取easyui日期控件的值实现方法
2016/11/09 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
Vue.js中的computed工作原理
2018/03/22 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
2019/09/05 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
粗略分析Python中的内存泄漏
2015/04/23 Python
Python2.7简单连接与操作MySQL的方法
2016/04/27 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
Python threading.local代码实例及原理解析
2020/03/16 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
Reformation官网:美国女装品牌
2018/09/14 全球购物
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
《走一步再走一步》教学反思
2014/02/15 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
培训专员岗位职责
2014/02/26 职场文书
党员一句话承诺大全
2014/03/28 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
住宅使用说明书
2014/05/09 职场文书
不错的求职信范文
2014/07/20 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
开幕式邀请函
2015/01/31 职场文书
创业计划之特色精品店
2019/08/12 职场文书
用JS创建一个录屏功能
2021/11/11 Javascript
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android