在自由落体期间,iphone应该在所有三个轴上发送加速度值为0.那么如何检测iphone所覆盖的距离呢?
显然,当屏幕被锁定时,可以让处理器继续处理,如下所示:
但是,在使用示例代码进行测试后,UIAccelerometer将在设备锁定后立即停止给出值.有没有办法强迫别的?
我已经尝试了几种方法来测量用户通过读取加速度计对iPhone进行的步骤,但没有一种方法非常准确.我使用的最准确的实现如下:
float xx = acceleration.x;
float yy = acceleration.y;
float zz = acceleration.z;
float dot = (mOldAccX * xx) + (mOldAccY * yy) + (mOldAccZ * zz);
float a = ABS(sqrt(mOldAccX * mOldAccX + mOldAccY * mOldAccY + mOldAccZ * mOldAccZ));
float b = ABS(sqrt(xx * xx + yy * yy + zz * zz));
dot /= (a * b);
if (dot <= 0.994 && dot > 0.90) // bounce
{
if (!isChange)
{
isChange = YES;
mNumberOfSteps += 1; …Run Code Online (Sandbox Code Playgroud) 我试图让矢量的方向指向相机,相对于磁北.我的印象是我需要使用getOrientation()返回的值,但我不确定它们代表什么.当我改变手机的方向时,我从getOrientation()获得的值不会发生可预测的变化(旋转90度不会将值改变90度).我需要知道getOrientation()返回的值是什么意思.到目前为止我所写的内容如下:
package com.example.orientation;
import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.Toast;
public class Orientation extends Activity{
private SensorManager mSM;
private mSensorEventListener mSEL;
float[] inR = new float[16];
float[] outR= new float[16];
float[] I = new float[16];
float[] gravity = new float[3];
float[] geomag = new float[3];
float[] orientVals = new float[3];
final float pi = (float) Math.PI;
final float rad2deg = 180/pi;
/** Called when the activity is first created. */
@Override …Run Code Online (Sandbox Code Playgroud) rotation accelerometer orientation magnetometer augmented-reality
我在ViewController中有一系列图像.
我通过改变他们各自的层来"漂浮"它们:
img.layer.transform = CATransform3DMakeTranslation(0.0f, 0.0f, myZ);
Run Code Online (Sandbox Code Playgroud)
这样可以使图层浮动在屏幕上方 - 在模拟器中,没有可见效果(这是正确的).
我想要做的是具有这样的效果:向左/向右/向前/向后移动设备会使其看起来像层浮动一样微妙.将设备向左倾斜时,应将整个视图向右倾斜.这会让你感觉移动设备可以让你看到周围的角落 - 也就是说它会让人感觉图像真的漂浮在屏幕上方,因为它们会以不同的速度移动(基于它们的z指数).
我已经制作了一个测试项目(这里是项目文件),它有一个示例项目来演示这个.
我的问题是我不是一个数学家,所以我正在努力用最好的方法来模拟微妙的浮动效果.现在,我有一个DeviceMotion的监听器,然后执行:
self.view.layer.sublayerTransform = CATransform3DMakeRotation(20.0f * M_PI / 180.0f, 2*motion.attitude.pitch, -2*motion.attitude.roll, 0);
Run Code Online (Sandbox Code Playgroud)
这非常接近我想要的,但它并不完全正确.
我认为这种效果可以在许多不同的应用中使用.我希望将此扩展到朋友和我正在进行的人脸检测(因此它会根据人脸的移动移动父视图 - 即使他们保持手机/设备完全静止).
我意识到我会让人们回答"只是使用OpenGL".这不是我需要的答案 - 除非你发布一大堆代码,展示如何在这个项目中集成它.(我不是在寻找新问题来解决.:-)
同样,完整的项目在这里(iphone浮动视图)适合任何想要看到效果的人.(当这个工作时,我会将完整的(工作)项目留在这里,以供后人使用.)
我只是应用程序开发行业的初学者.我知道加速度计可用于沿三轴返回当前加速度,单位为米/秒平方(m/s2).但我已经知道加速度计也可以用作速度计.
我想知道如何使用加速度计来确定Android设备在兴趣点之间的行进距离.如果可能,那我该如何实现呢?我已经看到了类似的问题"我如何使用加速度计测量 Iphone行进的距离" 如何测量iPhone使用加速度计行进的距离?.但我没有达到目的.
谢谢,阿尔斯兰
我正在实施一个基于加速度计的计步器,我想知道是否有任何已知的算法来处理它.
如何使用Delphi XE2访问iOS中的加速度计?
我尝试通过IDE查找,但没有找到组件.
我正在开发基于嵌入式加速计的手势识别.有人知道一些免费图书馆要么雇用还是从一开始?我正在使用嵌入式Linux,我正在寻找一些计算量不大的东西.除了数十篇理论论文,YouTube视频或"封闭式"应用程序之外,我在谷歌上找不到太多东西.
我知道这是一个非常广泛的问题,但我认为它可以帮助处于相同情况的每个人.
谢谢!
我听了这个演讲:http: //www.youtube.com/watch?v = C7JQ7Rpwn2k
这是Invensense公司为其"传感器融合"系统进行原型设计,该系统将Android中的陀螺仪,加速度计,罗盘测量结合起来,以获得更好的效果.
这是当前在任何版本的Android中实现的吗?我问的原因是,传感器融合的一部分是"重力"传感器和"线性加速"传感器,自从API级别9以来在Android中实现...让我认为1)传感器融合实现2)传感器融合没有实现,但这些只是添加到Android API中,以期在未来广泛增加的sensorfusion实现.
有人知道吗?
谢谢
accelerometer ×10
iphone ×4
gyroscope ×3
android ×2
delphi ×1
delphi-xe2 ×1
firemonkey ×1
gravity ×1
ios ×1
layer ×1
linux ×1
magnetometer ×1
mobile ×1
orientation ×1
physics ×1
rotation ×1
sensor ×1
sleep-mode ×1
transform ×1