Хорошо, поэтому я постараюсь быть как можно более информативным.
Я работаю над проектом для клиента, для которого требуется загруженная картинка в стиле jibjab.
Я хотел бы иметь возможность создать объект, сохраняемый в базе данных, который содержит якорные / управляющие позиции более изогнутой формы, чтобы я мог вытащить его позже и повторно маскировать объект. Все это довольно легко сделать, за исключением одного улова: мне нужно создать объект Безье из нарисованного пользователем контура.
Пока вот как я представляю, как идет процесс:
при наведении мыши, создать новый спрайт, beginFill и moveTo для положения мыши.
при перемещении мыши, линия к координате XY.
при наведении мыши, endFill.
Все это прекрасно работает. Я мог бы просто хранить информацию здесь, но я бы посмотрел на ГИГАНТСКИЙ объект, полный тонн довольно бесполезных координат x / y, и никакого способа по-настоящему внести изменения в настройку, не помещая маркеры в каждый пиксель. (Я могу также дать конечному пользователю карандашный инструмент ...)
Вот что я думаю по поводу расчета кривой Безье:
1: выяснить, когда мне нужно начать новую кривую, и отследить xy пикселя в этом интервале. Я представляю, что это просто число пикселей, может быть, просто увеличить переменную count за ход мыши и сделать новую каждые x пикселей. Проблема здесь в том, что некоторые кривые будут неточными, а другие нет необходимости, но мне действительно нужна просто общая область, а не точное представление, чтобы она могла работать. Хотя я был бы счастлив с чем-то более умным.
2: возьмите каждый новый х / у, сохраните его как якорь и выясните, куда должен идти элемент управления, чтобы сделать линию кривой между этим и последним якорем. это где я действительно одержим Я уверен, что кто-то сделал это в одно мгновение, но никакие прибегающие к гуглу, похоже, не помогут мне с этим справиться. Я сделал много набросков и какую маленькую математику я могу обернуть вокруг себя, но, похоже, не могу найти способ преобразования пикселей в безье.
Возможно ли это? Все, что мне действительно нужно, это что-то, что приблизится к той же форме. Я думаю о том, чтобы разместить якоря только тогда, когда угол следующего пикселя превышает 180 градусов относительно текущей линии или чего-то еще, и просто схватить край дуги между этими изменениями, но как бы я ни старался, я не могу понять, как заставить это работать!
Спасибо за вашу помощь, я обязательно опубликую свой прогресс здесь, я думаю, это может быть очень полезно во многих приложениях, если это действительно возможно ...
Джесси