Note: Mathematica version 2.x Large Circle Graphics bug

A bug in Mathematica version 2.2 will cause plotting of large circle with small PlotRange to generate a PostScript error. To see whether this bug is on your version, evaluate the following cell. (This bug is fixed in Mathematica v.3.0.)

Show[
	Graphics[
		Circle[{0,0},100]
	],
	PlotRange->{{99,101},{-1,1}},
	Axes->True
];

If the bug is not in your version, you should see an arc of a circle of radius 100. This bug will sometimes crash your machine for extremely large circles such as Circle[{10^15,0}, 10^15].

To get around this bug, the BEST solution is to increase PlotRange to include all parts of the circle.

Otherwise, you may break the circle into arcs by replacing any of Circle[{x,y},r] with several of Circle[{x,y},r,{tMin,tMax}], or by replacing
it with Line[...] that represents the same circle. To replace circles by arcs, use BreakCircle defined below. To replace circles by Lines, use BreakCircle2. However, both of these methods cannot deal with very large circles. With extremely larg circles, it is necessary to break it into many arcs or line segments that will result insufficient memory.

Clear[BreakCircle]

BreakCircle::usage = "
BreakCircle[ graphics1, (r:50), (n:10)]
will return graphics1 with any Circle[{x_,y_},r1_] primitive
whose radius r1 is greater than r
replaced by a list of n arcs that represents the same circle.
It is used as a
work around of a Mathematica v.2.2 bug of displaying Circle with large
radius.
Usage Example:
BreakCircle[ Circle[{0,0}, 100], 1, 4]";

BreakCircle[ gra_ , r_:50, n_:10] :=
Module[{},
	gra /. Circle[{x_,y_}, radius_] :>
		N@ If[ N@ radius > r,
			Table[
				Circle[{x,y}, radius, {th, th+ 2 Pi/n}],
				{th, 0, 2 Pi-2 Pi/n, 2 Pi/n}
			],
			Circle[{x,y}, radius]
		]
]

Clear[BreakCircle2]

BreakCircle2::usage = "
BreakCircle[ graphics1, maxArcLength ]
will return modified graphics1 with any Circle
whoes circumference is greater than maxArcLength
replaced by a Line that represents the circle,
such that any line segment is less than maxArcLength.
Disk is similarly replaced by Polygon.
It is used as a
work around of a Mathematica v.2.2 bug of displaying Circle with large
radius.
Usage Example: BreakCircle[ Circle[{0,0}, 2], 1]";

BreakCircle2[ gra_, maxLength_ ]:=
Module[{ml = N[maxLength]},
	(N[gra] /. { (Circle|Disk)[{c1_, c2_}, 0|0., ___] -> Point[{c1,c2}],
			Circle[{c1_, c2_}, r_?NumberQ] :> 
				With[{iStep = N[2 Pi/Ceiling[2 r Pi/ml]]},
		 			Line@ Table[ r {Cos@ t, Sin@ t}+{c1,c2},
						{t, 0, 2 Pi, iStep}
					]
				],
			Circle[{c1_, c2_}, {a_, b_}] :>
				With[{iStep = N[2 Pi/Ceiling[2 Pi Max[a,b]/ml]]},
						Line@ Table[ {a Cos@ t, b Sin@ t}+{c1,c2},
					{t, 0, 2 Pi, iStep}
					]
				],
			Circle[{c1_, c2_}, r_, {a_, b_}] :>
				With[{iStep = N[ (b-a)/Ceiling[2 r Pi/ml]]},
					Line@ Table[ r {Cos@ t, Sin@ t}+{c1,c2},
						{t, a, b, iStep}
					]
				],
			Disk[{c1_, c2_}, r_?NumberQ] :> 
				With[{iStep = N[2 Pi/Ceiling[2 r Pi/ml]]},
		 			Polygon@ Table[ r {Cos@ t, Sin@ t}+{c1,c2},
						{t, 0, 2 Pi, iStep}
					]
				],
			Disk[{c1_, c2_}, {a_, b_}] :>
				With[{iStep = N[2 Pi/Ceiling[2 Pi Max[a,b]/ml]]},
						Polygon@ Table[ {a Cos@ t, b Sin@ t}+{c1,c2},
					{t, 0, 2 Pi, iStep}
					]
				],
			Disk[{c1_, c2_}, r_, {a_, b_}] :>
				With[{iStep = N[ (b-a)/Ceiling[2 r Pi/ml]]},
					Polygon@ Table[ r {Cos@ t, Sin@ t}+{c1,c2},
						{t, a, b, iStep}
					]
				]
		}
	)
]

Show[
	BreakCircle[ Graphics[Circle[{0,0},100] ], 2, 30 ],
	PlotRange->{{99,101},{-1,1}},
	Axes->True
]