2016-07-27 3 views
0

나는 몇 CorePlotGallery 샘플 실시간 플롯 설정의 RealTimePlot.m에서 호기심 :핵심 플롯 갤러리 실시간 플롯 설계 기준

// Plot space 
CPTXYPlotSpace * plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace; 
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:@0.0 length:@(kMaxDataPoints - 2)]; 
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:@0.0 length:@1.0]; 
plotSpace.allowsUserInteraction = YES; 

그것은 점의 범위 노트 - 처음 kMaxDataPoints, (52)에 표시되는 초기 창 /보기 크기에서 표시 점의 가시 범위입니다.

대리인 newData의 방법은 초기 포인트 큐를 유지하기 위해 첨가 될 트림하지만 내 질문 방법이 값 (52)의 파생된다?

심지어 실행 시간에 때 사용자의 핀치/줌을이 가시 범위를 CALC 할 수 있습니까?

는 더 나중에 포인트를 자릅니다하지 않을까요 - 범위의 처음부터, 양이 추가 된 점으로 알고있을 때, 추가 한 후?

답변

1

이 말에 의해 파생 된 "매직 넘버"오히려 어떤 경험적 방법보다 "그건 좋아 보인다"입니다. 물론 플롯 영역의 크기에 따라 계산할 수 있습니다. 상수를 사용하는 것은 단지 지름길입니다. 앱 디자인으로 인해 그래프의 크기가 iOS에서 변경되지 않는다는 것을 알기 때문에 합리적인 지름길입니다.

나는 질문의 마지막 부분을 이해하지 않습니다. 하나가 추가 될 같이 임계치가 단일 지점에 도달되는 시료에

+0

은 제거된다. 데이터 수집에 추가 할 점이 알려지지 않은 채로 흩어져있을 수 있으므로 그 양은 이후까지 알 수 없습니다. 테스트에서 나는 제거를 나중에 옮겼으며 괜찮을 것 같습니다 - 어쩌면 더 좋아할 것 같습니까? 계산 영역을 어떻게 계산하나요? – slashlos

+0

이전 데이터가 먼저 제거되므로 이전 데이터가 제거 될 때 새 데이터를 이동할 필요가 없습니다. 많은 양의 데이터가 없으면 큰 효과가 없을 것입니다. 원하는만큼 많은 포인트를 추가하거나 제거 할 수 있습니다.이 예에서는 간단하게 하나만 사용합니다. 플롯 영역은'CALayer'의 서브 클래스입니다. 그래프에서'-layoutIfNeeded'를 호출하면 플롯 영역의'bounds'를 읽어서 크기를 얻을 수 있습니다. –

+0

범위가 어떻게 보이는 범위를 말해 줄지 이해하지 못했기 때문에, 16x16 심볼의 경우 40이 마법의 숫자가 될 때까지 실험했습니다. – slashlos