問題タブ [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 に答える
739 参照

c++ - BOOST_GEOMETRY_REGISTER_RING の使用

自分の型を として登録する方法がわかりませんboost::geometry::model::ring。私は自分のポイントクラスを持っています:

また、リングは として保存されstd::vector<Point>ます。したがって、私はそれらを次のように登録しました:

ここで、リングの向きを修正したいと思います。実際、次のようにコンパイルされます。

問題は、リングの「正しい」方向をどのように定義できるかということです。boost::geometry::model::polygonテンプレート パラメーターを使用すると、予想される方向を指定できます。ただし、以下はコンパイルされません。

どうやら、自分のリング タイプを で定義されたものに変換できないようclockwise_closed_polygonです。

だから私は2つの質問があります:

  1. 正しいリングの向きを指定するにはどうすればよいですか?
  2. 上記で宣言されているように、リング タイプをポリゴンで使用できないのはなぜですか?
0 投票する
1 に答える
225 参照

boost-geometry - ブースト ジオメトリ: ポイント オン トラック

球体 (または地理的拡張を使用する場合は WGS84 楕円体) に 2 つの点 A と B があります。この 2 点が大円を定義します。A から一定の距離にある (A から B に移動する) その大円上の点 M の座標を見つけたいと思います。

適用例を挙げると、ボートは大円上を A から B に移動します。その速度を知っていると、特定の時間におけるその位置を知りたいとします。

ブーストジオメトリでこれを行う方法はありますか?

ありがとう!

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

c++ - ブースト ジオメトリ cartesian2d.hpp

ここの例では、Boost Geometry を使用してこのクリッピングの例を実行しようとしました

しかし、最新のBoostライブラリでは見つかりません...

boost/geometry/geometries/cartesian2d.hpp

このファイルがどこにあるのか、誰にもわかりませんか? それとも、このチュートリアルが古すぎて、ファイルが廃止されたのでしょうか?

0 投票する
2 に答える
480 参照

ios - Boost::Geometry (1.53) と iOS

iOS プロジェクトで Boost::Geometry Library を使用したいと考えています。静脈内のいくつかの試行の 1 日の後、私はここ SO にいます。

Geometry はヘッダーのみのライブラリであるため、バイナリは必要なく、*.hpp ファイルを追加するだけで十分だと思います。私は正しいですか?

これが私がやったことです:

  1. ダウンロードした Boost 1.53.0
  2. boostルートフォルダーをフォルダーに抽出しましたlibs/boost。したがって、ブースト ルートのパスは project/libs/boost/boost (他にも含まれてgeometryいます)です。
  3. xcode に新しいブースト フォルダーを追加しました
  4. ビルド/ターゲットで、に設定Header Search Pathし ます
    • 「$(PROJECT_NAME)/../libs/boost」
    • "$(PROJECT_NAME)/libs/boost"
    • "$(PROJECT_NAME)/../libs/boost/boost"
    • "$(PROJECT_NAME)/libs/boost/boost"
  5. 次のコンパイラ エラーが発生しました。
    • #include "boost/[geometry]/geometry.hpp"「boost/geometry.hpp ファイルが見つかりません」がスローされる
    • #include "geometry.hpp"geometry.hpp で「boost/geometry/core/cs.hpp ファイルが見つかりません」というエラーがスローされます

これが私のプロジェクト構造です:

私は何が欠けていますか?

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

c++ - Boost::geometry との Polygon Intersection による重大なパフォーマンスの低下

私はパーティクル システムを持っておりboost::geometry、楕円形のパーティクルをポリゴンとして近似し、ライブラリの交差関数を使用してオーバーラップ エリアを見つけています。「内側」と「外側」の楕円(ポリゴン)領域を計算して、粒子間相互作用ごとに「ポテンシャル」を割り当てています。

私の潜在的な機能はこれです:

「多角化」機能は次のとおりです。

返される領域は次のとおりです。

この関数は、同じセル (粒子) でない限り、すべてのセル (粒子) に対して呼び出されます。以前、別の方法を使用した場合、私のアルゴリズムの 1 回の反復は、100 個の粒子の 1 回の反復で約 43 ミリ秒かかりました。今では約 1 分 (!!!) かかります。

これは、win7 64 ビットの MSVC2012 でのみテストしました。Linux Mint with Qt 4.7.4 についてはまた報告します。

編集: Qt 4.7.4 を搭載した Linux Mint でテストしましたが、非常に適切に動作しています。反復ごとにおそらく 90 ~ 100 ミリ秒で問題ありません。win7の何が問題なのかわかりません...

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

c++ - ブーストジオメトリが正しい

ブースト 1.52.0 で 3D ポリゴンを修正する機会はありますか? point_xyそれはうまく機能しますがpoint<double, double, double>、3Dでは機能しません。または、向きを自分でテストする必要がありますか?

どうも

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

c++ - ブーストを使用して、度分秒ラジアンを変換します boost_1_48_0

私はこのコードを動作させました:

この:

しかし、私は度分と秒を実行し、ラジアンに変換してから再び戻したいと思います。

ブーストシステムがどのように機能するかを理解するために1日を費やしました-例は地面に少し薄いので、誰かが簡単な例を示すことができるかどうか疑問に思っていました?

よろしくお願いします 8+)

