ग्राफिक्स आयाम (imprecise `PlotRange` फ़ंक्शन)

Oct 13 2020

क्या कोई फ़ंक्शन है जो आपको आयाम देता है Graphics? मेरा मतलब है xऔर yआयताकार क्षेत्र के आयाम जो की सामग्री में Graphicsफिट होंगे।

Graphics[{Table[
   Circle[RandomReal[{-10, 10}, 2], RandomReal[{0, 10}, 2], 
    RandomReal[{0, 2 π}, 2]], {n, 100}]}]

अपडेट करें:

PlotRange इसका कोई फायदा नहीं है क्योंकि यह सटीक होने से बहुत दूर है।

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[%]]}}]

BoundingRegionएक ही कारण के लिए भी कोई फायदा नहीं है - अभेद्य जा रहा है।

जवाब

6 CarlWoll Oct 13 2020 at 22:47

आप इस उद्देश्य के लिए "GraphicsInformation" का उपयोग कर सकते हैं :ResourceFunction

SeedRandom[1];
g = Graphics[{
    Table[
        Circle[RandomReal[{-10,10},2],RandomReal[{0,10},2],RandomReal[{0,2 π},2]],
        {n, 100}
    ]

"GraphicsInformation" संसाधन फ़ंक्शन का उपयोग करना:

pr = Lookup[ResourceFunction["GraphicsInformation"][g], "PlotRange"]

{{-17.8295, 17.0196}, {-19.7501, 19.9222}}

चेक:

Show[
    g, 
    Epilog -> {
        EdgeForm[Red],
        FaceForm[None],
        Rectangle[{pr[[1,1]], pr[[2,1]]}, {pr[[1,2]], pr[[2,2]]}]
    }
]

"GraphicsInformation" उपयोगी जानकारी के अन्य टुकड़े भी लौटाता है:

Keys @ ResourceFunction["GraphicsInformation"][g]

{"ImagePadding", "ImageSize", "PlotRangeSize", "ImagePaddingSize",
"PlotRange", "BasePlotRange"}