Python判斷直線和矩形是否相交的方法
更新時間:2015年07月14日 09:11:20 作者:G0561
這篇文章主要介紹了Python判斷直線和矩形是否相交的方法,涉及Python坐標系下的直線與矩形相關(guān)運算,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了Python判斷直線和矩形是否相交的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
"""
A(ax,ay),B(px,py)為兩個點 (x1,y1),(x2,y2)為矩形的左上角和右下角坐標 ,判斷A,B兩點是否和矩形相交
"""
def Judge(ax, ay, px, py, x1, y1, x2, y2):
#轉(zhuǎn)換為真除法
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程序設(shè)計有所幫助。
相關(guān)文章
Python?Flask實現(xiàn)快速構(gòu)建Web應(yīng)用的方法詳解
Flask是一個輕量級的Web服務(wù)器網(wǎng)關(guān)接口(WSGI)web應(yīng)用框架,本文將和大家一起詳細探討一下Python?Flask?Web服務(wù),需要的小伙伴可以學(xué)習(xí)一下2023-06-06
Pycharm中出現(xiàn)ImportError:DLL load failed:找不到指定模塊的解決方法
這篇文章主要介紹了Pycharm中出現(xiàn)ImportError:DLL load failed:找不到指定模塊的解決方法,需要的朋友可以參考下2019-09-09
python3實現(xiàn)全角和半角字符轉(zhuǎn)換的方法示例
在自然語言處理過程中,全角、半角的的不一致會導(dǎo)致信息抽取不一致,因此需要統(tǒng)一,下面這篇文章主要給大家介紹了關(guān)于python3中全角和半角字符轉(zhuǎn)換的方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09

