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中使用pyhook实现键盘监控的例子
Jul 18 Python
详细介绍Python的鸭子类型
Sep 12 Python
基于python socketserver框架全面解析
Sep 21 Python
Python定时任务sched模块用法示例
Jul 16 Python
Python装饰器简单用法实例小结
Dec 03 Python
Python函数和模块的使用总结
May 20 Python
Pytorch实现GoogLeNet的方法
Aug 18 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
Oct 01 Python
python selenium 执行完毕关闭chromedriver进程示例
Nov 15 Python
python打印异常信息的两种实现方式
Dec 24 Python
Python实现动态循环输出文字功能
May 07 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
Oct 19 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
这部好评如潮的动漫 知名梗频出 但是画风劝退很多人
2020/03/08 日漫
在线竞拍系统的PHP实现框架(二)
2006/10/09 PHP
PHP 导出Excel示例分享
2014/08/18 PHP
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
判断输入的字符串是否是日期格式的简单方法
2016/07/11 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
canvas绘制七巧板
2017/02/03 Javascript
vue实现验证码按钮倒计时功能
2018/04/10 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
js中数组常用方法总结(推荐)
2019/04/09 Javascript
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
js实现车辆管理系统
2020/08/26 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
Python中的字符串操作和编码Unicode详解
2017/01/18 Python
Python编写一个优美的下载器
2018/04/15 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
Theflamel意大利:女士奢华服装、鞋子和配件
2020/01/11 全球购物
《秋游》教学反思
2014/04/24 职场文书
党员群众路线承诺书
2014/05/20 职场文书
公司任命书范本
2014/06/04 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
2014年个人年终总结
2015/03/09 职场文书
2015年幼儿园班务工作总结
2015/05/12 职场文书
退伍军人感言
2015/08/01 职场文书
浅谈JS的二进制家族
2021/05/09 Javascript
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript
使用CSS实现音波加载效果
2023/05/07 HTML / CSS