I want to draw a graphic $20\times20$ grid, rotate it by $\theta$ around $(0,0)$, and trim off the part on the right of the y-axis, so I came up with

ImageTrim[Rotate[GraphicsGrid[Table["", {20}, {20}], Frame -> All], Dynamic[\[Theta]], {0, 0}], {-1000, -1000}, {0, 1000}];

But it gives no output, but an error message instead

ImageTrim::imginv: Expecting an image or graphics instead of [an oblique orange square wich usually indicates something's wrong]

What should I do?

  • 1
    $\begingroup$ May I ask what is the goal at the end, I feel like your approach is not an effective one. p.s. What is that you don't understand from the error message? $\endgroup$
    – Kuba
    Apr 26 '14 at 13:38

Maybe you will find this useful:

grid = Translate[ First@ArrayPlot[SparseArray[{}, {20, 20}], Mesh -> All],
                  {-10, -10}];

Slider[Dynamic@θ, {0, 2 Pi}]
Graphics[ Dynamic@Rotate[grid, θ, {0, 0}], PlotRange -> {{0, Automatic}, All}]

enter image description here

  • $\begingroup$ Thanks! But PlotRange isn't quite what I'm looking for, because I need to juxtapose two such grids in one Graphics, one on the right of the y-axis, and one on the left. Besides, I don't know why Mathematica says the return of Rotate is not Graphics $\endgroup$
    – arax
    Apr 27 '14 at 4:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.