电弧/曲线覆盖在海拔/轴承上的iphone相机

时间:2013-10-20 18:35:09

标签: ios overlay augmented-reality

民间,

我正在寻找有关我应该学习/阅读的内容的指示/指示,以便完成我需要的工作。我不是在寻找一个完整的解决方案/答案(除非你当然准备好了))。

我的问题是我想在相机/视频视图上呈现叠加层。叠加层包含一个ARC /曲线,其上面有点。叠加层将在那里,但只有在用户将设备倾斜到高程X(度)并承载Y时才会显示。

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

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

感谢您的帮助。在此先感谢!

1 个答案:

答案 0 :(得分:1)

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

CGContext

您可以在此单个视图中绘制所有内容,并根据设备移动调整其位置。您也可以正常隐藏/显示视图(更改UIView// // 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 属性)。 要触发更新(例如,当satelittes更改位置时),请调用alphahidden方法。为了优化,如果需要,在后者中使用setNeedsDisplay参数(以及setNeedsDisplayInRect:方法中的相同参数)仅在视图的必要部分触发重绘(并且仅在这个矩形)。

关于您需要显示的曲线:我确信您会找到一个合适的rect函数,其中包含您需要绘制的形状,无论是圆弧,一组直线还是贝塞尔曲线。