Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.04.2010, 15:39
TERRORist вне форума Посмотреть профиль Отправить личное сообщение для TERRORist Найти все сообщения от TERRORist
  № 1  
Ответить с цитированием
TERRORist
 
Аватар для TERRORist

блогер
Регистрация: Jun 2005
Адрес: RU
Сообщений: 1,540
Записей в блоге: 12
По умолчанию polygon decomposition

Требуется разложить вогнутую фигуру без самопересечений на ряд невогнутых.

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

пример:

Код 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]

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:11.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:11.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.