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 相关文章推荐
在Windows8上的搭建Python和Django环境
Jul 03 Python
Python描述器descriptor详解
Feb 03 Python
Python代码调试的几种方法总结
Apr 15 Python
python的numpy模块安装不成功简单解决方法总结
Dec 23 Python
python3+PyQt5使用数据库表视图
Apr 24 Python
python ftp 按目录结构上传下载的实现代码
Sep 12 Python
Python调用C++,通过Pybind11制作Python接口
Oct 16 Python
pycharm 安装JPype的教程
Aug 08 Python
在tensorflow中实现屏蔽输出的log信息
Feb 04 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 Python
Django 自定义权限管理系统详解(通过中间件认证)
Mar 11 Python
浅谈Python从全局与局部变量到装饰器的相关知识
Jun 21 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 error_log 函数的使用
2009/04/13 PHP
详解WordPress开发中get_header()获取头部函数的用法
2016/01/08 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
JQuery操作元素的css样式
2015/03/09 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
2015/10/24 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
js实现网页版贪吃蛇游戏
2020/02/22 Javascript
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
[01:02:46]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
python测试驱动开发实例
2014/10/08 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
python 读取文本文件的行数据,文件.splitlines()的方法
2018/07/12 Python
python实现祝福弹窗效果
2019/04/07 Python
如何利用Python模拟GitHub登录详解
2019/07/15 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
Python日志syslog使用原理详解
2020/02/18 Python
如何在pycharm中安装第三方包
2020/10/27 Python
Matplotlib animation模块实现动态图
2021/02/25 Python
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
数学专业毕业生自荐信
2013/11/10 职场文书
决心书标准格式
2014/03/11 职场文书
公司保密承诺书
2014/03/27 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
个人四风对照检查材料
2014/09/26 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书