python距離測量的方法
之所以寫這個,其實就是希望能對距離有一些概念,當然這個也是很基礎的,不過千里之行始于足下嘛,各種路徑算法,比如a*什么的都會用到這個
距離測量有三種方式
1、歐式距離,這個是最常用的距離測量方式
((x1-x2)^2 + (y1-y2)^2)^0.5
得到一個原型區(qū)域的距離
#設起始坐標是原點,即(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ū)距離,這個一般游戲中用到的會比較多,之所以叫街區(qū),是因為西方街道通常都是東南,東北,西南,西北這樣
|x1-x2| + |y1-y2|
得到一個菱形區(qū)域的距離
#設起始坐標是原點,即(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、棋盤距離,這個就好理解,像棋盤一樣的方格子
max(|x1-x2|, |y1-y2|)
得到一個方形區(qū)域的距離
#設起始坐標是原點,即(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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
哈工大自然語言處理工具箱之ltp在windows10下的安裝使用教程
這篇文章主要介紹了哈工大自然語言處理工具箱之ltp在windows10下的安裝使用教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05Python編程django實現(xiàn)同一個ip十分鐘內只能注冊一次
這篇文章主要介紹了Python編程django實現(xiàn)同一個ip十分鐘內只能注冊一次的相關內容,具有一定參考價值。需要的朋友可以了解下。2017-11-11Python中使用wxPython開發(fā)的一個簡易筆記本程序實例
這篇文章主要介紹了Python中使用wxPython開發(fā)的一個簡易筆記本程序實例,本文實現(xiàn)打開文件、修改并保存文件功能,需要的朋友可以參考下2015-02-02解決Python import .pyd 可能遇到路徑的問題
這篇文章主要介紹了解決Python import .pyd 可能遇到路徑的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03python開發(fā)準備工作之配置虛擬環(huán)境(非常重要)
這篇文章主要介紹了python開發(fā)準備工作之配置虛擬環(huán)境(非常重要),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02pytest解讀fixtures之Teardown處理yield和addfinalizer方案
這篇文章主要為大家介紹了pytest解讀fixtures之Teardown處理yield和addfinalizer的方案實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06