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以环状形式组合排列图片并输出的方法
Mar 17 Python
Python自动化测试ConfigParser模块读写配置文件
Aug 15 Python
Python爬虫利用cookie实现模拟登陆实例详解
Jan 12 Python
Python3学习urllib的使用方法示例
Nov 29 Python
Python中生成器和迭代器的区别详解
Feb 10 Python
Python列表生成式与生成器操作示例
Aug 01 Python
使用python实现数组、链表、队列、栈的方法
Dec 20 Python
Python写出新冠状病毒确诊人数地图的方法
Feb 12 Python
通过自学python能找到工作吗
Jun 21 Python
Python错误的处理方法
Jun 23 Python
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
Jun 05 Python
python中super()函数的理解与基本使用
Aug 30 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数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
PHP查询分页的实现代码
2017/06/09 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
javascript 定义初始化数组函数
2009/09/07 Javascript
JavaScript QueryString解析类代码
2010/01/17 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
JS实现向表格中动态添加行的方法
2015/03/30 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
JS实现DIV高度自适应窗口示例
2017/02/16 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
jQuery动态移除与增加onclick属性的方法详解
2018/06/07 jQuery
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
javascript面向对象三大特征之多态实例详解
2019/07/24 Javascript
进一步理解Python中的函数编程
2015/04/13 Python
python3实现UDP协议的服务器和客户端
2017/06/14 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
python开发入门——列表生成式
2020/09/03 Python
Python unittest如何生成HTMLTestRunner模块
2020/09/08 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
领导检查欢迎词
2014/01/14 职场文书
坚定理想信念心得体会
2014/03/11 职场文书
《海底世界》教学反思
2014/04/16 职场文书
七年级地理教学计划
2015/01/22 职场文书
医生个人年终总结
2015/02/28 职场文书
《鲁滨逊漂流记》之六读后感(4篇)
2019/09/29 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
微信小程序实现录音Record功能
2021/05/09 Javascript
Python基础知识学习之类的继承
2021/05/31 Python
GO中sync包自由控制并发示例详解
2022/08/05 Golang