當使用CPTScatterPlot
時,我可以撥打plotAreaPointOfVisiblePointAtIndex
,它給我一個NSPoint
的特定索引在圖上。CPTBarPlot字段的區域?
我一直在試圖弄清楚,如果我可以做類似的事情來獲得我的CPTBarPlot
的數據點的面積(x,y,寬度和高度),但到目前爲止我還沒有想到它出。
有誰知道任何是我可以得到它?
當使用CPTScatterPlot
時,我可以撥打plotAreaPointOfVisiblePointAtIndex
,它給我一個NSPoint
的特定索引在圖上。CPTBarPlot字段的區域?
我一直在試圖弄清楚,如果我可以做類似的事情來獲得我的CPTBarPlot
的數據點的面積(x,y,寬度和高度),但到目前爲止我還沒有想到它出。
有誰知道任何是我可以得到它?
根據@ ErikSkroch的詳細信息,這是我提出的解決方案(當我結束使用私有方法而不是重新編寫數學時,有點冒失)。
// Access to private methods
@interface CPTBarPlot()
-(CGFloat)lengthInView:(NSDecimal)decimalLength;
-(BOOL)barAtRecordIndex:(NSUInteger)idx basePoint:(CGPoint *)basePoint tipPoint:(CGPoint *)tipPoint;
@end
NSPoint basePoint, tipPoint;
if(![barPlot barAtRecordIndex: index
basePoint: &basePoint
tipPoint: &tipPoint]) return;
float width = [barPlot lengthInView: barPlot.barWidth];
如果您已經知道數據索引,則可以從數據源(或其使用的模型數據)中獲取位置,基準和提示值。如果您正在使用barOffset
,請調整酒吧位置。使用繪圖空間將數據座標轉換爲條形圖末端的繪圖區域像素座標。如果barWidthsAreInViewCoordinates
是YES
,則可以使用barWidth
作爲條形矩形的像素寬度。如果是NO
,則在轉換爲繪製區域座標之前,需要先執行一些數學運算來偏移小節的拐角。如果您需要計算幫助,您可以查看CPTBarPlot
implementation。
謝謝,這正是我需要的! – Kyle