2016-07-27 1 views
0

I少数CorePlotGalleryサンプルリアルタイムプロットのセットアップのRealTimePlot.mから珍品:コアプロットギャラリーリアルタイムプロットの設計基準

// Plot space 
CPTXYPlotSpace * plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace; 
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:@0.0 length:@(kMaxDataPoints - 2)]; 
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:@0.0 length:@1.0]; 
plotSpace.allowsUserInteraction = YES; 

それは点の範囲は、ノート - 最初にkMaxDataPoints、52に表示されます最初のウィンドウ/ビューサイズからのプロット点の可視範囲です。

デリゲートのnewDataメソッドは、このキューを維持するために追加される最も早いポイントをトリミングしますが、この値(52)はどのように導出されましたか?

ユーザーがピンチ/ズームしてもこの可視範囲を実行時に計算することはできますか?

ポイントを後でトリムする方が良いでしょうか?追加した後、追加されたポイントの量が分かっている場合は、範囲の先頭から?

答えて

1

経験的な方法ではなく、「うまく見える」と言って派生した「魔法の数」です。もちろん、プロット領域のサイズに基づいて計算することができます。定数を使用するのは単なるショートカットです。アプリのデザインのために、私はグラフがiOS上でサイズを変えないことを知っているので、それを作るのが妥当なショートカットです。

質問の最後の部分はわかりません。

+0

サンプルでは、​​しきい値に達すると、1つのポイントが削除されます。私はデータ収集が追加されるべき未知の点で散在するかもしれないと考えていたので、量はその後までわからない。テストでは、後で削除を移動し、大丈夫と思われる - 多分私はそれが良いのが好きですか?プロット領域はどのように計算されますか? – slashlos

+0

古いデータを最初に削除するので、古いデータが削除されたときに新しいデータを移動する必要はありません。あなたが大量のデータを持っていない限り、おそらく大きな違いはありません。必要なだけ多くのポイントを追加または削除できます。例では簡単に1つを使用しています。プロット領域は 'CALayer'のサブクラスです。グラフ上で '-layoutIfNeeded'を呼び出すと、プロットエリアの' bounds'を読んでサイズを取得できます。 –

+0

境界が私に可視範囲を教える方法を理解していないので、私の16x16シンボルで40が魔法の数になるまで実験しました! – slashlos