Имеется массив мувиков, расположенных по окружности:

Код AS3:
var objects:Array = new Array();
while (a < b)
{
mc = new MyObject();
mc.angle = ((2 * Math.PI) / 360) * randInt(1, 360);
mc.x = radius * Math.cos(mc.angle);
mc.y = radius * Math.sin(mc.angle);
objects.push(mc);
a++;
}
Пытаюсь найти для одного из этих мувиклипов два соседних(ближайшего справа и ближайшего слева):

Код AS3:
public function searchNeighbor(mo:MyObject):void
{
mo.neighborLeft = null;
mo.neighborRight = null;
var locObjects:* = objects;
for each (var locObject:* in locObjects)
{
if (locObject != mo)
{
if (mo.neighborLeft == null || MyObject(locObject).angle < mo.neighborLeft.angle)
{
mo.neighborLeft = MyObject(locObject);
}
if (mo.neighborRight == null || MyObject(locObject).angle > mo.neighborRight.angle)
{
mo.neighborRight = MyObject(locObject);
}
}
}
}
Из-за того, что "земля круглая", я естественно получаю неверный результат в ряде случаев. Мучительно начинаю искать решение(%Math.PI, if (mo.neighborRight.angle > Math.PI && locObject.angle > Math.PI),... и т.д.), но всё безрезультатно. Торможу в общем.
Подскажите пожалуйста.