python距离测量的方法


Posted in Python onMarch 06, 2018

之所以写这个,其实就是希望能对距离有一些概念,当然这个也是很基础的,不过千里之行始于足下嘛,各种路径算法,比如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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python进程通信之匿名管道实例讲解
Apr 11 Python
Python中的Matplotlib模块入门教程
Apr 15 Python
使用Python搭建虚拟环境的配置方法
Feb 28 Python
使用python生成目录树
Mar 29 Python
python 对txt中每行内容进行批量替换的方法
Jul 11 Python
pygame游戏之旅 按钮上添加文字的方法
Nov 21 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
Jun 27 Python
运用PyTorch动手搭建一个共享单车预测器
Aug 06 Python
解决Numpy中sum函数求和结果维度的问题
Dec 06 Python
jupyternotebook 撤销删除的操作方式
Apr 17 Python
Python celery原理及运行流程解析
Jun 13 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
Nov 25 Python
Python入门之后再看点什么好?
Mar 05 #Python
Python 装饰器实现DRY(不重复代码)原则
Mar 05 #Python
Tensorflow实现卷积神经网络用于人脸关键点识别
Mar 05 #Python
python入门教程 python入门神图一张
Mar 05 #Python
详解TensorFlow在windows上安装与简单示例
Mar 05 #Python
python 中if else 语句的作用及示例代码
Mar 05 #Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
Mar 05 #Python
You might like
PHP处理JSON字符串key缺少双引号的解决方法
2014/09/16 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
JavaScript中的Window窗口对象
2008/01/16 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
解决IE6的PNG透明JS插件使用介绍
2013/04/17 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
正则表达式(语法篇推荐)
2016/06/24 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
JS中Map和ForEach的区别
2018/02/05 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
2019/03/05 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
深入学习JavaScript 高阶函数
2019/06/11 Javascript
Node.js中文件系统fs模块的使用及常用接口
2020/03/06 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
浅谈Pandas中map, applymap and apply的区别
2018/04/10 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
pygame实现雷电游戏雏形开发
2018/11/20 Python
pytorch实现MNIST手写体识别
2020/02/14 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
.NET概念性的面试题
2012/02/29 面试题
药学专业个人的自我评价
2013/12/31 职场文书
爱心捐书活动总结
2014/07/05 职场文书
canvas 中如何实现物体的框选
2022/08/05 Javascript