1

円/スポークを ScatterPlots としてプロットしようとするとメモリが大量に使用されるため、極/レーダー プロットをプロットできるように CorePlot コードを変更する必要があることが明らかになりました。

実際の極座標データには引き続き CPTScatterPlot を使用できることに気付きましたが、何らかの方法で drawGridLinesInContext を変更する必要がありました。これにより、各位置で直線を描く代わりに、CPTXCoordinate が円形の線を描画し、CPTYCoordinate が無視され、CPTZCoordinate がスポーク。

CPTPolarGraph、CPTPolarPlotSpace、CPTPolarAxisSet、CPTPolarAxis などの XY 兄弟に基づいて、新しいクラスを作成する必要がありました。新しいコードは引き続き X 軸と Y 軸を使用してこれらの軸をプロットしますが、スポークを管理するために Z 軸が導入されました。

これでクラックされたようですが、上下にスクロールすると、円は X 軸と Y 軸の目盛りを通過し続けますが、左右にスクロールすると、円が再描画されて動かなくなります。ダニで。

ここでさらにデバッグを行う必要があることは明らかですが、何が起こっているのかについて、CorePlot クルーからのヒントを期待していました。CorePlot_1.1 の変更したバージョン (極散布図の例を含む) を圧縮して、必要に応じて転送できます。

4

2 に答える 2

0

これは、ピクセルの配置の問題である可能性があります。目盛り描画コードは目盛りをピクセルグリッドに揃えますが、新しい軸の描画は揃えません。CPTUtilities.hCPTAlignRectToUserSpace()のおよびその他のアライメント関数を見てください。

zRange編集:プロットスペースののカスタムセッターメソッドも必要になる場合があります。xRangeyRangeセッターに似たものにします。これらのメソッドによって発行される通知は重要です。プロットスペースが変更されると、グラフの他の部分が強制的に再描画されます。

于 2013-02-18T23:24:28.500 に答える
0

中心が plotArea のどこにあっても、スポークは常に同じポイントから生成されるため、centerViewPoint の位置は正確に追跡されます。リングも常に同じ中心から生成されます。どういうわけか、左にスクロールするとリングの直径が最初のプロットのプレゼンテーションから変更されるように思えますが、上下にスクロールすると変更されません。プロットが左端または右端にスクロールされると、メジャー リングが再びメジャー ティック上に整列し、マイナー リングが整列することに注意してください。CPTCoordinateY のみがプロットされるようにコードを逆にしてみましたが、上下にスクロールするとリングの直径サイズが変化することを除いて、同じ効果が見られます。おそらくCGPoint startViewPoint = [thePlotSpace plotAreaViewPointForPlotPoint:startPlotPoint];、x座標からリングの直径を確立するものは、正しく返されていません。おそらくまたlocationsセットは変更されていますが、ズームが行われていない場合はなぜ変更する必要がありますか。locationsコードを見ていくと変化しないように見えるので、ここで苦労しています。

于 2013-02-19T03:30:31.747 に答える