Voici mon problème:Lignes générées de manière aléatoire avec des extrémités prédéfinies
J'ai deux points aléatoires (x, y) et (x2, y2). Je voudrais faire une ligne «aléatoire» ou fractale entre les deux. J'ai mis en place une situation dans laquelle la distance et la direction de l'étape sont générées de manière aléatoire sur la base d'une matrice de probabilité. Cependant, en le laissant uniquement à la direction de cette matrice, la ligne aura un point final aléatoire qui est impossible à déterminer à l'avance. J'ai donc essayé d'établir des limites pour ma ligne où - si un point tombe - l'emplacement est ajusté en conséquence. Ces limites ne fonctionnent pas.
Idéalement, mes limites seraient un cercle créé avec chaque point aléatoire aux extrémités opposées de la zone. J'ai essayé ce qui suit.
avoir établi une boucle qui itérer à travers chaque x-point de la ligne en utilisant une variable i qui commence avec le moins élevé de x et x2 et se déplace vers la plus grande.
avoir établi un variable j dans laquelle l'étape aléatoire est ajouté et initialisé à la valeur y équivalent pour la moindre valeur x (si x1 est supérieur ensemble à y1 fixé d'autre à x) . J'ai mis en place une variable qui contient la pente de la droite théorique entre x, y et x1, y1.
J'ai mis en place une matrice de probabilité qui prend une variable mod et la définit à une valeur entre 8 et -8.
J'ai mis en place des contrôles pour interdire la formation de la ligne en dehors des limites du plan donné.
J'ai mis en place une vérification pour déterminer si la variable i est inférieure de 1 à la plus grande de x et x2. Si c'est le cas, la variable j est mise à la valeur y de cette valeur de x;
C'est à ce stade que je ne parviens pas à trouver l'algorithme approprié pour mettre en place la vérification finale. Voici ce que je voudrais que l'algorithme fasse:
A. Je voudrais qu'il puisse, étant donné une valeur x aléatoire entre x et x1, déterminer si la variable courante j a été ajoutée à la variable courante mod est en dehors du cercle généré par les deux points susmentionnés (voir le deuxième paragraphe). Si ce n'est pas le cas, ajoutez le mod à la variable j et incrémentez la boucle. B. Si ce point tombe en dehors des limites, je voudrais que la direction de pas soit inversée (par exemple de -6 à 6 et de 2 à -2) et que la même vérification soit faite à nouveau. C. Si l'addition dans l'une ou l'autre direction la mettrait hors des limites (ce qui se produira très probablement près de l'extrémité du cercle où les limites se resserrent le plus), j'aimerais pouvoir parcourir une boucle qui vérifie chaque valeur et son inverse commençant à 0 et se déplaçant vers des valeurs consécutives plus grandes jusqu'à ce qu'une valeur exploitable soit déterminée. J'espère que vous rencontrez des mathématiciens et des programmeurs là-bas voir cela comme un défi surmontable.Cela m'a bloqué pendant trois semaines et je n'ai plus d'idées.
J'ai modifié ma réponse pour couvrir votre commentaire sur la réponse @ McWafflestix. –