問題タブ [line-segment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1057 参照

arrays - ポリゴンを表す線分の配列の並べ替えとグループ化

いくつかの閉じた任意の形状/ポリゴンを表す線分の配列として与えられたデータを解析しています。これらの形状は凹状にすることができます。これが私が見ているものの簡単な例です:

ここに画像の説明を入力

ただし、提供されたデータには、セグメントが任意の順序で含まれています。例によると、私のデータは次のようになります{V,E,D,X,U,A,Z,C,B,W,Y}。したがって、セグメントをプロットすると正しい形状が表示されますが、形状に対して操作を行うのは簡単ではありません。

上記の配列を並べ替えて、閉じた各形状のセグメントが接続順に続き、各形状のセグメントがグループ化されるようにしようとしています。

そう

になるだろう

線分の各グループの順序は重要ではなく、個々の線分が順番に並べられているだけです。また、各グループの特定の開始セグメントも気にしません。

となることによって

同等に有効な結果です。

私は幾何学をたどる経験がなく、初歩的な試みと大ざっぱなオンライン検索では、迅速な解決策が得られませんでした。凹型ハルを調べましたが、データがポイント間の接続を既に知っていることを考えると、それはやり過ぎのようです。

0 投票する
3 に答える
763 参照

matlab - 線分と 3 次元 (3D) の点の間の最短距離

私は、点と線分の間の最短距離を2Dで見つける方法を説明する優れたスレッドからMATLABでプログラムを構築しています(点と線分の間の最短距離)。この以前に回答された質問と本質的に同じことを行う関数が必要ですが、2D ではなく 3D と MATLAB で行われます。

この以前の投稿への回答に対するトップ コメントは MATLAB にはありません。そのため、このコードの舞台裏で何が起こっているのかを理解するのに苦労しています。これを 3D MATLAB コードに変換するのを手伝ってくれる人がいるかもしれません。

線分は 2 つの点 S1 (x1,y1,z1) と S2 (x2,y2,z2) として定義され、その点は単なる 1 つの座標 Pnt (x3,y3,z3) です。

編集: ここには少し混乱があるようです。私は本当に、無限の線ではなく、線分を意味します。私が作業しているコードを添付しました。私が修正したこのコードは、もともと上記のリンクされたスレッドのコメントの一部として書かれたものであり、元の作者であるピーター・カラセフはその功績に値することを付け加えたいと思います。このままでは、コードは 2D で動作し、3D にするための開始点である 3 行 (vz、uz、および lenSqr) でコメントしました。私の具体的な質問は、detP で数学的に何が起こっているのか、detP とその後の if ステートメントを 3D で機能させる方法を本当に理解していないということです。

入力は、元の質問テキストで上記で定義されているとおりです。