当前位置: 首页 > 编程笔记 >

python距离测量的方法

暨正真
2023-03-14
本文向大家介绍python距离测量的方法,包括了python距离测量的方法的使用技巧和注意事项,需要的朋友参考一下

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  •        LSV可以量算出两个或多个点之间的地表距离、空间距离和投影距离。 测量地表距离        地标距离为两点间在通过地表上相连的长度,其数值与地形有关。在“分析”菜单栏中点击“距离测量”,选择测量地表距离,在地表上连续点击,测量地表距离。图上会显示各分段的长度和地表总长。 测量空间距离        空间距离为两点间不计地形而直接相连的限度长度。在“分析”菜单栏中点击“距离测量”,选

  •        LSV可以量算出两个或多个点之间的地表距离、空间距离和投影距离。 测量地表距离        地标距离为两点间在通过地表上相连的长度,其数值与地形有关。在“分析”菜单栏中点击“距离测量”,选择测量地表距离,在地表上连续点击,测量地表距离。图上会显示各分段的长度和地表总长。 测量空间距离        空间距离为两点间不计地形而直接相连的限度长度。在“分析”菜单栏中点击“距离测量”,选

  • 本文向大家介绍Openlayers测量距离与面积的实现方法,包括了Openlayers测量距离与面积的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Openlayers测量距离与面积的具体代码,供大家参考,具体内容如下 1、地图测量功能 一般的地图的测量功能主要表现在两个方面,一是测量距离,一是测量面积;面积的测量是根据鼠标绘制的范围,通过地理坐标系的转换而计算出实际面积大

  • 距离量算 距离量算是指测地线距离,指依地球表面进行量算,量算结果更符合实际应用,同时支持跨越东西半球进行量算。距离量算功能的实现步骤: 1.构建服务参数类 量算服务参数类提供服务请求所需的信息,该类提供量算的查询参数封装,提供的参数有 geometry,用来定义量算的几何对象,代码如下: // 设置量算服务参数 var distanceMeasureParam = new SuperMap.Mea

  • 问题内容: 是否可以计算两个`HitResult``s 之间的距离? 或者我们如何使用ARCore计算真实距离(例如米)? 问题答案: 在Java ARCore中,世界单位是米(我只是意识到我们可能不会对此进行记录… aaa,看起来像不行。 糟糕 ,提交了错误)。通过减去两个s 的平移分量,可以得到它们之间的距离。您的代码如下所示: 首次命中为: 第二击为: 假设这些命中结果不在同一帧上发生,那么

  • 问题内容: 我有一个一维数字数组,想计算所有成对的欧几里得距离。我有一种方法(感谢SO)在广播中执行此操作,但是它效率低下,因为它两次计算每个距离。而且它的伸缩性不好。 这是一个示例,它为我提供了1000个数字的数组。 我可以使用scipy / numpy / scikit-learn中最快的实现来执行此操作,因为它必须扩展到一维数组具有> 10k值的情况。 注意:矩阵是对称的,所以我猜想通过解决

  • 注意:矩阵是对称的,所以我猜测,通过寻址它,至少有可能获得2倍的加速,我只是不知道如何实现。

  • 问题内容: 我正在尝试使用Haversine公式来计算由纬度和经度标识的一长串位置的距离矩阵,该公式采用两个坐标对的元组来产生距离: 我可以使用嵌套的for循环计算所有点之间的距离,如下所示: 使用一个简单的函数: 但是考虑到时间的复杂性,这需要花费相当长的时间,大约需要20秒才能获得500点,而且我的清单要长得多。这让我着眼于矢量化,并且遇到了((docs)),但无法弄清楚如何在这种情况下应用它