zoukankan      html  css  js  c++  java
  • ios 关于屏幕旋转和屏幕晃动

    内置加速计是智能手机最酷的特性之一,ios可以通过这个小设备知道用户握持手机的方式,以及用户是否移动了手机,ios使用加速计处理自动旋转,并且许多游戏都是用它作为控制机制,它还可以用于检测摇动和其他突发的运动,此功能在iphone4之后得到进一步的拓展,还包括了一个内置的陀螺仪,可用于确定设备的方向与每条坐标轴之间的夹角。

    第一  加速计

    通过感知特定方向的惯性力总量,加速计可以测量出加速度和重力,ios设备内的加速计是一个三轴加速计,这意味着它能够检测出三维空间中的运动或重力引力。因此加速计不但可以指示握持电话的方式(如自动旋转功能),而且如果电话放在桌子上的话还可以指示电话的正面朝上还是朝下。

          加速计可以测量g引力(g代表重力),因此加速计返回值为1.0时,表示在特定的方向上感知到1g。

         1 .如果是静止握持iphone而没有任何运动,那么地球引力对其施加的力大约为1g

         2. 如果是纵向竖直握持,那么设备会检测并报告在其y轴上施加的力大约为1g

         3.如果是以一定的角度握持,那么1g的力会分布到不同的轴上,这取决于握持的方式,在以45度握持时,1g的力会均匀的分解到两个轴上。如果检测到加速计值远大于1g,那么可以判断是突然运动,,正常使用时加速计在任何一个轴上都不会检测到远大于1g的值,如果摇动、坠落或投掷设备,那么加速计便会在一个或多个轴上检测到很大的力

    下图所示加速计所使用的三轴结构

    第二  陀螺仪

    陀螺仪可用于读取描述设备围绕其轴的旋转的值。

    如果其传感器与加速计之间的区别看起来不那么明显,可以考虑平放在桌面上的iphone,如果在保持电话平放时旋转它,加速计的值不会改变,这是因为让电话移动的力(在这种情况下,只有重力直接施加在z轴上)没有改变

     

    第三 CoreMotion 和动作管理器

    在ios4和更高版本中,加速计和陀螺仪只可以使用CoreMotion框架访问,此框架提供了CMMotionmanager类(当然还有其他的类),该类用作描述用户如何移动设备所有值的途径

    cmmotionmanager类实际上不是一个独立的实体,但应用程序应该将他视为独立的,应该仅为每个应用程序创建一个CMMotionmanager类,并且使用普通的alloc和init方法

  • 相关阅读:
    jmeter使用教程
    Jmeter的好搭档Badboy的安装与简单使用
    十大编程算法助程序员走上高手之路
    polyfillJS生成promise对象
    js+canvas实现滑动拼图验证码功能
    WebAssembly介绍
    解释器与编译器
    使用axios优雅的发起网络请求
    【javascript】script标签的async异步解析
    sass用法快速入门
  • 原文地址:https://www.cnblogs.com/ios8/p/ios-roate.html
Copyright © 2011-2022 走看看