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。我錯過了什麼,或者有另一種方式來做到這一點?
謝謝,蒂姆