0

私はいくつかの検索を行いましたが、似たようなことを試みている人は誰も見つかりませんでした。私がやろうとしているのは、基本的に5秒ごとにデータを取得してプロットするグラフを作成することです。これまでのところ、私が行った最善の方法は、ユーザーが静的プロットの静的グラフをパンできるようにすることです。

現在、ボタンを1つ押すことができるポイントに到達しようとしています。これにより、X軸の一定の時間間隔と、Y軸の1から100までの乱数に基づいて、グラフ上に新しいポイントが作成されます。私がこれをやろうとしている方法は以下の通りです:

@synthesize scatterPlot = _scatterPlot;
@synthesize statusLabel, data, isPlotting;

CGFloat xCoord;

- (void)startPlot:(id)sender {

    if (isPlotting == FALSE) {
        xCoord = 0;
    }

    if (isPlotting == TRUE)
    {
        statusLabel.text = @"Starting Plot";

        xCoord += 5;
        [data addObject:[NSValue valueWithCGPoint:CGPointMake(xCoord, (arc4random() % 100 + 1))]];

        self.scatterPlot = [[TUTSimpleScatterPlot alloc] initWithHostingView:_graphHostingView andData:data];
        [self.scatterPlot initialisePlot];

        [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(startPlot:) userInfo:nil repeats:NO];
    }
}

- (void)endPlot:(id)sender {
    statusLabel.text = @"Plotting Stopped";
    isPlotting = FALSE;
}

これは基本的に、説明されているタスクを実行しようとしている方法の中核です。アイデアは、 startPlotを呼び出してisPloting値をtrueに設定する「開始」ボタンを押してから、任意の5秒の時間になるxCoord値を5秒間インクリメントしてから、新しいポイントを生成して追加することです。dataと呼ばれる私のNSMutableArray配列に。その後、散布図を再初期化し、タイマーを開始して5秒間スリープさせ、startPlot関数を再度呼び出します。

私が遭遇した問題は、それが更新されないか、ポイントのない空白のX軸とY軸を取得することです。いずれにせよ、誰かが知っていて私を助けてくれることを望んでいる私が見逃している何かがあります!

ありがとう!-カロリー

4

1 に答える 1

0

あなたが説明しているのは、ほとんどオシロスコープのようなリアルタイムのプロットです。サンプルアプリを見たことがありますか。具体的には、リアルタイムプロットのプロットギャラリープロジェクトですか?それはそれであるはずです、それはexamplesフォルダにあります。

クラス(プロジェクトツリーのPlotsグループの下)を見てくださいRealTimePlot。基本的には、メソッドを呼び出すタイマーを設定して-(void)newData:(NSTimer *)theTimer、データ配列に新しいポイントを追加し、を再描画して移動しCPTPlotRangeます。

どのバージョンのCorePlotを使用していますか?

于 2012-06-30T02:23:52.053 に答える