сгенерировать b2Body для письма - PullRequest
1 голос
/ 18 октября 2011

Я хочу написать небольшую игру, касающуюся шрифтов и букв.Я хочу заставить их двигаться в двухмерном пространстве, и я использую box2dweb в качестве физического движка, что на самом деле делает очень большую работу.На данный момент все, с чем я борюсь, это проблема создания b2Body для письма.Box2d может обрабатывать только примитивные, выпуклые формы, и для создания более сложных хитбоксов мне нужно объединить некоторые из них.На изображении я попытался выяснить, чего я хотел бы достичь, алгоритм, который берет svg-путь буквы и генерирует серию b2-форм, которые представляют хитбокс.

capital letter A in Black, a series of b2Shapes in blue, with green stroke

В общем, у меня нет идеи, где я мог бы найти некоторую информацию об этом, если есть библиотека, способная сделать это.Даже если эта библиотека не доступна в Javascript, я мог бы сделать работу на сервере.Я знаю, что есть paper.js и Raphalel, некоторые умные векторные библиотеки, но я не нашел ни одного намека на то, как решить эту проблему.Буду рад любой помощи, ссылкам на ресурсы или правильному названию проблемы в математическом смысле.

Приветствую и заранее благодарю ... Филипп

1 Ответ

0 голосов
/ 07 ноября 2011

Я просто хочу оставить здесь результат расследования, может, кто-то ему поможет.Первоначальная идея основана на «вырезании ушей», «отбраковке ушей» или «обрезании ушей».Демо здесь опишет это.Но алгоритм, который производит меньше подходящих многоугольников box2d, показан в демонстрационном примере здесь .Идея состоит в том, чтобы объединить как можно больше треугольников, если они выпуклые, и в этом случае не более восьми ребер.Треугольник подходит для добавления в многоугольник, если можно найти две точки в треугольнике и две точки прилагательного в многоугольнике с одинаковыми координатами x и y.

...