【问题标题】:Animate object using android accelerometer data使用 android 加速度计数据为对象设置动画
【发布时间】:2015-12-24 10:06:53
【问题描述】:

我正在使用 Android 应用程序将加速度计数据流式传输到我 PC 上的 python 脚本,然后将其写入文本文件。然后,我尝试使用 Javascript 和 jQuery 为 3d CSS 长方体(设备形状)设置动画,以模拟设备在流式传输数据时的移动方式。

起初我使用陀螺仪数据进行了尝试,该数据以弧度/秒输出。我通过将该值乘以 57(以度为单位的一个弧度)左右将其转换为度/秒,但是当我尝试 rotateX: 100deg 时,例如,当使用这些值进行动画处理时,这会导致行为不稳定。

我想知道如何使用从我的 android 设备的加速度计收集的数据为 3d CSS 对象设置动画,或者这是否可能?

【问题讨论】:

  • 你能发布你从陀螺仪收集的数据吗?
  • 请发布您当前动画代码的一部分,并提及您尝试过的其他事情。

标签: javascript android jquery python css


【解决方案1】:

考虑使用WebGL,您会在其 API 中找到您需要的大部分功能(用于在浏览器中对手机对象进行 3D 转换和渲染)。
此外,正如user1561358 建议的那样,当你可以从 js 打开一个 websocket 到你的 android 应用程序时,你为什么要使用 python 脚本来中继数据。这也将使您免于不断轮询文件。

我想要一个完整的解释我的问题。

  1. Android 应用程序在启动时创建一个套接字,通知用户其 ip 和端口。
  2. webgl 应用程序请求 ip:port 信息,提交后打开 websocket。
  3. 如果握手成功,要求用户稳定手机并同步两端(按下一个按钮,手机会通知 WebGL 它是完全水平的。)
  4. 从同步开启后,手机将通过套接字将 3 轴的任何变化传递到 WebGL 应用程序。
  5. WebGL 根据接收到的手机方向变化转换手机对象。

【讨论】:

    【解决方案2】:

    想到的东西很少。

    1. 通过Python函数math.degrees(x)将弧度转换为度数

    2. 您是如何设置参考框架的?设备旋转这一事实本身是不够的。你还需要知道它正在转向什么。

    3. 砍掉中间人。您使用的语言和转换越多,问题就越复杂。忽略事情要容易得多。考虑只用一种语言编写应用程序并跳过文本文件。

    编辑:这会更好作为评论,因为它不是一个明确的答案。不幸的是,我缺乏必要的特权。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-12
      • 2014-12-27
      • 1970-01-01
      • 2023-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多