Ios iphone摄像头上方标高/方向角处的圆弧/曲线叠加

Ios iphone摄像头上方标高/方向角处的圆弧/曲线叠加,ios,overlay,augmented-reality,Ios,Overlay,Augmented Reality,各位 我正在寻找我应该学习/阅读什么的指针/方向,以完成我需要的任务。我不是在寻找一个完整的解决方案/答案(当然,除非你准备好了:) 我的问题是,我想在相机/视频视图上显示一个覆盖图。覆盖层由一条弧/曲线组成,该弧/曲线上满是点。覆盖层将在那里,但仅当用户将设备倾斜到标高X(度)和方向Y时才会显示 在youtube上的以下两个视频中可以看到几个例子: 在时间0:15到0:50和 时间0:14至结束(0:48) 我从未使用过quartz/graphics/spritekit,我甚至不知道这些是否有

各位

我正在寻找我应该学习/阅读什么的指针/方向,以完成我需要的任务。我不是在寻找一个完整的解决方案/答案(当然,除非你准备好了:)

我的问题是,我想在相机/视频视图上显示一个覆盖图。覆盖层由一条弧/曲线组成,该弧/曲线上满是点。覆盖层将在那里,但仅当用户将设备倾斜到标高X(度)和方向Y时才会显示

在youtube上的以下两个视频中可以看到几个例子: 在时间0:15到0:50和 时间0:14至结束(0:48)

我从未使用过quartz/graphics/spritekit,我甚至不知道这些是否有用,因此我不知道从哪里开始


谢谢你的帮助。提前谢谢

最简单的方法是使用石英。使用
CGContext
draw函数将圆弧或曲线绘制到放置在相机视图上方的
UIView
中。这可以在
UIView
drawRect:
方法中轻松完成,因为您可以轻松检索特定
UIView
CGContext
。为了更好地解释这一点,这里有一个例子:

//
//  PlotView.m
//  testApp
//
//  Created by Me on 10/20/13.
//  Copyright (c) 2013 Me. All rights reserved.
//

#import "PlotView.h"

@implementation PlotView

-(void)drawRect:(CGRect)rect
{
    //The CGContext for this UIView instance
    CGContextRef context = UIGraphicsGetCurrentContext();

    //Set the draw style
    CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
    //Add elements to draw
    CGContextAddArc(context, CGRectGetMidX(rect), CGRectGetMidY(rect), CGRectGetWidth(rect)/2, M_PI_4, 3*M_PI_4, YES);
    //commit draw
    CGContextDrawPath(context, kCGPathStroke);

    //additional parts with different draw setup
    CGContextSetLineWidth(context, 5);
    CGContextAddEllipseInRect(context, CGRectMake(10, 10, 50, 50));
    CGContextDrawPath(context, kCGPathFillStroke);
}

@end
您可以在此单一视图中绘制所有内容,并根据设备移动调整其位置。您还可以正常隐藏/显示视图(更改
alpha
hidden
属性)。 要触发更新(例如卫星改变位置时),请调用
setNeedsDisplay
setNeedsDisplayInRect:
方法。为了优化起见,如有必要,使用后者中的
rect
参数(以及
drawRect
方法中的相同参数),仅在视图中需要的部分触发重画(也仅在此矩形中绘制)


关于你需要显示的曲线:我相信你会找到一个合适的
CGContextAdd…
函数,它具有你需要绘制的形状,无论是圆弧、一组直线还是贝塞尔曲线。

Burax,感谢你提供了一个非常详细的答案,这是对我需要进一步研究的内容的一个非常好的介绍。现在,我将投票支持这个答案,在研究/尝试了你在本周提到的东西之后,我会回来把它标记为答案。再次感谢你的介绍!谢谢你!burax,很抱歉这么晚才发表评论:我已经离开一段时间了,直到现在还不能完全理解/了解您提出的解决方案。我还没有实现它,我有几个问题,如果您能花一分钟时间回答,我将不胜感激:1-您说“使用CGContext绘图函数将您的圆弧或曲线绘制到您放置在摄影机视图上的UIView中”如果弧/视图比屏幕尺寸大得多,并根据当前设备的方位设置它,这会起作用吗?2-卫星不会真正改变位置(地球静止),因此根据位置lat/long和方位X度(也就是高程),带有卫星点的曲线将始终相同。只有当设备的方位角X和标高改变时,曲线才会移动。。。(只是说)