python距离测量的方法
之所以写这个,其实就是希望能对距离有一些概念,当然这个也是很基础的,不过千里之行始于足下嘛,各种路径算法,比如a*什么的都会用到这个
距离测量有三种方式
1、欧式距离,这个是最常用的距离测量方式
((x1-x2)^2+(y1-y2)^2)^0.5
得到一个原型区域的距离
#设起始坐标是原点,即(0,0)
y_result=[]
foryinrange(10,-10,-1):
x_result=[]
forxinrange(-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))
foriiny_result:
printi
2、街区距离,这个一般游戏中用到的会比较多,之所以叫街区,是因为西方街道通常都是东南,东北,西南,西北这样
|x1-x2|+|y1-y2|
得到一个菱形区域的距离
#设起始坐标是原点,即(0,0)
y_result=[]
foryinrange(10,-10,-1):
x_result=[]
forxinrange(-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))
foriiny_result:
printi
3、棋盘距离,这个就好理解,像棋盘一样的方格子
max(|x1-x2|,|y1-y2|)
得到一个方形区域的距离
#设起始坐标是原点,即(0,0)
y_result=[]
foryinrange(10,-10,-1):
x_result=[]
forxinrange(-10,10,1):
#max(abs(0-x),abs(0-y))
ifmax(abs(0-x),abs(0-y))<=9:
x_result.append('*')
else:
x_result.append('')
y_result.append(''.join(x_result))
foriiny_result:
printi
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。