核心图 - 如何在具有对数轴的绘图空间中将触摸点转换为绘图点



我有一个带有线性 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似乎是正确的,yT坐标是正确的。 如果我点击左边缘 (5.0) 或右边缘 (500.0),x坐标是正确的,但如果在中间点击,x坐标的行为就像线性轴。 如果我点击最中间,我会得到 250.0 左右,而不是 50.0。 我错过了什么,还是有其他方法可以做到这一点?

谢谢,蒂姆

这是一个

错误。请在核心情节问题跟踪器上报告。

最新更新