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

c++ - Boost::Geometry ユニオンの単純化 - どのように機能するのですか?

Boost にはジオメトリ用の優れたライブラリがあります。SVG 画像を描画することもできます。私のプロジェクトでそれを使用したいのですが、私にとっては本当に奇妙に機能します(下の画像を参照)。

したがって、2 次元空間で正方形の多角形として表される 3 つのピクセル ポイントがあります。

ここに画像の説明を入力 pic 1

それらからユニオンを取得し、それを単純化して、スケーリングすると次のような三角形が得られるようにします

ここに画像の説明を入力 pic 2

しかし、これを取得します:

ここに画像の説明を入力

ここで、黄色の点線はユニオン、緑色は単純化です。

ソースコード:

少なくともブースト 1.47.0 と、 boost/geometry/extensions/io/svg/からの 3 つのファイルが必要です。

では、形を整える意味が欲しいように単純化するにはどうすればよいpic 2ですか?

アップデート

新しいコードを作成し、正しく動作し、十分にテストしました:

そして、このコードはそのような画像を作成します:

ここに画像の説明を入力

3 ポイントの場合は、@J と同様の画像を返します。Calleja の答え:

ここに画像の説明を入力

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

c++ - それは私ですか、それとも Boost Track SVN (Boost Geometry Extension Dissolve) の一部はコンパイルできませんか?

ブースト ジオメトリのディゾルブはここで少し説明されています。今必要なのはその SVN ホームです、インクルードするとすぐに#include <boost/geometry/extensions/algorithms/dissolve.hpp>コンパイル エラーが発生します (エラー C4430、C2146、および C2061)=( パッチを提供できる人はいますか?

サンプルコードは、たとえばここにあります

エラー:

最小限のコードは次のようになります (VS2010 では警告エラーで失敗することがテストされています):

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

c++ - Boost::geometry は、マルチポイントを穴のあるポリゴンに変換する方法ですか?

だから私たちはポイントのセットを持っています。このような:

ここに画像の説明を入力

穴のある結合された多角形を取得したい (各点が半径のある正方形または円であり、その多角形がそのような点の結合であるかのように計算される):

ここに画像の説明を入力

(緑色で表示)

ご覧のとおり、凸包でも凹包でもありません。これは、各ポイントに特定の領域があるポイントの下の領域です。

ブースト ジオメトリでそのようなことを行うことは可能ですか?

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

c++ - Boost::Geometry交差点が期待どおりに機能しない

いくつかの長方形をboost::geometryと交差させるための小さなテストアプリケーションがあります。

何か間違ったことをしなければなりません。結果は次のようになると思いますが、平行な長方形の交点は常に4 + 1ポイントの長方形である必要があり、エッジにあるため、次の(35 30, 35 40, 25 40, 25 30, 35 30)ようなポイントを含む10ポイントの長さのポリゴンが得られます。交差点ではまったく。それをSVGに入れると、長方形は期待どおりのように見えます。50 050 0

何が間違っている可能性がありますか?バグである場合、boost::geometryどうすればそれを確認できますか?(現在1.48を使用しています。)バグの場合、問題を回避する方法はありますか?

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

c++ - ジオメトリ+WGS84をブーストしますが、緯度と経度はありますが、高度はありませんか?

WGS84楕円体に対して、サーフェス上のポリゴン内のポイント、ポイント間の距離計算、デカルト座標への変換、デカルト座標からの変換など、いくつかの計算を実行しようとしています。基本的に必要なことを実行するジオメトリをブーストするGIS拡張機能があるようです。ただし、高度をデカルト座標との間で変換するようには見えませんが、X/YとLat/Lonのみです。私は何かが足りないのですか?これは可能ですか?誰か提案はありますか?

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

c++ - boost :: geometry:for_each_segmentを実行する方法は?

how boost::geometry私はのが機能していないことを理解しようとしfor_each_segmentます。ドキュメントにfor_each_segmentは、ジオメトリとファンクターが必要であると書かれています。私の例では、このファンクターが呼び出さpolylength_helperれます。このスニペットがコンパイルされていない限り、コンパイルされるまで単純にするために、そこで数値をインクリメントするだけです。

まあ、これはコンパイルされません。私clangはより理解しやすい出力に使用しました、それは言います:

誰かが私を助けることができますか?referring_segment特に、メッセージのどこから来たのかわかりません。

ドキュメントの例を次に示します。

http://www.boost.org/doc/libs/1_48_0/libs/geometry/doc/html/geometry/reference/algorithms/for_each/for_each_segment_2_const_version.html

しかし、sを除いて、これが私のバージョンとどのように異なるのか理解できませんtypedef

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

c++ - Boost.Geometry を使用してリングが別のリングに含まれているかどうかを確認するにはどうすればよいですか?

Boost.Geometry ライブラリを使用して、リングが別のリングに含まれているかどうかを判断しようとしています。

次のコードを書きました。

ただし、次の静的アサーションに失敗するため、(Boost 1.48.0 では) コンパイルされませんwithin

withinポイントが別のジオメトリ内にあるかどうかのチェックのみをサポートしているようです(ドキュメントによると)。

リングをラインストリングとして扱うことを考えていたので、intersectリングの最初のポイントが他のリング内にあるかどうかを確認します ringしかし、それぞれを a にコピーすることを避けることができるかどうかはわかりませんlinestring

withinfor two ringの機能を (妥当なパフォーマンスで) 達成する方法はありますか?

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

c++ - ベクトルの複数のレイヤーを非表示にし、単一の範囲として公開するBoost.Rangeを作成するにはどうすればよいですか?

変更できないレガシークラス階層があります。外部ライブラリの要件のため、LineとRingのBoost.Rangesを定義する必要があります。どちらも、1回の実行でポイントのみを公開します(つまり、LineとRingの両方で、Boost.Range of Pointsである必要があります)。 。

説明するための擬似コード:

ポイントは直接保存されるため、ラインは簡単です(Boost.Rangeを使用してこれを正常に実行しました。例を参照してください)。ただし、各ラインのポイントに直接到達する必要があるため、Ringでこれを行う方法がわかりません。

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

boost-geometry - Boostジオメトリを比較するにはどうすればよいですか?

私はこれらのブースト::geometry:: model :: ringを2つ持っており、それらが同じかどうかを確認しようとしています。これを理解できる組み込みのブーストジオメトリ比較関数/メソッドはありますか?