Transforme un segment, la paire [start, end], en objet ligne.
Exemple : [[0,0,0], [10,5,0]] -> { start: [0,0,0], end: [10,5,0] }
Le segment
La ligne
Transforme chaque segment, une paire [start, end], en objet ligne.
Exemple : trois segments -> trois lignes, dans le même ordre
Les segments
Une ligne par segment
Construit un objet ligne à partir d'un point de départ et d'un point d'arrivée.
Exemple : départ [0,0,0], arrivée [10,5,0] -> { start: [0,0,0], end: [10,5,0] }
Les points de départ et d'arrivée
L'objet ligne
Construit un segment, la forme paire-de-points d'une ligne, à partir d'un point de départ et d'un point d'arrivée.
Exemple : départ [0,0,0], arrivée [10,5,0] -> [[0,0,0], [10,5,0]]
Les points de départ et d'arrivée
Le segment sous forme [start, end]
Relie chaque point au suivant par une ligne, de sorte qu'une liste de points devient une chaîne de lignes.
Exemple : [[0,0,0], [5,0,0], [5,5,0]] -> deux lignes, [0,0,0] vers [5,0,0] et [5,0,0] vers [5,5,0]
Les points, dans l'ordre
Une ligne par paire de points voisins
Apparie chaque point de départ avec le point d'arrivée à la même position et les relie par une ligne.
Une paire dont les deux points coïncident ne fait aucune ligne et est laissée de côté. Exemple : départs [[0,0,0], [5,0,0]] et arrivées [[0,5,0], [5,5,0]] -> deux lignes
Les points de départ et les points d'arrivée, dans un ordre correspondant
Une ligne par paire, en sautant les paires de longueur 0
Trouve le point situé à une fraction du chemin le long d'une ligne : 0 donne le début, 1 la fin, 0.5 le milieu.
Une fraction hors de 0 à 1 continue au-delà des extrémités. Exemple : { start: [0,0,0], end: [10,0,0] } à 0.5 -> [5,0,0]
La ligne et la fraction le long de celle-ci
Le point sur la ligne
Trouve le point où deux lignes se croisent.
Avec checkSegmentsOnly actif, le croisement doit se trouver dans les deux segments ; inactif, les lignes
s'étendent sans fin. Des lignes parallèles, des lignes qui se croisent sans se rencontrer, et des segments
qui ne s'atteignent pas donnent undefined. La tolérance dit à quelle distance on considère qu'elles se rencontrent.
Exemple : [0,0,0] vers [10,0,0] et [5,-5,0] vers [5,5,0] -> [5,0,0]
Les deux lignes, s'il faut rester dans les segments, et la tolérance
Le point de croisement, ou undefined quand il n'y en a pas
Applique une matrice de transformation, ou une liste de matrices dans l'ordre, aux deux extrémités d'une ligne.
Exemple : { start: [0,0,0], end: [10,0,0] } déplacé de [5,5,0] -> { start: [5,5,0], end: [15,5,0] }
La ligne et la transformation
Une nouvelle ligne avec les extrémités transformées
Applique une transformation différente à chaque ligne : la première transformation à la première ligne, et ainsi de suite.
Exemple : trois lignes avec trois translations -> chaque ligne déplacée de sa propre translation
Les lignes et une transformation par ligne
Les lignes transformées, dans le même ordre
Lignes droites entre deux points, tenues comme de simples objets de la forme
{ start, end }, et la forme segment[start, end]de la même chose. Les méthodes ici construisent des lignes, les mesurent et les transforment, convertissent entre les deux formes, placent des points le long d'elles et trouvent où deux lignes se croisent. Les longueurs sont en unités du modèle.