python距離測(cè)量的方法
之所以寫(xiě)這個(gè),其實(shí)就是希望能對(duì)距離有一些概念,當(dāng)然這個(gè)也是很基礎(chǔ)的,不過(guò)千里之行始于足下嘛,各種路徑算法,比如a*什么的都會(huì)用到這個(gè)
距離測(cè)量有三種方式
1、歐式距離,這個(gè)是最常用的距離測(cè)量方式
((x1-x2)^2 + (y1-y2)^2)^0.5
得到一個(gè)原型區(qū)域的距離
#設(shè)起始坐標(biāo)是原點(diǎn),即(0,0) y_result = [] for y in range(10,-10,-1): x_result = [] for x in range(-10,10,1): #((0-x)**2 + (0-y)**2)**0.5 if ((0-x)**2 + (0-y)**2)**0.5 <= 9: x_result.append('*') else: x_result.append(' ') y_result.append(''.join(x_result)) for i in y_result: print i
2、街區(qū)距離,這個(gè)一般游戲中用到的會(huì)比較多,之所以叫街區(qū),是因?yàn)槲鞣浇值劳ǔ6际菛|南,東北,西南,西北這樣
|x1-x2| + |y1-y2|
得到一個(gè)菱形區(qū)域的距離
#設(shè)起始坐標(biāo)是原點(diǎn),即(0,0) y_result = [] for y in range(10,-10,-1): x_result = [] for x in range(-10,10,1): #(abs(0-x) + abs(0-y)) if (abs(0-x) + abs(0-y)) <= 9: x_result.append('*') else: x_result.append(' ') y_result.append(''.join(x_result)) for i in y_result: print i
3、棋盤(pán)距離,這個(gè)就好理解,像棋盤(pán)一樣的方格子
max(|x1-x2|, |y1-y2|)
得到一個(gè)方形區(qū)域的距離
#設(shè)起始坐標(biāo)是原點(diǎn),即(0,0) y_result = [] for y in range(10,-10,-1): x_result = [] for x in range(-10,10,1): #max(abs(0-x),abs(0-y)) if max(abs(0-x),abs(0-y)) <= 9: x_result.append('*') else: x_result.append(' ') y_result.append(''.join(x_result)) for i in y_result: print i
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
哈工大自然語(yǔ)言處理工具箱之ltp在windows10下的安裝使用教程
這篇文章主要介紹了哈工大自然語(yǔ)言處理工具箱之ltp在windows10下的安裝使用教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05講解如何利用 Python完成 Saga 分布式事務(wù)
這篇文章主要介紹了如何利用 Python 完成一個(gè) Saga 的分布式事務(wù),需要的朋友可以參考下面文章具體的內(nèi)容2021-09-09Python編程django實(shí)現(xiàn)同一個(gè)ip十分鐘內(nèi)只能注冊(cè)一次
這篇文章主要介紹了Python編程django實(shí)現(xiàn)同一個(gè)ip十分鐘內(nèi)只能注冊(cè)一次的相關(guān)內(nèi)容,具有一定參考價(jià)值。需要的朋友可以了解下。2017-11-11

解決Python import .pyd 可能遇到路徑的問(wèn)題

python開(kāi)發(fā)準(zhǔn)備工作之配置虛擬環(huán)境(非常重要)

pytest解讀fixtures之Teardown處理yield和addfinalizer方案

Python小紅書(shū)旋轉(zhuǎn)驗(yàn)證碼識(shí)別實(shí)戰(zhàn)教程