Dimensões dos gráficos (função `PlotRange` imprecisa)
Oct 13 2020
Existe uma função que lhe dá dimensões de Graphics? Quero dizer xe ydimensões da região retangular em que o conteúdo Graphicsse encaixaria.
Graphics[{Table[
Circle[RandomReal[{-10, 10}, 2], RandomReal[{0, 10}, 2],
RandomReal[{0, 2 π}, 2]], {n, 100}]}]
Atualizar:
PlotRange é inútil, pois está longe de ser preciso.
v = Table[
Circle[RandomReal[{-10, 10}, 2], RandomReal[{0, 10}, 2],
RandomReal[{0, 2 π}, 2]], {n, 100}];
Graphics[{v}];
Graphics[{v, {Transparent, EdgeForm[Red],
Rectangle @@ Transpose[PlotRange[%]]}}]
Também BoundingRegionnão adianta pelo mesmo motivo - ser impreciso.
Respostas
6 CarlWoll Oct 13 2020 at 22:47
Você pode usar o "GraphicsInformation" para esta finalidade:ResourceFunction
SeedRandom[1];
g = Graphics[{
Table[
Circle[RandomReal[{-10,10},2],RandomReal[{0,10},2],RandomReal[{0,2 π},2]],
{n, 100}
]
Usando a função de recurso "GraphicsInformation":
pr = Lookup[ResourceFunction["GraphicsInformation"][g], "PlotRange"]
{{-17,8295, 17,0196}, {-19,7501, 19,9222}}
Verificar:
Show[
g,
Epilog -> {
EdgeForm[Red],
FaceForm[None],
Rectangle[{pr[[1,1]], pr[[2,1]]}, {pr[[1,2]], pr[[2,2]]}]
}
]
"GraphicsInformation" também retorna outras informações úteis:
Keys @ ResourceFunction["GraphicsInformation"][g]
{"ImagePadding", "ImageSize", "PlotRangeSize", "ImagePaddingSize",
"PlotRange", "BasePlotRange"}
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?