問題タブ [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_GEOMETRY_REGISTER_RING の使用
自分の型を として登録する方法がわかりませんboost::geometry::model::ring
。私は自分のポイントクラスを持っています:
また、リングは として保存されstd::vector<Point>
ます。したがって、私はそれらを次のように登録しました:
ここで、リングの向きを修正したいと思います。実際、次のようにコンパイルされます。
問題は、リングの「正しい」方向をどのように定義できるかということです。boost::geometry::model::polygon
テンプレート パラメーターを使用すると、予想される方向を指定できます。ただし、以下はコンパイルされません。
どうやら、自分のリング タイプを で定義されたものに変換できないようclockwise_closed_polygon
です。
だから私は2つの質問があります:
- 正しいリングの向きを指定するにはどうすればよいですか?
- 上記で宣言されているように、リング タイプをポリゴンで使用できないのはなぜですか?
boost-geometry - ブースト ジオメトリ: ポイント オン トラック
球体 (または地理的拡張を使用する場合は WGS84 楕円体) に 2 つの点 A と B があります。この 2 点が大円を定義します。A から一定の距離にある (A から B に移動する) その大円上の点 M の座標を見つけたいと思います。
適用例を挙げると、ボートは大円上を A から B に移動します。その速度を知っていると、特定の時間におけるその位置を知りたいとします。
ブーストジオメトリでこれを行う方法はありますか?
ありがとう!
c++ - ブースト ジオメトリ cartesian2d.hpp
ここの例では、Boost Geometry を使用してこのクリッピングの例を実行しようとしました
しかし、最新のBoostライブラリでは見つかりません...
boost/geometry/geometries/cartesian2d.hpp
このファイルがどこにあるのか、誰にもわかりませんか? それとも、このチュートリアルが古すぎて、ファイルが廃止されたのでしょうか?
ios - Boost::Geometry (1.53) と iOS
iOS プロジェクトで Boost::Geometry Library を使用したいと考えています。静脈内のいくつかの試行の 1 日の後、私はここ SO にいます。
Geometry はヘッダーのみのライブラリであるため、バイナリは必要なく、*.hpp ファイルを追加するだけで十分だと思います。私は正しいですか?
これが私がやったことです:
- ダウンロードした Boost 1.53.0
boost
ルートフォルダーをフォルダーに抽出しましたlibs/boost
。したがって、ブースト ルートのパスは project/libs/boost/boost (他にも含まれてgeometry
います)です。- xcode に新しいブースト フォルダーを追加しました
- ビルド/ターゲットで、に設定
Header Search Path
し ます- 「$(PROJECT_NAME)/../libs/boost」
- "$(PROJECT_NAME)/libs/boost"
- "$(PROJECT_NAME)/../libs/boost/boost"
- "$(PROJECT_NAME)/libs/boost/boost"
- 次のコンパイラ エラーが発生しました。
#include "boost/[geometry]/geometry.hpp"
「boost/geometry.hpp ファイルが見つかりません」がスローされる#include "geometry.hpp"
geometry.hpp で「boost/geometry/core/cs.hpp ファイルが見つかりません」というエラーがスローされます
これが私のプロジェクト構造です:
私は何が欠けていますか?
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の何が問題なのかわかりません...
c++ - ブーストジオメトリが正しい
ブースト 1.52.0 で 3D ポリゴンを修正する機会はありますか? point_xy
それはうまく機能しますがpoint<double, double, double>
、3Dでは機能しません。または、向きを自分でテストする必要がありますか?
どうも
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
c++ - GPC または Clipper でポリゴン交差面積を計算する
パーティクルが楕円として表される 2D パーティクル システムがあります。楕円 - 楕円の重なり領域を計算する必要がありますが、これは難しい分析問題Ellipse-Ellipse Overlapです。私は現在、楕円を 20 角形として表現しているため、それらは「多角形化」Boost.Geometry
されており、必要な計算を行うために使用しています。
ただし、非常に多くの場合、 : から例外が発生しBoost.Geometry
ますboost.geometry overlay invalid input exception
。検索したところ、これは の既知のバグでboost.Geometry
あり、バージョン 1.53 の時点では修正されていません。今後の v1.54 のドキュメントでさえ、この問題の修正について何も述べていません。
ClipperとGPC - General Polygon Clipper Libraryに出くわしました。彼らは私が望むことをしているようですが、ブール値の結果しか出力しません。これらのライブラリと計算された交点の面積を出力する方法があるかどうかは誰にもわかりませんか? 交差点はある種のポリゴンとしてメモリに保存されているので、三角形分割やその他の方法を使用して面積を計算できると思います。どんなポインタでも本当に感謝しています!
Boost overlay
例外は、Linux Mint 14 の Win7 x64、MinGW および Qt 4.8.1 での MSVC 2010 および 2012 で一貫しています。
geometry - CGAL Open CASCADE または Boost::Geometry のどちらを使用すればよいですか?
カスタマイズ可能なレーザー カット ドロワー プロジェクトでは、交差する 2 つの垂直な「2D」オブジェクト (幅あり) 間の接続をプログラムで作成できるようにしたいと考えています。このためには、次のことが必要です。
- 2D オブジェクトを標準形式でロードおよび保存します。
- 2D オブジェクトを押し出し、2D オブジェクトに対して標準的な操作を行います (特にオブジェクトの減算)。
- 2 つのオブジェクトを交差させ、交差の「線」を決定できるようにします。
そのためにどのライブラリ/ツールを提案しますか? 上記のタスクを実行するためにそれを習得するのがどれほど難しいかを見積もることができますか?
ありがとう、
ローネン