Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Либа для обрезания полигонов. (http://www.flasher.ru/forum/showthread.php?t=182720)

vorodis2 01.08.2012 12:32

Либа для обрезания полигонов.
 
Собственно ковыряю нейп тама есть тип полигона, который строит физ объект по точечно, но вот уже за бодался мерится с тем что если в полигоне есть вогнутый угол нейп ложится.
http://vorodis2.com/arhiv/help.jpg
Может есть где то либа для этой маленькой проблемки. (Самому очень влом писать))))

Aquahawk 01.08.2012 14:05

А вы попробуйте почитать то как устроены движки и попробуйте написать, сразу упрётесь в то что физика невыпуклых тел в разы сложнее, и не всегда возможно. Просто забудьте о существовании невыпуклых форм. В Box2D на одно реальное тело навешивают несколько выпуклых шейпов.

GBee 01.08.2012 14:25

Так автор и пытается автоматом бить :о). Где-то видел, щаз поищу.

Tails 01.08.2012 14:27

vorodis2
Тоже интересно стало, кажеться автор предоставил такую возможность.
Класс MarchingSquares разбивает на выпуклые фигуры. http://deltaluca.me.uk/docnew/pckg/n...ngSquares.html

Пока ещё сам ничего не понял, как там всё устроено. Вощем, как разберешься отпиши, мне тоже интересно.

GBee 01.08.2012 14:32

Не нашел. Триангуляция?

Tails 01.08.2012 17:27

Вложений: 1
Оказалось всё очень просто:

Код AS3:

 
// Тестовый многоугольник
var polygons:GeomPoly        = new GeomPoly( [new Vec2(0, 10), new Vec2(10, 20), new Vec2(20, 20), new Vec2(40, 0), new Vec2(80, 0), new Vec2(110, 20), new Vec2(160, 20), new Vec2(160, 40), new Vec2(150, 50), new Vec2(10, 50), new Vec2(0, 40) ]);
var body:Body                = new Body(BodyType.DYNAMIC, new Vec2(100, 100));
 
var simpleShapes:GeomPolyList = polygons.convex_decomposition();
 
for (var i:Number = 0; i < simpleShapes.length ; i++ ) {
        body.shapes.add(new Polygon(simpleShapes.at(i), Material.wood() ));
}
 
body.align();
body.space = napeSpace;

У класса GeomPoly есть 4 вида алгоритма разбора сложных форм, на все случаи жизни:
  • simple_decomposition()
  • monotone_decomposition()
  • convex_decomposition()
  • triangular_decomposition()

vorodis2 01.08.2012 19:25

Да я вчера какраз на это диво GeomPoly и смотрел но что то мозги были сонные))

А так наверно то что нужно, спасибо!!!
Ушел пробовать.

Добавлено через 1 час 48 минут
Еще раз спасибо Tails.
Вот может кому пригодиться.
http://vorodis2.com/arhiv/delim_pologon/bin
Архив
http://vorodis2.com/arhiv/delim_pologon.rar


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

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