2012-05-02 52 views
3

我有一個線性y軸和對數x軸的散點圖,所有這些都很好。但是當我嘗試將觸摸點轉換爲繪圖空間座標時,我遇到了問題。核心繪圖 - 如何將觸點轉換爲繪圖空間中的繪圖點與對數軸

我見過類似如下的建議不同的地方:

- (BOOL)plotSpace:(CPTPlotSpace *)space shouldHandlePointingDeviceUpEvent:(id)event atPoint:(CGPoint)point 
{ 
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)space; 

CPTScatterPlot *scatterPlot = [[[plotSpace graph] allPlots] objectAtIndex:0]; 
CGPoint plotAreaPoint = [[plotSpace graph] convertPoint:point toLayer:scatterPlot]; 

NSLog(@"PlotAreaPoint : %.1f, %.1f", plotAreaPoint.x, plotAreaPoint.y); 

NSDecimal dataPoint[2]; 
NSDecimalNumber *xCoordinate, *yCoordinate; 

[plotSpace plotPoint:dataPoint forPlotAreaViewPoint:plotAreaPoint]; 

xCoordinate = [NSDecimalNumber decimalNumberWithDecimal:dataPoint[0]]; 
yCoordinate = [NSDecimalNumber decimalNumberWithDecimal:dataPoint[1]]; 

NSLog(@"DataPoint : %.1f, %.1f", [xCoordinate floatValue], [yCoordinate floatValue]); 

return YES; 
} 

當我運行此,plotAreaPoint似乎是正確的,並且y座標是正確的。如果我點擊左邊緣(5.0)或右邊緣(500.0),xCoordinate是正確的,但是如果我在中間點擊,則表現爲線性軸。如果我在中間點擊,我得到250.0左右,而不是50.0。我錯過了什麼,或者有另一種方式來做到這一點?

謝謝,蒂姆

回答