Вот моя проблема:Фрактально сгенерированные линии с заданными конечными точками
У меня есть две случайные точки (x, y) и (x2, y2). Я хотел бы провести «случайный шаг» или фрактальную линию между ними. Я установил ситуацию, когда расстояние и направление шага случайным образом генерируются на основе матрицы вероятности. Однако, оставив его исключительно в направлении этой матрицы, линия будет иметь случайную конечную точку, которую невозможно предварительно определить. Поэтому я попытался установить границы для моей линии, где - если точка падает - местоположение корректируется соответствующим образом. Эти границы не работают.
В идеале, мои границы были бы кругом, созданным с каждой случайной точкой на противоположных концах области. Я попробовал следующее.
Я создал цикл, который будет перемещаться по каждой точке х линий с использованием переменной я, который начинается с меньшим из й и х2, и двигается в направлении больше.
Я создал переменную J, к которому будет добавлен случайный шаг, и инициализируюсь его к эквивалентным у-значениям для меньшей х значения (если x1 больше, набор для у1 еще установлен в й) ,
Я установил переменную, которая содержит наклон теоретической прямой между x, y и x1, y1.
Я установил матрицу вероятности, которая принимает переменную mod и устанавливает ее в значение от 8 до -8.
Я установил проверки, чтобы запретить формирование линии за пределами границ данной плоскости.
Я установил чек, чтобы определить, является ли переменная i на единицу меньше, чем у x и x2. Если это так, переменная j установлена на значение y этого значения x;
Именно в этот момент я не могу найти подходящий алгоритм для установки окончательной проверки. Вот то, что я хотел бы выполнить алгоритм:
A. Я хотел бы, чтобы он имел возможность получить случайное значение x между x и x1, определить, добавляется ли текущая переменная j к текущей переменной mod находится вне круга, порожденного двумя вышеупомянутыми точками (см. Второй абзац). Если это не так, добавьте mod к переменной j и увеличьте цикл.
B. Если эта точка выпала бы за пределы, мне хотелось бы, чтобы направление шага было отменено (например, от -6 до 6 и от 2 до -2) и повторить ту же проверку.
C. Если добавление в любом направлении вывело бы его из пределов (что, скорее всего, произойдет вблизи дальнего конца круга, где границы будут сжиматься больше всего), я хотел бы пропустить цикл, который проверяет каждое значение и его обратное начало на 0 и переходит к последовательно большим значениям до тех пор, пока не будет определено работоспособное значение.
Надеюсь, вы испытаете математиков и программистов, увидев это как непреодолимую проблему.Это загломило меня в течение трех недель, и у меня кончились идеи.
Я внесла свой ответ, чтобы ответить на ваш ответ на ответ @ McWafflestix. –