最も簡単なアプローチはクォーツです。CGContext
描画関数を使用して円弧または曲線をUIView
、カメラ ビュー上に配置する にプロットします。特定の のを簡単に取得できるため、これはUIView
のメソッド内で簡単に実行できます。これをよりよく説明するために、例を次に示します。drawRect:
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
この単一のビューにすべてをプロットし、デバイスの動きに応じてその位置を調整するだけです. また、ビューを通常どおり非表示/表示することもできます (変更alpha
またはhidden
プロパティ)。更新をトリガーするには (たとえば、サテライトが位置を変更したとき)、setNeedsDisplay
またはsetNeedsDisplayInRect:
メソッドを呼び出します。最適化のために、必要に応じrect
て後者のパラメーター (およびメソッドの同じパラメーターdrawRect
) を使用して、必要なビューの部分でのみ再描画をトリガーします (また、この四角形でのみ描画します)。
CGContextAdd...
表示する必要がある曲線について:円弧、一連の直線、またはベジエ曲線のいずれであっても、描画する必要がある形状に適した関数が見つかると確信しています。