開始点、進行方向、距離、および線分が与えられた場合、この進行方向に沿って、この線分から指定された距離だけ離れた最初の点を見つけます。
2 つのケースをカバーしましたが、最後の 1 つをカバーできませんでした。
最初のケース: ラインから離れる。始点が指定距離内であっても無視する。
2 番目のケース: ラインと交差します。三角形と三角形を使用して解決しました。最初は次のケースを考慮していませんでした。
3 番目のケース: ラインに向かっていますが、ラインと交差していません。これが正しく行われれば、2番目のケースも解決されると思います。
3 つのサブケース:
最小直線距離が指定された距離を超えています。それを無視します。
最小ライン距離は、指定された距離と同じです。すでにポイントを見つけました。
最小直線距離が指定された距離未満です。これは、見出しに沿って線セグメントの終点までの垂線が、必要な距離より短いことを意味します。これはまた、この垂直線の両側に、必要な距離の 2 本の線があることを意味します。1 つは見出しに対して垂直で、もう 1 つは同じ終点に最も近く、見出しに対して垂直ではありません。それらのポイントを見つけて、どちらが開始点に近いかを確認するだけです。
これは私が今日立ち往生しているところです。それを描くのは簡単でしたが、ベクトルの計算などを行うのは難しいものでした。
これは次のように言い換えることができます。
線分からP(t) = P0 + t*v
離れているのは何時ですか?D
L((x1,y1), (x2,y2))
v=(sin(heading), -cos(heading))
私の場合。