AS3 Расчет равномерно распределенных точек на линии точек - PullRequest
1 голос
/ 03 октября 2011

Мне было поручено попытаться создать инструмент для рисования, который рисует пунктирные линии при перетаскивании мыши по сцене.Я могу легко захватить точки на MouseEvent.MOUSE_MOVE и сохранить их в векторе, а затем нарисовать точки в виде точек:

Проблема в том, что мне нужно рассчитать равномерно распределенные точки на постоянно растущем векторе точек, чтобы я могможно провести только черту между, скажем, каждой 5-й точкой (скажем, с использованием модуля).Я боролся с уравнениями кривой Безье, как квадратичными, так и кубическими, но до сих пор не могу понять, как преобразовать мой вектор точек в равномерно распределенный вектор точек, не высасывая жизнь из процессора.

ЛюбойПомоги мне?Я вижу, что Джордж Профенза приблизился к этому здесь из-за переполнения стека ... Джордж?

1 Ответ

1 голос
/ 03 октября 2011

хмм, я бы попробовал это так: пройтись по точкам, посчитать расстояние между одним и следующим, отследить общее расстояние, отследить, сколько точек вы уже разместили.Затем, для каждой следующей точки в векторе, посмотрите, сколько равномерно распределенных точек вам нужно поместить между новой и последней и нарисуйте их на Безье, чтобы придать фантазии, но прямые уже должны быть хорошими даже.

пример: 3 точки в векторе, общее расстояние 22. расстояние на равномерно распределенную точку: 5. Следовательно, точки, нарисованные на экране до сих пор: 4. Новая точка имеет расстояние от 7 до последней, общее расстояние составляет 29. Вам нужно 5 очковсейчас (Math.floor (29/5) = 5) у вас есть 4, поэтому вам нужно нарисовать 1. Дистанция отдыха = 22 - 4 * 5 = 2. Итак, расстояние до = 5-2 = 3. И 3/ расстояние между новой и последней точкой (9) = 0,333 -> поэтому поместите эту точку на 1/3 линии между новой точкой в ​​вашем векторе и последней точкой.Как и в dot.x = seccondLastPoint.x + ((lastPoint.x - seccondLastPoint.x) * 0,333.

Я почти уверен, что это даст вам желаемый результат. Как вы думаете, вы можете создать кодиз этого описания?

...