En partant d'un point de départ, d'un en-tête, d'une distance et d'un segment de ligne, trouvez le premier point le long de cet en-tête à la distance spécifiée de ce segment de ligne.Comment puis-je trouver le premier point le long d'un en-tête à une distance spécifiée d'un segment de ligne?
J'ai couvert deux cas, mais je n'ai pas été en mesure de couvrir le dernier.
Premier cas: départ de la ligne. Ignorez-le même si le point de départ est dans la distance spécifiée.
Deuxième cas: Il coupe la ligne. Je l'ai résolu en utilisant trig et triangles. Initialement n'a pas considéré le cas suivant.
Troisième cas: Il se dirige vers la ligne, mais il ne l'intersecte pas. Je pense que cela résoudra le deuxième cas si c'est fait correctement.
Trois sous-cas:
La distance minimale de ligne est supérieure à la distance spécifiée. Ignorez-le.
La distance de ligne minimale est égale à la distance spécifiée. Trouvé les points déjà.
La distance de ligne minimale est inférieure à la distance spécifiée. Cela signifie qu'il y a une ligne perpendiculaire entre le long de la ligne et une extrémité du segment de ligne qui est inférieure à la distance nécessaire. Cela signifie également que de chaque côté de cette ligne perpendiculaire sera deux lignes de la distance nécessaire. L'un est perpendiculaire au cap, tandis que l'autre est le plus proche du même point final et non perpendiculaire au cap. Juste une question de trouver ces points et de voir lequel est le plus proche du point de départ.
C'est où je suis coincé aujourd'hui. Le faire était facile, mais faire le vecteur calc ou tout ce qui était difficile.
Il est possible de reformuler ce que:
A quelle heure (s) est P(t) = P0 + t*v
à une distance D
du segment de ligne L((x1,y1), (x2,y2))
?
v=(sin(heading), -cos(heading))
dans mon cas.