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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。