2012-06-29 13 views
0

我已經做了一些搜索,並沒有發現任何人嘗試任何類似的東西,所以我想身份證在這裏問問。我想要做的是基本上創建一個圖表,每5秒鐘就會得到數據並繪製它。到目前爲止,我所做的最好的是允許用戶圍繞靜態圖的靜態圖形進行平移。核心圖 - 基於實時數據創建一個增加大小的圖

我目前正在努力達到的地步,我可以按下一個按鈕,它會根據X軸的穩定時間間隔和從1到100的隨機數在圖上創建一個新點Y軸。我如何試圖做到這一點如下:

@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並將isPlotting值設置爲true,然後我增加我的xCoord值,這將是時間由任意5,5秒,然後我生成並添加我的新點到我的NSMutableArray數組,名爲數據。之後,我重新初始化散點圖並啓動一個定時器,使其睡眠5秒鐘,然後再次調用startPlot函數。

我一直在遇到的問題是它或者不更新,我得到一個沒有點的空白X軸和Y軸。在任何情況下,我都會錯過我希望有人知道並能幫助我的東西!

謝謝! -Karoly

回答

0

你所描述的是一個實時圖,就像示波器一樣嗎?你看過示例應用程序嗎?特別是實時劇情中的劇情庫項目?應該是它,它在示例文件夾中。

看的RealTimePlot類(在項目樹,該地塊組下),基本上做什麼工作是建立調用該方法-(void)newData:(NSTimer *)theTimer一個新的點添加到數據陣列,重繪和移動CPTPlotRange秒的計時器。

您正在使用哪種版本的CorePlot?

+0

對不起,遲到的迴應,聽起來真棒,今天看看它。我看完後會回覆。我使用v1.0,上週剛剛下載了CorePlot。 –

+0

查看RealTimePlot類文件,看起來他們會很有用,特別是您提到的newData函數。謝謝(你的)信息! –