問題タブ [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.

0 投票する
1 に答える
1474 参照

c++ - boost::geometry::union 結果なし

boost::geometry::union_ を使用していくつかのポリゴンをマージしようとしていますが、いくつかのエントリの出力ベクトルが空です。

ここに例があります:

取得した2つのポリゴンを描いたとき:ここに画像の説明を入力

しかし、上記のコードの結果は次のとおりです。

これはこの関数のバグですか、それとも私のコードに誤りがありますか?

0 投票する
1 に答える
370 参照

c++ - ブースト ジオメトリ: レガシー オブジェクトの適応

SYSTEM : gcc-4.7.2 および boost-v1.54 を搭載した CentOS-5

問題: レガシー (カスタム) オブジェクトを調整して、boost::geometry で使用しようとしています。具体的には、ブースト ジオメトリ変換を使用したいので、このガイドコードに従います。私のオブジェクトは、そこで使用されている「Q-objects」とは少し異なりますが、コンパイル エラー メッセージは似ているため、Boost が提供するコードをコンパイルしてみます。

変換を適用するとエラーが表示されます。

コンパイルエラーメッセージ:

0 投票する
1 に答える
224 参照

c++ - boost::geometry のポリゴン内に追加情報を格納できますか?

私はboost::geometryとC++を初めて使用しますが、それをいじっていると、次の質問が頭に浮かびました:
色またはintを含むstd::stringのように、追加情報をポリゴン内に直接保存することは可能ですか?何らかのID番号?

または、次のようなものでラップする必要がありますか:

ありがとう!
フランツ

0 投票する
1 に答える
203 参照

c++ - リングセグメントの重複

2D セグメントが 2D リング (凸) と重なっている (純粋な重なり、隣接または接触していない) かどうかを確認するにはどうすればよいですか?

私の最初のアプローチは、次のものを使用することでした。

  1. disjointしかし、接触/隣接はばらばらと見なされないため、機能しませんでした

  2. オーバーラップしかし、接触/接触はオーバーラップと見なされるため、機能しませんでした

他のいくつかの組み合わせを試しました(たとえば、で使用)が、簡単な方法が見つかりません。簡単に言えば、計算ジオメトリ アルゴリズムを実装せずに、いくつかのブースト ジオメトリ アルゴリズムを使用するということです。

解決策は戦略のどこかにあると思います...

問題を再定義できると思います:隣接するリング (ポリゴン) を見つけるにはどうすればよいですか? (注: エッジから縮退リングを作成できます)。

ここに私が欲しいものの図があります。赤のセグメントはOVERLAPを返し、青のNO​​ OVERLAPを返します。

ここに画像の説明を入力

システム: Boost_1.54、CentOS-5、gcc-4.7.2

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

c++ - 多くのブースト::ポリゴンの結合を作成する最速の方法は何ですか?

多くの boost::polgons を結合する必要がありますが、特に多数のポリゴン (>2000) では、私のアプローチはあまりパフォーマンスが良くないようです (>15 分)。

結合したいすべてのポリゴンをマルチポリゴンにプッシュしてから、マルチポリゴンに結合します。コードを参照してください。

結合するポリゴンのほとんどが交差するため、結果にはおそらく非常に多くのポリゴンが含まれません。

ポリゴンを特定の順序で並べ替えたり、まったく異なる方法で並べ替えたりするなど、これをより効率的にする方法はありますか?

0 投票する
1 に答える
829 参照

c++ - boost::geometry で凸包の交点を取る

浮動小数点数を使用して数回試みた結果、丸めの問題が原因でワイルド例外が発生した後、回避策として整数演算を使用するとうまくいくと思いました。しかし、今、まったく同じ問題に遭遇しました。

さまざまな点セットの凸包の交点を計算しようとしています:

これは で失敗しboost::geometry::overlay_invalid_input_exceptionます。

凸包は次のようhull0になりhull1ます。

ハル0とハル1

私が間違っていることはありますか?凸包と交差の計算を自分で実装する必要がないようにしたいのですが、これは多くの不必要なエラーが発生しやすい作業のようです。