普通用户
安卓通过传感器实现指南针功能 [复制链接]
浮生 发表于 2024-10-23 410 2

安卓通过传感器实现指南针功能;将手机水平绕Z轴为中心旋转;可以动态计算方位。


事件 传感器1.方向被改变(源对象  传感器,X轴  单精度小数,Y轴  单精度小数,Z轴  单精度小数)
    '标签1.标题 = "X:" + X轴 + ",Y轴:" + Y轴 + ",Z轴:" + Z轴
    ' https://www.runoob.com/w3cnote/android-tutorial-sensor2.html
    ' 手机平放桌面旋转时、是绕着Z轴旋转的
    更新指南针角度(Z轴)
结束 事件

变量 dh1  动画效果器
变量 上次旋转角度  整数型
函数 更新指南针角度(Z轴偏移  单精度小数)
    变量 偏移值 = 到整数(Z轴偏移)
    ' 0 正北,90 正东,180 正南,270 正西
    ' 判断±10的区间范围即为正方向、例如:正东[80-100]
    如果(偏移值 > 80  偏移值 < 100)
        标签1.标题 = "正东 " + 偏移值 + "°"
    否则 如果(偏移值 > 170  偏移值 < 190)
        标签1.标题 = "正南 " + 偏移值 + "°"
    否则 如果(偏移值 > 260  偏移值 < 280)
        标签1.标题 = "正西 " + 偏移值 + "°"
    否则 如果((偏移值 > 350  偏移值 < 360)  (偏移值 > 0  偏移值 < 10))
        标签1.标题 = "正北 " + 偏移值 + "°"
    否则 如果(偏移值 > 0  偏移值 < 90)
        标签1.标题 = "东北 " + 偏移值 + "°"
    否则 如果(偏移值 > 90  偏移值 < 180)
        标签1.标题 = "东南 " + 偏移值 + "°"
    否则 如果(偏移值 > 180  偏移值 < 270)
        标签1.标题 = "西南 " + 偏移值 + "°"
    否则 如果(偏移值 > 270  偏移值 < 360)
        标签1.标题 = "西北 " + 偏移值 + "°"
    否则
        标签1.标题 = 偏移值 + "°"
    结束 如果
    ' 判断为空、只创建一次
    如果(dh1 == )
        dh1 = 创建 动画效果器()
        dh1.动画时长 = 10
        dh1.执行次数 = 0
        dh1.保持结束状态 = 
    结束 如果
    dh1.置旋转动画(图片框2,(单精度小数)上次旋转角度,(单精度小数)偏移值,0.5f,0.5f)
    上次旋转角度 = 偏移值
结束 函数
MoLi先生 2024-10-26

正好需要这个、感谢楼主分享!

回复
喻志明 2024-10-23

函数调用还可以这样写?!

回复
 作者信息
浮生
USB专业用户 云验证
专业开发指导服务

响应时间:5分钟

服务方式:官方1对1服务

工作时间:工作日 9:00 - 18:30

专业团队 · 开发指导 · 极速响应


官网 | 基础视频教程 | 在线文档 下载 VcnStudio IDE

© VcnStudio Inc All Rights Reserved

蜀ICP备17024229号