Hier ist ein Schnipsel aus http://hwri.hw.funpic.de/OSM_circle/GPXCIRC.js , der Kreise berechnet und darstellt.

	var pointList = [];
	var radius=this.radius /(Math.cos(3.14159* llat/180));   
        var npoin=32;
	for (var k = 0; k < npoin; k++ ) {
			var ff= new OpenLayers.Geometry.Point(feature.x + Math.cos(2.0*3.14159/npoin * k)* radius ,
									  feature.y + Math.sin(2.0*3.14159/npoin * k)* radius  );
			pointList.push(ff);  //	alert (k+":"+ff);
		}
	var ff= new OpenLayers.Geometry.Point(feature.x + radius, feature.y ); // alert (npoin+":"+ff);
	pointList.push(ff);
	if ( bifill == true ) { 
	    featureRTE.push(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LinearRing(pointList),null,style_green));
        } else {
	    featureRTE.push(new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString(pointList),null,style_green)); 
        }       
    };
this.addFeatures(featureRTE);

Ich würde aber empfehlen, die Kreise extern zu halten, z.B. als GPX ode SVG Datei, dann kannst Du die Form einfacher an die Realität anpassen,
ähnlich wie im distance-o-meter.