画像(もうすぐビデオフレームになります)上の2点間の経路を見つけるプログラムを作成しています。私が行うことは、ポリゴン オブジェクトを使用してパス間の障害物を特定し、必要に応じてそのポリゴン オブジェクトを使用して回避することです。私のコードは次のとおりです:
リーリー現時点で唯一つまずいているのは、長方形、正方形、円などの単純な図形です。すべてがうまく機能したら、ビデオに切り替えるつもりです。この問題は、2 つの部分が長方形の対角線である場合に、関数 getpolygonsinway
のリスト内包表記 line.crosses(polygon)
が false を返すときに発生します。ドキュメントを見ましたが、このケースを正しく把握するために何を使用すればよいのかわかりません。そこでここで質問させていただきました。
編集: 要求に応じて、サンプル ポリゴン、開始点、および終了点は次のとおりです:
リーリー上記のコードを使用して、getshortestpath(getpaths(start, end, Polygons, []))
を実行し、次のパスを取得します。
[(440, 35), (411, 182), (210, 335), (90, 600)]
line.within(polygon) メソッドを見つけました。なぜ以前は見なかったのかわかりませんが、今は見ることができます。リスト内包 if 条件で
line.crosses(polygon) または line.within(polygon) を実行することで、四角形の周囲のパスを取得することができました。これから他の基本的な形状でテストし、その用途を無限にテストするつもりです。
以上が何らかの形で線が多角形を通過しているかどうかを確認しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。