Требуется разложить вогнутую фигуру без самопересечений на ряд невогнутых.
Нашел класс-"разложитель"
здесь. Вроде б все ништяк, только после множества тестов оказалось что в каких то ситуациях он бажит - выдает полигон нулевого размера.
пример:

Код AS3:
var points:Array = [new Point(-750, 300),new Point(-350, 298),new Point(190, 312),new Point(171, 276),new Point(190, 260.5),new Point(187, 278.25),new Point(600, 300),new Point(1600, 300),new Point(1600, 710),new Point(-750, 710)]
//decomposing
var decomp:PolyDecompBayazit = new PolyDecompBayazit(points)
decomp.decompose(tracer)
function tracer(dec:PolyDecompBayazit)
{
trace(dec.points.length, 'points', dec.points)
}
Результат:
Цитата:
5 points (x=1600, y=710),(x=-750, y=710),(x=-750, y=300),(x=-350, y=298),(x=190, y=312)
1 points (x=177.58554844219032, y=288.4778812588869)
1 points (x=177.58554844219032, y=288.4778812588869)
4 points (x=190, y=312),(x=177.58554844219032, y=288.4778812588869),(x=187, y=278.25),(x=600, y=300)
4 points (x=600, y=300),(x=1600, y=300),(x=1600, y=710),(x=190, y=312)
|
стоит сдвинуть верхнюю точку на пару пикселей - начинает разлагать нормально.
Есть ли у кого нить идеи что делать? может есть еще подобные скриптики?
Скриншот:
[IMG]http://img203.**************/img203/2943/bugcb.png[/IMG]