問題タブ [boost-polygon]

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 に答える
4744 参照

c++ - Boostでポリゴンを三角測量する方法は?

Boostでポリゴンを三角測量する最良の方法は何ですか?

Boost.polygonを使用します。

私の現在のアルゴリズム:

  1. ポリゴンの頂点からボロノイ図を計算します。

  2. 各セル エッジに対して 1 つの有向ポリゴン エッジを作成します (これにより、セル エッジごとに 2 つの有向ポリゴン エッジが作成されます)。

  3. 作成されたすべてのエッジを反復処理して、三角形を作成します (自明ではありません)。

より良い解決策はありますか?

編集:三角形を直接作成する特別な方法でセルをウォークスルーすることがおそらく可能であることに気付きました (3 つの隣接セルが三角形を作成します)。

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

c++ - ブーストを使用して不規則な多角形でグリッドを形成するための長方形のセットを生成します

不規則な (おそらく凸ではない) 多角形の内側にグリッドを形成する、所定のサイズの一連の四角形を作成する必要があります。(四角形に収まらないビットがエッジにあることに気付きました。それらは単に削除できます。) すべてが 2 次元であり、私のポイント タイプは double です。UTM データを使用しているため、ポリゴンが原点に近くありません。私はc ++で作業する必要があります。2 つの質問があります。

これはブーストで行うことができますか?ボロノイ ダイアグラム ビルダーを調べましたが、ポリゴン内に点の長方形格子を生成するのに問題があります。

ポリゴン内の一連の長方形を生成するのにより適した、使用できる別のジオメトリ ライブラリはありますか?

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

c++ - ブースト ポリゴン: euclidean_distance の問題

2 つの長方形間のユークリッド距離を計算することになっている次のコードがあります。GCC 4.7.3 と Boost v1.58.0 を使用してコンパイルしました

上記のコードは、次の出力を生成しました。

正解は 230185 です。ブースト ポリゴン ライブラリの euclidean_distance() の実装を見てみると、次のようになります。

std::sqrt(gtl::square_eclidean_distance(t,n))これは、正しい答え (230185) を与える私のコードの行と同じに見えます。では、なぜ で 38022.6 になるのgtl::euclidean_distance()でしょうか? ここには何が表示されていませんか?

ここに画像の説明を入力

0 投票する
0 に答える
100 参照

c++ - Boost::Polygon - Polygon 90 セットのコンセプトでメモリを割り当てる

Boost::Polygon - Polygon 90 Set Concept を使用して、大量の長方形を格納しています。残念ながら、完了後にメモリを割り当てることはできません。

これは最小限の例です。特定のポイントに設定されたポリゴンのメモリを割り当てたいと思います。clear() コマンドは、(ドキュメントに記載されているように) 割り当てを解除しません。

スコープを使い果たすことなく割り当てを解除する方法を知っている人はいますか?

0 投票する
0 に答える
295 参照

c++ - 高精度の整数でブースト ポリゴンを使用する

最近、ブースト ポリゴンが整数のみであることを知りました:ブースト ポリゴンのユーティリティは何ですか?

浮動小数点値に大きな指数を掛けてからライブラリからの出力を再正規化することでこれを回避していますが、デフォルトでは内部表現は 32 ビットのようで、入力が最大 int を超えると機能しません20億かそこら。

ライブラリを 64 ビット整数で動作させる方法はありますか?

例: http://www.boost.org/doc/libs/1_62_0/libs/polygon/doc/tutorial/minkowski.cpp

私の素朴な変更で:

これは多角形を出力しますが、max int より小さい四角形のみです。入力データは long long ですが、内部的にはまだ 32 ビットであると想定しています。新しい Point 構造体を定義してそれを使用する必要があることは理解していますが、具体的にはわかりません。

0 投票する
0 に答える
342 参照

c++ - Boost::Polygon : polygon_set からポリゴンのリストを取得する

オブジェクトの複雑なメッシュを出力するプログラムを構築しています。同じ方向を向いている隣接するポリゴンの数を減らすために、Boost::Polygon を使用することにしました。今、私は問題を抱えています.1つ目は、プログラムは台形の適切なデータを出力したくないということです.これはドキュメントで約束されていました. 次に、Boost ライブラリは、polygon_set_data (穴のある多角形のセット) を単純な多角形のセットとして表現する際にも問題を引き起こします。私は実用的な解決策を得たいと思います-最初に単純なポリゴン(穴なし)を一緒にboost::polygon_setタイプに追加します(Boostがすべての操作を計算し、大きなポリゴンがほとんどないと仮定します)単純なブーストを取得したい::ポリゴンデータ。

0 投票する
0 に答える
313 参照

c++ - ブースト ポリゴン内のすべてのポイントを取得する

ポリゴンの境界内にあるすべてのポイント (整数値のインデックスを持つ) を取得したいと考えています。ポイントがポリゴン内にあるかどうかを照会する API 関数がありますが、すべてのポイントのリストを取得したいと考えています。これを行うためのブースト ライブラリに API 機能はありますか?

ポリゴンは頂点によって定義されますが、フラッド フィルやスキャン ライン テクニックなど、ポリゴンの内部ポイントを取得するためのよく知られた方法がいくつかあります。ただし、ブーストでこれらのメソッドの実装を見つけることができませんでした。