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つのポイントが削除されます。私はデータ収集が追加されるべき未知の点で散在するかもしれないと考えていたので、量はその後までわからない。テストでは、後で削除を移動し、大丈夫と思われる - 多分私はそれが良いのが好きですか?プロット領域はどのように計算されますか? – slashlos
古いデータを最初に削除するので、古いデータが削除されたときに新しいデータを移動する必要はありません。あなたが大量のデータを持っていない限り、おそらく大きな違いはありません。必要なだけ多くのポイントを追加または削除できます。例では簡単に1つを使用しています。プロット領域は 'CALayer'のサブクラスです。グラフ上で '-layoutIfNeeded'を呼び出すと、プロットエリアの' bounds'を読んでサイズを取得できます。 –
境界が私に可視範囲を教える方法を理解していないので、私の16x16シンボルで40が魔法の数になるまで実験しました! – slashlos