python运动目标绘制轨迹,python模拟运动轨迹

  python运动目标绘制轨迹,python模拟运动轨迹

  硬件环境:

  MacBook Pro (15英寸,2017年)

  iPhone 8 Plus

  macOS Mojave 10.14.5

  iOS 12.4

  Xcode 10.2.1

  Python 3.7.0

  崇高的文本3.1.1

  打开Xcode-偏好设置来添加Apple ID

  在Xcode上新建一个项目,打开Xcode-新建一个Xcode项目。

  选择ios菜单-单视图App,填写项目名称推荐非中文,将文件夹存放在准备好的文件夹中推荐非中文。

  此时将iPhone连接到mac,连接的设备显示在左上角。

  以下结果是成功的:

  2.使用Xcode创建包含gpx的文件

  GPX(GPS交换格式)是一种XML格式,是为应用软件设计的通用GPS数据格式,专门用于存储地理信息。

  GPX文件包含由纬度和经度点组成的轨迹,包括时间、名称和其他信息。

  回到Xcode,打开Xcode-File-New-File。

  选择IOS菜单下的GPX文件。

  选择一个位置并将GPX文件命名为示例:fake_loc.gpx

  以下gpx文件的自动生成成功

  分析一下gpx文件,它的格式和标签语言的格式差不多。

  在标签中包括纬度和经度(lat,lon)、点的名称和时间。

  第一条评论的内容如下:

  "提供一个或多个包含纬度/经度对的点_

  如果提供了一个点,Xcode将模拟该特定点_

  如果提供了多个点,Xcode将依次模拟每个点" u

  第二条评论的内容如下:

  “你可以选择给每个坐标点加一个时间戳_是的,Xcode可以按照时间戳的顺序依次移动到每个坐标点,按照时间点插入速度x。

  如果没有提供时间戳,Xcode将使用固定速度_

  航路点必须按时间升序排列_ "

  所以可以通过输入一系列的点来模拟位置,让Xcode依次设置每个点来模拟人的跑步行为。

  3.使用Python自动生成一系列跟踪点

  第一篇文章记录了mac python和sublime text3的环境配置。

  对gpx文件结构的分析表明,目标gpx文件结构应该是:

  ?xml版本=1.0 ?

  # .

  #等等。

  指定地点的经纬度信息可从地图经纬度查询网站:http://www.gpsspg.com/maps.htm.获取

  我们选择Xi安的一所211大学作为实验地点:

  该网站提供多家公司定位标准下的经纬度信息。

  因为每个公司的定位标准不一样,经纬度会有偏差。这时候就要看用哪个APP的地图进行模拟了。

  以我们的一款跑步打卡APP trails Le Run为实验对象,在这所大学实现了水平移动和垂直移动。

  经过验证,该应用程序使用谷歌地球标准。第一,通过这个网站获取一条直线的经纬度点:

  起点:

  纬度:34度,经度:100度。53860.88868888661

  中间点:

  纬度:34.393255磅

  终点:

  纬度:34度,经度:100度。53670.88868888667

  在这个网站上,可以通过经纬度获取距离信息:http://www.hhlink.com//的经纬度

  计算距离约为78米。

  然后根据要求,通过测距得到相应的距离,从而计算出水平和垂直移动速度。

  可以得出这样的结论:

  在这所大学里,从北到南经度减小,纬度增加。

  在这所大学里,从东到西经度减小,纬度减小。

  满足跑步打卡APP trail的配速要求:3 ~ 9 min/km,例如由北向南生成100分。

  经度依次减小,纬度依次增大,这100个点分散在路径上。

  每个点之间减少或增加的距离可以乘以一个指定范围内的随机数,这样这些点就会显示出一条从一边到另一边的轻微摇摆的路径。

  在点数较多的情况下,类似于人类的跑步轨迹。

  根据大学的位置,编写相应的python程序:

  导入随机#初始点信息

  a1=34.3752989239

  b1=108.9080291565#中间点信息

  a2=34.3740193255

  b2=108.9085977848对于I in range (1,1000): while (A1=A2): #当经度没有到达中点时执行循环条件。

  Xa=round(随机。uniform (0.2,7)) #随机数,用来模拟人类跑步。

  Xb=圆形(随机.均匀(12,15)) #垂直移动

  a1=round( a1 - 0.0000072 * xa,10)

  B1=round (b10.000008 * XB,10) #输出信息

  打印()打印()范围内的I(1,100

  xa=round( random.uniform(2,8))

  Xb=round( random.uniform(1,3)) #水平移动

  a2=舍入(a2 - 0.000003 * xa,10)

  b2=round( b2 - 0.000025 * xb,10)print()print()

  获取输出(摘录):

  将输出复制并粘贴到gpx文件中。

  并命令s进行保存。

  您可以在xcode项目目录中找到并打开该文件:

  4.开始位置模拟。

  确保手机连接到电脑并解锁,以保持屏幕始终打开。

  点按Xcode右上角的开始图标:

  第一次会提示iPhone不信任开发者。

  在设置-常规-设备管理中点击开发者,选择信任。

  再次点按Xcode右上角的图标。

  一分钟左右手机上会出现一个灰色的app图标。

  单击主页按钮退出并进入试跑。

  Xcode下面有一列函数,点击位置图标,选择你的fake_loc。

  此时,APP已经开始按照gpx文件中的路径移动。

  摘要

  模拟中不考虑速度,按照gpx点默认Xcode更新速度实现。

  在控制整体移动速度时,完全是根据点的密度,也就是点的位置变化程度来实现的。

  后期可以根据时间戳提高更准确的速度。

  根据越野跑后台数据,作弊检测主要看平均配速、每公里步数、装备uuid、装备序列号。

  本文的方法可以解决平均步速、uudi、序列号等问题。(因为是真机实现的)。

  但是步数只有在模拟时摇手机才能达到。

  原文:https://www.cnblogs.com/Joeric07/p/11173651.html

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: