溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python距離測量的方法

發布時間:2020-08-23 06:01:43 來源:腳本之家 閱讀:226 作者:咻_python 欄目:開發技術

之所以寫這個,其實就是希望能對距離有一些概念,當然這個也是很基礎的,不過千里之行始于足下嘛,各種路徑算法,比如a*什么的都會用到這個

距離測量有三種方式

1、歐式距離,這個是最常用的距離測量方式

((x1-x2)^2 + (y1-y2)^2)^0.5

得到一個原型區域的距離

#設起始坐標是原點,即(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、街區距離,這個一般游戲中用到的會比較多,之所以叫街區,是因為西方街道通常都是東南,東北,西南,西北這樣

|x1-x2| + |y1-y2|

得到一個菱形區域的距離

#設起始坐標是原點,即(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|)

得到一個方形區域的距離

#設起始坐標是原點,即(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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女