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进阶教程之函数参数的多种传递方法
Aug 30 Python
Python深入学习之闭包
Aug 31 Python
Python函数式编程指南(一):函数式编程概述
Jun 24 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
Aug 07 Python
python如何通过protobuf实现rpc
Mar 06 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
May 29 Python
Python实现压缩文件夹与解压缩zip文件的方法
Sep 01 Python
Python全局变量与局部变量区别及用法分析
Sep 03 Python
python面试题Python2.x和Python3.x的区别
May 28 Python
python连接PostgreSQL过程解析
Feb 09 Python
使用python求解二次规划的问题
Feb 29 Python
如何使用python自带IDLE的几种方法
Oct 10 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对数组排序的简单实例
2013/12/25 PHP
PHP判断数组是否为空的常用方法(五种方法)
2017/02/08 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
Laravel 模型关联基础教程详解
2019/09/17 PHP
JS 常用校验函数
2009/03/26 Javascript
Js 本页面传值实现代码
2009/05/17 Javascript
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
基于jquery的可多选的下拉列表框
2012/07/20 Javascript
使用js判断TextBox控件值改变然后出发事件
2014/03/07 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
2016/07/01 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
强大的JavaScript响应式图表Chartist.js的使用
2017/09/13 Javascript
浅谈vue路径优化之resolve
2017/10/13 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
js函数柯里化的方法和作用实例分析
2020/04/11 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
对于Python异常处理慎用“except:pass”建议
2015/04/02 Python
详解python selenium 爬取网易云音乐歌单名
2019/03/28 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
Html5 video标签视频的最佳实践
2020/02/26 HTML / CSS
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
艺术专业大学生自我评价
2013/09/22 职场文书
大学学习生活感言
2014/01/18 职场文书
车辆转让协议书
2014/04/15 职场文书
出售房屋委托书范本
2014/09/24 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang
Python 中 Shutil 模块详情
2021/11/11 Python