Sjoerdに基づいて、数学を使用したデカルトプロットから極ヒストグラムへの優れたソリューションと拡張機能について、次のことを考慮してください。
list = {{21, 16}, {16, 14}, {11, 11}, {11, 12},
{13, 15}, {18, 17}, {19, 11}, {17, 16}, {16, 19}}
ScreenCenter = {20, 15}
ListPolarPlot[{ArcTan[##], EuclideanDistance[##]} & @@@ (# - ScreenCenter & /@ list),
PolarAxes -> True, PolarGridLines -> Automatic, Joined -> False,
PolarTicks -> {"Degrees", Automatic},
BaseStyle -> {FontFamily -> "Arial", FontWeight -> Bold,
FontSize -> 12}, PlotStyle -> {Red, PointSize -> 0.02}]
Module[{Countz, maxScale, angleDivisions, dAng},
Countz = Reverse[BinCounts[Flatten@Map[ArcTan[#[[1]] - ScreenCenter[[1]], #[[2]] -
ScreenCenter[[2]]] &, list, {1}], {-\[Pi], \[Pi], \[Pi]/6}]];
maxScale = 4;
angleDivisions = 12;
dAng = (2 \[Pi])/angleDivisions;
SectorChart[{ConstantArray[1, Length[Countz]], Countz}\[Transpose],
SectorOrigin -> {-\[Pi]/angleDivisions, "Counterclockwise"},
PolarAxes -> True,
PolarGridLines -> Automatic,
PolarTicks -> {Table[{i \[Degree] + \[Pi]/angleDivisions,i \[Degree]},
{i, 0, 345, 30}], Automatic},
ChartStyle -> {Directive[EdgeForm[{Black, Thickness[0.005]}], Red]},
BaseStyle -> {FontFamily -> "Arial", FontWeight -> Bold,
FontSize -> 12}, ImageSize -> 400]]
ご覧のとおり、ヒストグラムは、あるべきものの回転対称性を示しています。私はそれらをまっすぐにするためにすべてを試みましたが、成功しませんでした。リバースなしでは最悪です。RotateRightを試しましたが成功しませんでした。問題はBinCountにあると感じています。ArcTanは-PiからPiに出力しますが、Sjoerdは0から2Piに移動する必要があることを示唆しました。しかし、その方法がわかりません。
編集:問題は解決しました。Sjoerd、Belisarius、Heikeのソリューションのおかげで、画像の重心が与えられた場合の固視位置のヒストグラムを表示することができます。