iOS相机视图地标标签:如何适配设备Yaw与Pitch倾斜?
问题背景
我开发了一款iOS应用,可在相机视图中实时为用户眼前的地标(如建筑、山脉)添加标注。当手机平视时,标注准确(在合理GPS误差范围内);但当手机发生*偏航(Yaw)或俯仰(Pitch)*倾斜时,地标标注需相应调整,我尚未找到最优实现方案。
已尝试方案1:2D图形上下文变换
我尝试过利用图像上下文的内置rotateBy变换(midX和midY分别为屏幕宽高的中心坐标):
UIGraphicsPushContext(ctx) ctx.saveGState() ctx.translateBy(x: midX, y: midY) ctx.rotate(by: -self.deviceYawAngle) ctx.translateBy(x: -midX, y: -midY) ... ... ctx.restoreGState() UIGraphicsPopContext()
该方法能较好处理*偏航(Yaw)旋转,但我不确定如何结合俯仰(Pitch)*旋转,因为这本质是3D投影而非单纯的2D屏幕变换。
已尝试方案2:视锥三角函数计算
我还尝试过将其视为视锥,手动计算三角函数。例如针对*俯仰(Pitch)旋转,用original dist. to landmark x sin(pitch angle)计算偏移量,但同样困惑于如何将其与偏航(Yaw)*旋转结合。
恳请各位提供相关见解,谢谢!
内容的提问来源于stack exchange,提问作者hqt08
相关产品推荐
相关产品推荐

