問題タブ [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.
c++ - Boost ジオメトリ Intersection_inserter動作しません
ブースト ジオメトリ ライブラリ C++ を使用しています。このコードは古いバージョンの Eclipse (pythonxy からインストールされます) でうまく機能します。ここで、Eclipse と Mingw (x86_64-w64-mingw32) の最新バージョンをインストールします。エラーは、関数intersection_inserter()およびboost::geometry::enrich_intersection_points()で表示されます。
エラーは次のとおりです。
c++ - コンパイル時のブーストジオメトリ距離()エラー
ブースト( http://www.boost.org/doc/libs/1_52_0/libs/geometry/doc/html/geometry/quickstart.html )によって与えられた簡単な例を書くだけです。コンパイル中にいくつかのエラーがあります。Eclipse と Mingw を使用してコンパイルします。誰かが私に何が問題なのか教えてもらえますか?
テストコードは次のとおりです。
エラーは次のとおりです。
c++ - ブーストの最新バージョンとブースト ジオメトリ ライブラリ (GGL) の間の競合
過去に、ライブラリ GGL を使用していくつかのプログラムを作成しました。たとえば、次のコードは GGL と古いバージョンの gcc でうまく機能します。ここで、gcc を gcc4.7.1 に更新します。私のプログラムは、コンパイル中にエラーが表示されます。したがって、boost 1.52.1 の最新バージョンに更新します。point_2d、polygon_2d などに関連するエラーがまだあります。「cartesian2d.hpp」、「c_array_cartesian.hpp」などのいくつかのファイルが最新の vesion boost にないことがわかりました。
誰かが次のコードを分析して何が問題なのか教えてくれませんか? どうもありがとう。
エラーは次のとおりです。
c++ - Boost Geometry/intersection() が一貫性のない結果を返すようです
Boost Geometry に 2D ポイントおよびリングとして適用された 3D ベクトルがあります。
それで:
- いくつかの非凸多角形を描画します ( ring )
- 非凸多角形を切断して2つに分割する線分を描きます(小さい方はほとんどの場合三角形になります)
- 新しい 2 つのポリゴンの小さい方を線分にミラーリングします。
その結果、2 つのポリゴンが重なり合い、接線エッジが 1 つあります。
次に、2 つのポリゴンの交差を確認します。15% のケースでは、交差の結果は空です。これは驚くべきことです (小さい方のポリゴンの面積は 1.0f..10.f になる可能性があるため、コーナー ケースではありません)。
その理由は何ですか?交差点()を呼び出す前に、各ポリゴンでboost::geometry::correct()を実行しようとしましたが、役に立ちませんでした。アイデアが尽きた
編集::
Boost Geometry タイプと double storage タイプを使用して新しいリングを作成すると役立つかどうかをテストしました。
polyA と polyB (最初の float Vector3) と ringA と ringB に対して、intersection() 呼び出しを 2 回行います。次に、不一致が表示されます。
「1」は、出力両端キューの size() == 1 であるため、交差が発生することを意味します (これはリング A/リング B 交差の場合です)。「0」は Vector3 の場合です -- 結果は空です。
EDIT2:
floatストレージ タイプでブースト モデルを使用すると、ringA および ringB 呼び出しに対しても正しくない結果が返されます。私はこれを確認しました。double がエラーの「ロジック」を変更しないことに混乱したことがありますが、それは correct() 呼び出しを誤って削除したためです。正しい()呼び出しとリングA/リングB冗長リングの二重ストレージタイプでは、空の交差点を取得できませんでした。
EDIT3:
ここでは、intersection() が返す 5 つのケースを示します。
- 最初の 2 つのリングの空の結果 (std::vector< Vector3 >)、
- 最初に std::vector<> リングの double 型のコピーを作成するときの size() == 1 の正しい結果 (boost::geometry モデルを使用)。
ケース 1:
ケース 2:
ケース 3:
ケース 4:
ケース 5:
EDIT4:
これは、交差線 (x0,y0)-(x1,y1) でポリゴンをミラーリングするために使用する関数です。正接エッジはこの関数を使用して作成されます。ミラーリング後、ポイントは同じ場所に着地します。
boost-geometry - Boost.Geometry buffer()アルゴリズム:一般的なケースのポリゴンで機能しますか
私はここを見ていました:http ://www.boost.org/doc/libs/1_52_0/libs/geometry/doc/html/geometry/reference/algorithms/buffer/buffer.html そしてこれを見ました:「現在の実装は拡大するだけですOGCによって定義されていないボックス。ライブラリの次のバージョンには、より完全な実装が含まれます。」
BoostGeometryは任意のポリゴンをバッファリングできないようです。しかし、さまざまなフォーラムの議論では、一般的なケースで実際に機能するように、buffer()アルゴリズムについて言及しています。どちらが正しい?
node.js - Boost.Geometry のビルドが node-gyp で失敗する
Mac OSX 10.8.2 を使用しています。Homebrew 経由で Boost 1.52.0 をインストールしbrew install boost
ました。
経由でこの単純な NodeJS プラグインをビルドしようとするとnode-gyp build
、次のエラーが発生します。
エラーの原因:
...エラーと矛盾します。セットアップの何が問題になっていますか?
c++ - ブースト ジオメトリで使用するための Rcpp NumericMatrix の変換
Rcpp とそれに関連するパッケージが異なるオブジェクト タイプ間の変換を提供するnice コマンド<as>
とコマンドがないと、私は道に迷ってしまいます。<wrap>
行が 2 次元デカルト空間の点を表す点の行列があります。
次に、ブースト ジオメトリの凸包アルゴリズムを使用して、ポイントの凸包を見つけます。
ただし、 を理解できるNumericMatrix
データ型の 1 つに変換する方法がわかりませんconvex_hull
。さらに、Boost Geometry からの出力を、Rcpp が R に返すことができるものに変換する方法がわかりません。
boost.tuple が最良の選択のようです
boost - Boost Library を使用してジオメトリを分割する
Boost ライブラリを使用してジオメトリに対して分割操作を実行する方法はありますか?
c++ - ブースト交差点が機能しない
ブースト交差点に大きな問題があります。三角形と四角形を交差させたいのですが、クリップが表示されます:
誰か助けてくれませんか?
ジオメトリの方向を変更しようとしましたが、何も起こりませんでした。交差は他の三角形では機能しますが、これでは機能しません。
三角形:
ボックス:
アップデート:
ここに私のコード。Ubuntu 12.10でブースト1.53.0でgcc 4.7.2を使用しています