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 json模块使用实例
Apr 11 Python
Python中序列的修改、散列与切片详解
Aug 27 Python
Python 读取指定文件夹下的所有图像方法
Apr 27 Python
Python应用库大全总结
May 30 Python
python简易远程控制单线程版
Jun 20 Python
python生成密码字典的方法
Jul 06 Python
python爬取微信公众号文章的方法
Feb 26 Python
Pyinstaller打包.py生成.exe的方法和报错总结
Apr 02 Python
Python 编程速成(推荐)
Apr 15 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
Apr 29 Python
python爬虫用mongodb的理由
Jul 28 Python
matplotlib绘制正余弦曲线图的实现
Feb 22 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
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
javascript多种数据类型表格排序代码分析
2010/09/11 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
2015/11/17 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
用JavaScript获取页面文档内容的实现代码
2016/06/10 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
2016/09/08 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
jQuery内容筛选选择器实例代码
2017/02/06 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
2018/09/28 Javascript
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
美国专注于健康商品的网站:eVitamins
2017/01/23 全球购物
聚网科技C++面试笔试题
2015/09/01 面试题
数控技术应用个人求职信范文
2014/02/03 职场文书
服装设计专业自荐信
2014/06/17 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
分析Java中Map的遍历性能问题
2021/06/26 Java/Android
使用Redis实现点赞取消点赞的详细代码
2022/03/20 Redis