問題タブ [qhull]
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.
python - Matlab delaunayn と Scipy Delaunay の違い
scipy.spatial.Delaunay 関数を使用して、Python の Matlab delaunayn 関数によって実行される N 次元 Delaunay 三角形分割を複製しようとしています。ただし、Matlab 関数は私が望んで期待する結果をもたらしますが、scipy は別の結果をもたらします。どちらも QHull ライブラリのラッパーであることを考えると、これは奇妙だと思います。Matlab は、その呼び出しで暗黙的にさまざまなパラメーターを設定していると思います。私がそれらの 2 つの間で再現しようとしている状況は、Matlab のドキュメントにあります。
セットアップは、以下のように中心にポイントを持つ立方体を持つことです。形状を視覚化するために提供した青い線ですが、この問題には何の目的も意味もありません。
この結果から予想される三角形分割は、12 個のシンプリス (Matlab の例にリストされています) になり、次のようになります。
ただし、この python に相当するものは「余分な」単純化を生成します。
返される変数simp
は、M x N 配列である必要があります。ここで、M は見つかったシンプレックスの数 (私の場合は 12 である必要があります) であり、N はシンプレックス内のポイントの数です。この場合、各シンプレックスは N が 4 であることを意味する四面体である必要があります。
私が見つけたのは、M が実際には 18 であり、余分な 6 つのシンプリックスは四面体ではなく、立方体の 6 つの面であるということです。
何が起きてる?返されるシンプリックスを四面体のみに制限するにはどうすればよいですか? この単純なケースを使用して問題を示したので、この問題に合わせていないソリューションが必要です。
編集
Amro の回答のおかげで、これを理解することができ、Matlab と Scipy の間で簡単に一致させることができました。これには 2 つの要因がありました。まず、指摘したように、Matlab と Scipy は異なる QHull オプションを使用します。次に、QHull はボリュームがゼロのシンプリスを返します。Matlab はこれらを削除しますが、Scipy は削除しません。上記の例では、6 つの余分なシンプリスがすべて立方体のゼロ ボリュームの同一平面上にあるため、これは明らかです。これらは、次のコードを使用して、N 次元で削除できます。
他の条件に対処する必要があると思いますが、ポイントには既に重複が含まれていないことが保証されており、方向条件は識別できる出力に影響を与えていないようです.
java - 処理中にライブラリが見つかりません
Linux および Mac 上の Processing 2.2.1 および 3.2.1 で、こちらの指示に従って、jar ファイル (たとえば、 quickhull3d ) からインポートしようとしました。
私のディレクトリ構造は次のようになります
../Processing/Sketchbook/libraries/quickhull3d/library/quickhull3d.jar
Processing IDE の環境設定では、スケッチブックの場所が ../Processing/Sketchbook に設定されます。
私の .pde ファイルには、開始行があります
エラーが表示されます:
quickhull3d のライブラリが見つかりません ライブラリは、「sketchbook」フォルダ内の「libraries」という名前のフォルダにインストールする必要があります。
注: この質問がここと Processing フォーラムの両方で繰り返し出されているのを見てきましたが、私の知る限りでは、書かれた指示に従っています。スケッチを実行する前に IDE を再起動し、quickhull3d.jar を /mysketch/code にコピーしようとしました。これは、ファイルをドラッグ アンド ドロップした場合に IDE が行うことを手動で行っています。
フォローアップ: さらに調査すると、.jar ファイル自体が xyz.class ファイルの正しい場所を指していないことが問題のようです。これが原因である可能性があります。さらに、Processing 用のComputationalGeometry提供ライブラリに QuickHull3d が含まれていることを発見したため、手動でインストールする必要がありません。将来的には、.jar 内のパスが正しいことを確認します。
python - scipy.interpolate.griddata および method=nearest で境界外の fill_value を使用する
関数では、ドキュメントに記載されてscipy.interpolate.griddata
いるキーワードを指定できます。fill_value
入力ポイントの凸包の外側にある要求されたポイントを埋めるために使用される値。指定しない場合、デフォルトは nan です。 このオプションは、'nearest' メソッドには影響しません。
ただし、2D データでfill_value
使用する場合は、境界の外側で使用するには を指定する必要があります。method='nearest'
これはどのように達成できますか?
c++ - ROS catkin プロジェクトで Qhull C++ インターフェイスをリンクできない
QHull C++ インターフェイスを catkin プロジェクトで動作させるのに問題があります。私のプロジェクトは正常にコンパイルされ、リンカーが使用するライブラリを指定しましたが、次のエラー メッセージでリンクに失敗します。
共有オブジェクトと開発ファイルを取得するために、次のパッケージをインストールしました。
- libqhull-dev
- libqhull-doc
- libqhull7
- クルビン
これが問題に関連しているかどうかはわかりませんが、libqhull.so 共有オブジェクトを調べると、シンボルがありません。
これをLinuxで動作させた経験のある人はいますか? どんな助けでも大歓迎です。