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常用模块用法分析
Sep 08 Python
在Django的URLconf中进行函数导入的方法
Jul 18 Python
python操作mysql代码总结
Jun 01 Python
Python2和Python3.6环境解决共存问题
Nov 09 Python
scikit-learn线性回归,多元回归,多项式回归的实现
Aug 29 Python
pytorch AvgPool2d函数使用详解
Jan 03 Python
python文件和文件夹复制函数
Feb 07 Python
Python通过format函数格式化显示值
Oct 17 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
Dec 07 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 13 Python
代码复现python目标检测yolo3详解预测
May 06 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中获取内网用户MAC地址(WINDOWS/linux)的实现代码
2011/08/11 PHP
PHP笔记之:基于面向对象设计的详解
2013/05/14 PHP
PHP根据IP地址获取所在城市具体实现
2013/11/27 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
Zend Framework缓存Cache用法简单实例
2016/03/19 PHP
CI框架的安全性分析
2016/05/18 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
JavaScript中的Location地址对象
2008/01/16 Javascript
chrome原生方法之数组
2011/11/30 Javascript
js使用函数绑定技术改变事件处理程序的作用域
2011/12/26 Javascript
多个表单中如何获得这个文件上传的网址实现js代码
2013/03/25 Javascript
JS检测图片大小的实例
2013/08/21 Javascript
js函数模拟显示桌面.scf程序示例
2014/04/20 Javascript
解析javascript瀑布流原理实现图片滚动加载
2016/03/10 Javascript
详解AngularJS2 Http服务
2017/06/26 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
Python编程中运用闭包时所需要注意的一些地方
2015/05/02 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
python实现学生信息管理系统
2020/04/05 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
python中封包建立过程实例
2021/02/18 Python
来自世界各地的优质葡萄酒:VineShop24
2018/07/09 全球购物
工商管理应届生求职信
2013/10/07 职场文书
公务员平时考核实施方案
2014/03/11 职场文书
家长寄语大全
2014/04/02 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
前台岗位职责
2015/02/13 职场文书
刘胡兰观后感
2015/06/16 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
科级干部培训心得体会
2016/01/06 职场文书
商业计划书格式、范文
2019/03/21 职场文书
Redis 异步机制
2022/05/15 Redis