問題タブ [boost-geometry]
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.
boost - Boost::geometry : 多角形の重心の計算
主にポリゴンを操作するために、Boost ジオメトリを使用してきました。ジオメトリを計算するためにセントロイド組み込みメソッド(http://www.boost.org/doc/libs/1_55_0/libs/geometry/doc/html/geometry/reference/algorithms/centroid/centroid_2.html )を使用していました(バリー)ポリゴンの中心ですが、最近、ポイントの座標を出力した後(特定のポリゴンを構成)(およびいくつかのPythonスクリプトを使用して側面で分析した後)、以前の方法で得られた重心座標が対応していないことに気付きました多角形の点の幾何平均に。
私は二次元にいて、それを方程式に入れると、次のようになります。
y座標についても同じです。これは、ブースト ジオメトリ ライブラリがポリゴンのエッジ (外側のリング) のポイントだけを見ているのではなく、塗りつぶされたオブジェクトとして扱っているという事実に関係しているのではないかと疑っています。
これらの機能を操作した経験のある人はいますか?
ところで、私は使用しています:
セントロイドを計算します。
ありがとうございました。
c++ - Boost::geometry ポイントとポリゴンで within メソッドを使用する際に問題がありますか?
ブースト ジオメトリ ライブラリ ( Boost::geometry : ポリゴンの重心の計算) を正しく使用するのに問題があるようです。以前の質問のヘルプに非常に感謝しており、boost::geometry::within メソッドについて質問したいと思います。あるジオメトリが別のジオメトリに含まれているかどうかを答えてください。
ポイントがポリゴンに含まれているかどうかを確認するためにコードで使用していますが、ポイントが遠く離れたポリゴンの内側にあるべきではないという奇妙な結果に遭遇していますが、メソッドはTrue
呼び出されたときにまだ返されます。
ポリゴンを宣言するときに欠けている微妙な点について考えています。この問題を突き止めたいと思います。コードを前後に見ていますが、これをデバッグするアイデアが不足しており、視野が狭くなっているように感じます。そのため、この特定の例についてヒントを提供したいと思います。
私のポイントは座標を持っています:221.703 , 256
ポリゴンの座標は、ポイントごとに次のとおりです。
266.158 256
266.447 256.5
267.024 256.5
267.313 257
267.024 257.5
267.313 258
上記の点を明確に含むべきではありません。
このような衒学的な質問をして申し訳ありませんが、これに鼻を入れてくれる人には本当に感謝しています
私のコード:
c++ - ブースト DE-9-IM 構造体は使用可能ですか?
de9imを使用して、ポリゴンが何度も使用される可能性のあるポリゴン内のポイントへの呼び出しを高速化したいと考えています。de9im にこの機能があることは知っていますが、ブーストのクラスがどのように機能するかを理解できないようです (geometry/strategies/intersection_result.hpp )。このクラスが実際に機能するかどうかは誰にもわかりますか?もしそうなら、ポイントを含むポリゴンのクエリの簡単な例を提供できますか?
編集: ブースト ジオメトリ ライブラリを、準備されたジオメトリ クラスを持つ JTS と比較しています。この時点では、DE-9IM の使用が事前計算を可能にしていると 100% ではありませんが、ブーストかどうかはまだ疑問に思っています。にはこの機能があります。
c++ - boost::variant ジオメトリ アルゴリズムのアサーションが失敗する
std::vector
地理的領域のジオメトリを取得したいと思います。これらの領域の一部は連続しており、ポリゴンで表されます。一部の領域は不連続であり、マルチポリゴンで表されます。私の計画はstd::vector<boost::variant<polygon,multipolygon>>
、この不一致を処理するために a を使用することです。
と の両方が Geometry の概念polygon
をmultipolygon
満たすため、どちらでもエンベロープを呼び出すことができるはずです。それは機能しますenvelope
が、variant<polygon,multipolygon>
.
行のコメントを外すとbg::envelope(county,bb);
、コンパイルは次のエラーで失敗します。
これは、未定義のテンプレートの暗黙的なインスタンス化に関連しているとは思いません: Boost Bug または Clang Bug? 、boost バージョン 1.55.0 を使用しているためです。
コメント行の後の if ステートメントは実行可能ですが、ハックのようです。バリアントのさまざまなタイプを列挙することに頼らずに動作させる方法はありますか?
c++ - boost::geometry::intersection が正しく機能しないのはなぜですか?
Boost Geometry交差関数の次のテスト関数を書きました
私は出力結果を次のように期待していました:
しかし、私は得ました:
Boost1.54を使用しています。
最初のポリゴンを変更すると、交差は正しく機能します。
編集:ポリゴンのタイプをに変更したとき
正しく動作するようになりました。では、以前のタイプを常に使用することはできませんか?
c++ - Boost.Geometry ポリゴン ポイントの割り当て
ブースト ジオメトリを使用しようとしていますが、ポイントをポリゴンに割り当てるのに問題があります。ポイントの静的ベクトルを作成すると仮定しましょう
そして、私は多角形を作成します:
i が既に a の点の値を定義していると仮定します。
a から P にポイントを割り当てるにはどうすればよいですか?
c++ - boost::geometry を使用したポリゴンの法線ベクトル
私は boost::geometry を試していますが、多角形と線分の交点で多角形の法線ベクトルを取得する効率的な方法を知っているかどうか疑問に思っていました。または、交差するセグメントの線 segment_id のようなものですか? 交差点を含むポリゴンの線セグメントがある場合、法線を取得する方法を理解しています。これまでのところ、
よろしくお願いします!