I am assuming that it would be acceptable to turn the graph into an image first, then rotate / animate that image. This can be done at arbitrary resolution through appropriate options for Image
. Here I am just using the image size you originally specified for the graph object.
An option to ImageRotate
comes in handy here: the size of its output can be set to All
, which in this context means "the smallest square to accommodate the rotated image for any rotation angle" (see docs).
(* I am using a 5-order graph, adjust to desiderd order *)
CompleteGraph[5,
DirectedEdges -> True, EdgeStyle -> RGBColor[0, 0, 1],
PlotRange -> 1.1*{{-1, 1}, {-1, 1}},
EdgeShapeFunction -> GraphElementData["ShortCarvedArcArrow"],
ImageSize -> Floor[500/16]*16, Background -> White
];
(* Convert graph to an image of the same size as the one generated above *)
Image[%, AbsoluteOptions[%, ImageSize]];
(* Rotate the image *)
Animate[
ImageRotate[%, theta, All, Background -> None],
{theta, 0, 2 Pi}
]

Update - changing colors during rotation:
chuy's code above can be more readily adapted to what you want to do. I will borrow his code to generate the rotated graphs, and modify it to include a changing edge color for the graphs. This is accomplished after graph generation, by digging into the structure of the Graphics
object generated by Show
and replacing the value of the EdgeStyle
directive with color values from one of the built-in gradient functions defined in ColorData["Gradients"]
. In the example below I used the 'CMYKColors` gradient function.
A few more adaptations are needed to work with the angle of rotation. The gradient functions take an input in the $(0,1)$ range. Additionally, in order to have smooth color transitions between successive animation cycles, I want to run through the gradient function twice, once forward and once backwards, so that the last point of the animation cycle takes the color immediately preceding the first point in the next cycle. This gives pleasingly smooth color transitions. This is accomplished by taking the value of the angle parameter and transforming it so it ramps linearly up to $0.5$ at mid-cycle, then ramps back down linearly to $0-stepvalue$ at the end of the cycle. I use 1 - Abs[2 (q/Pi) - 1]
to do so.
graph =
CompleteGraph[
30, DirectedEdges -> True,
EdgeStyle -> RGBColor[0, 0, 1],
EdgeShapeFunction -> GraphElementData["ShortCarvedArcArrow"],
PlotRange -> 1.1*{{-1, 1}, {-1, 1}}, ImageSize -> Floor[500/16]*16,
Background -> White
];
frames =
Table[
MapAt[
Rotate[#, q, {0, 0}] & ,
ReplaceAll[
Show[graph], RGBColor[0, 0, 1] -> ColorData["CMYKColors"][1 - Abs[2 (q/Pi) - 1]]
],
{1, All}
],
{q, 0, Pi - Pi/16, Pi/16}
];
Export["animatedgraph.gif", frames, "GIF"]
