Вот функция:

Код:
function circle(obj, x, y, r) {
//
with (obj) {
//
moveTo(x-r, y);
beginFill(0x003366);
curveTo(x-r, y-r, x, y-r);
curveTo(x+r, y-r, x+r, y);
curveTo(x+r, y+r, x, y+r);
curveTo(x-r, y+r, x-r, y);
endFill();
//
}
//
}
Рисует синий кружочек в нужном муве (obj) с заданными координатами и радиусом. Что из этого получается - смотрите на скриншот.
Судя по всему, кривые реализованы как-то неправильно, поэтому я ввел поправочный коэффициент для координат углов квадрата (в него вписана окружность), так, что эти углы "убираются" внутрь него и поправляют контур круга:

Код:
function circle(obj, x, y, r,k) {
//
with (obj) {
//
moveTo(x-r, y);
beginFill(0x003366);
curveTo(x-r*k, y-r*k, x, y-r);
curveTo(x+r*k, y-r*k, x+r, y);
curveTo(x+r*k, y+r*k, x, y+r);
curveTo(x-r*k, y+r*k, x-r, y);
endFill();
//
}
//
}
Вот таблица для экспериментальных радиусов:

Код:
радиус (px) | k
______________|_______
|
10 | 0.9
50 | 0.96
100 | 0.97
|
Но при изменении k заметны углы на стыках кривых. Так как же быть?