Я генерирую один массив точек (или линию) из другого (линии), и мне нужно проецировать каждую точку в постоянном направлении для всех точек, по существу создавая связную дорожку.В результате строка A имитирует строка B .
Причина, по которой я это делаю, заключается в том, что я решаю сложную проблему, когда заставляю дракона ездить по этим линиям, как на американских горках для одной из моих видеоигр, над которыми я работаю.
Описания
В настоящее время я выяснил столкновение дракона с этими точками и т. Д., И т. Д., Вы получите это!Все, что мне нужно, это трек, по которому этот код поступает.
Я дошел до того, что узнал, как отразить линию, а затем выяснил точки пересечения.
В основном моя стратегия состоит в том, чтобы "разбить" линии и очистить точки пересечения, но я не знаю, как это сделать.
Мое единственное исследование привело меня куда-то, кроме этого вопроса: Какнаписать метод, который находит все пересечения в массиве диапазонов? (Java)
Код
Я уже знаю, как сдвигать строки:
function createPoints(points, angle, offset)
{
var newPoints = [];
for(var i = 0; i < points.length; i++)
{
newPoints.push({
x: points[i].x + Math.cos(angle) * offset,
y: points[i].y + Math.sin(angle) * offset,
});
}
return newPoints;
}
Это исправляет / разбивает пересечения:
function fixIntersections(points, points2)
{
var intersections = getIntersectionsIndexes(points, points2);
// No Idea what goes here
// but where need to split Points and points2 based our intersections data.
console.log(intersections);
}
Остальная часть этого файла находится здесь: https://github.com/prolightHub/ParallelLines/blob/master/js/intersections.js
Также как нам нужно найти точку пересечения, а нетолько индексы пересечения!
Дополнительный код см. в этом хранилище.
Визуальные элементы
Вы можете видеть, как я разбиваю линии и что этораньше был.Визуальное представление того, что нужно сделать:
Линии, которые мне нужно разделить
Видите точку пересечения?Вот где нам нужно разбить или устранить!
SplitLines Линии, которые были разбиты
Обратите внимание, что я работал над этим вопросом около 30 минут.Любая помощь будет оценена :) 1057 *