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爬取NUS-WIDE数据库图片
Oct 05 Python
python executemany的使用及注意事项
Mar 13 Python
深入探究Django中的Session与Cookie
Jul 30 Python
Python中pow()和math.pow()函数用法示例
Feb 11 Python
python3库numpy数组属性的查看方法
Apr 17 Python
Python安装与基本数据类型教程详解
May 29 Python
Python 中使用 PyMySQL模块操作数据库的方法
Nov 10 Python
Python自动重新加载模块详解(autoreload module)
Apr 01 Python
详解如何在PyCharm控制台中输出彩色文字和背景
Aug 17 Python
如何用Python绘制3D柱形图
Sep 16 Python
浅析python实现动态规划背包问题
Dec 31 Python
教你漂亮打印Pandas DataFrames和Series
May 29 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错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
PHP实现采集抓取淘宝网单个商品信息
2015/01/08 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
2015/03/19 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
PHP设置头信息及取得返回头信息的方法
2016/01/25 PHP
jquery获得下拉框值的代码
2011/08/13 Javascript
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
jquery插件开发之实现google+圈子选择功能
2014/03/10 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
微信小程序实现获取准确的腾讯定位地址功能示例
2019/03/27 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
Python实现数据库编程方法详解
2015/06/09 Python
通过实例浅析Python对比C语言的编程思想差异
2015/08/30 Python
对Python3中的input函数详解
2018/04/22 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
详解Django配置JWT认证方式
2020/05/09 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
Python安装Bs4的多种方法
2020/11/28 Python
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
加拿大购物频道:The Shopping Channel
2016/07/21 全球购物
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
bonprix荷兰网上商店:便宜的服装、鞋子和家居用品
2020/07/04 全球购物
GC是什么?为什么要有GC?
2013/12/08 面试题
客服实习的个人自我鉴定
2013/10/20 职场文书
国际金融专业大学生职业生涯规划书
2013/12/28 职场文书
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android