編集

宣言がどのように機能するかをよりよく理解する必要があると思います。:)

編集2:

どうもありがとうございました - おそらく私はブーストでそれを行う方法を探していましたが、その機能はありませんでした! ここでこの古いコードを見つけたからかもしれないと思いましたhttp://www.boost.org/doc/libs/1_47_0/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_1.cpp

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

c++ - GPC または Clipper でポリゴン交差面積を計算する

パーティクルが楕円として表される 2D パーティクル システムがあります。楕円 - 楕円の重なり領域を計算する必要がありますが、これは難しい分析問題Ellipse-Ellipse Overlapです。私は現在、楕円を 20 角形として表現しているため、それらは「多角形化」Boost.Geometryされており、必要な計算を行うために使用しています。

ただし、非常に多くの場合、 : から例外が発生しBoost.Geometryますboost.geometry overlay invalid input exception。検索したところ、これは の既知のバグでboost.Geometryあり、バージョン 1.53 の時点では修正されていません。今後の v1.54 のドキュメントでさえ、この問題の修正について何も述べていません。

ClipperGPC - General Polygon Clipper Libraryに出くわしました。彼らは私が望むことをしているようですが、ブール値の結果しか出力しません。これらのライブラリと計算された交点の面積を出力する方法があるかどうかは誰にもわかりませんか? 交差点はある種のポリゴンとしてメモリに保存されているので、三角形分割やその他の方法を使用して面積を計算できると思います。どんなポインタでも本当に感謝しています!

Boost overlay例外は、Linux Mint 14 の Win7 x64、MinGW および Qt 4.8.1 での MSVC 2010 および 2012 で一貫しています。

0 投票する
2 に答える
3015 参照

geometry - CGAL Open CASCADE または Boost::Geometry のどちらを使用すればよいですか?

カスタマイズ可能なレーザー カット ドロワー プロジェクトでは、交差する 2 つの垂直な「2D」オブジェクト (幅あり) 間の接続をプログラムで作成できるようにしたいと考えています。このためには、次のことが必要です。

  • 2D オブジェクトを標準形式でロードおよび保存します。
  • 2D オブジェクトを押し出し、2D オブジェクトに対して標準的な操作を行います (特にオブジェクトの減算)。
  • 2 つのオブジェクトを交差させ、交差の「線」を決定できるようにします。

そのためにどのライブラリ/ツールを提案しますか? 上記のタスクを実行するためにそれを習得するのがどれほど難しいかを見積もることができますか?

ありがとう、

ローネン