I'm looking for a description of the structure of Graphics
objects, aimed at the advanced Mathematica programmer.
The motivation for this question is the following. I have several Module
-type functions that, as part of their operation, have to manipulate Graphics
objects (primarily those generated by plotting commands). I find that these functions often produce undesired results, and the reason is, invariably, that the function has assumed something about the structure of Graphics
objects that turns out not to hold in general. Hence, I want to learn more about the internal structure of the Graphics
objects generated by Plot
, ListPlot
, and friends.
Unfortunately, I cannot distill my overall state of confusion into one or two concrete questions. I have a ton of questions, but from my ignorant vantage point, I cannot rank these questions in order of importance. Here's an example out of many I could give: "why do the lists of "primitives" in so many of the Graphics
objects that I produce with plotting commands begin and end with empty lists?" For all I know, the answer to this question could just as easily be hugely illuminating, or be utterly banal, or, worse yet, may give rise to further questions.
I've read the documentation for Graphics
and the tutorial The Structure of Graphics (which, despite the promising-sounding title, did not shed as much light as I'd hoped). (I've also watched the Graphics Language Quick Start, which is generally instructive, but, as its name suggests, far more high-level and beginner-oriented than what I'm looking for.)