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多线程http下载实现示例
Dec 30 Python
利用Python实现命令行版的火车票查看器
Aug 05 Python
Python抓取框架 Scrapy的架构
Aug 12 Python
解决pycharm的Python console不能调试当前程序的问题
Jan 20 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
Jun 05 Python
使用python实现对元素的长截图功能
Nov 14 Python
python解释器安装教程的方法步骤
Jul 02 Python
python raise的基本使用
Sep 10 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
Oct 14 Python
如何使用Django Admin管理后台导入CSV
Nov 06 Python
python利用pytesseract 实现本地识别图片文字
Dec 14 Python
python numpy中setdiff1d的用法说明
Apr 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
解析MySql与Java的时间类型
2013/06/22 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
PHP实现一个轻量级容器的方法
2019/01/28 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
JS版网站风格切换实例代码
2008/10/06 Javascript
javascript 显示当前系统时间代码
2009/12/28 Javascript
jqgrid 简单学习笔记
2011/05/03 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
2015/08/22 Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
2015/08/27 Javascript
Bootstrap3制作自己的导航栏
2016/05/12 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
2017/08/29 Javascript
vue.js  父向子组件传参的实例代码
2017/10/29 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
Python自动发邮件脚本
2017/03/31 Python
python文本数据相似度的度量
2018/03/12 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
Linux文件系统类型
2012/02/15 面试题
军训心得体会
2013/12/31 职场文书
健康家庭事迹材料
2014/05/02 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
消防宣传口号
2014/06/16 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
学生保证书格式
2015/02/27 职场文书
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL