問題タブ [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でポリゴンを初期化する
Boostに含めることが提案されている汎用ジオメトリライブラリは初めてです。
vector<int> Xb, Yb
ポリゴンを作成しようとしている2つのベクトルがあります。次のコードスニペットに沿って何かを取得しようとしています。
上記のコードは機能せず、メンバー関数P
がないことを訴えます。push_back
座標を持つポイントからポリゴンを初期化するにはどうすればよいvector<int> Xb,vector<int> Yb
ですか?
c++ - ブーストジオメトリ関数で何を使用する必要がありますか
今、ブースト ジオメトリでポリゴンの例を分析しています
http://geometrylibrary.geodan.nl/03_polygon_example_8cpp-example.html _ _
数本の線を引いた後、ポリゴンの境界線と法線の交点を取得したいのですが、どの関数を使えばいいでしょうか??
あの赤丸の点の座標が知りたいです。挿入した線分とポリゴンの組み合わせ方がわからない
c++ - Boost Geometry:2D極座標系を使用
Boost 1.47で利用可能になった新しいジオメトリライブラリで遊んでいて、2D極系を定義できるかどうか知りたいと思っていました。ヘッダーファイルとドキュメントで極座標システムの定義を見つけましたが、以下のサンプルコードで使用しようとすると、コンパイルエラーが発生します。
VC2010では、上記の距離関数をコンパイルしようとすると、「エラーC2039:'type':は'boost :: geometry :: traits::cs_tag'のメンバーではありません」というメッセージが表示されます。
これは、ブーストヘッダーファイル(ブースト/ジオメトリ/コア/cs.hpp)から抽出された極座標系の定義です。
しかし、「極性」は他のどこにも言及されていないので、定義は不完全だと思います。単純な2D極座標系のために、距離戦略やその他の必要な特性をすべて自分で定義することになっていますか?
c++ - 共通の基本クラスなしでシリアル化に近づいています
次の問題に対する設計上のアドバイスを探しています。
ブーストジオメトリを使用しています。ブーストジオメトリと互換性のあるカスタムジオメトリタイプがいくつかあります(特性を介して)が、使用しているタイプのほとんどはtypedefです。
私の問題は、ジオメトリをシリアル化/逆シリアル化する場合です。
すべてのジオメトリがデータベースのバイナリフィールドに格納されているとしましょう。基本ジオメトリクラスがある場合は、おそらくg-> type()(4バイト)を記述してg-> save(some_outputstream)を呼び出し、そのすべてをバイナリフィールドに書き込みます。次に、バイナリフィールドを読み取るときに、バイトを読み取り、適切なジオメトリタイプにキャストします。
ただし、Boostジオメトリには共通の基本クラスがありません。
バイナリとして格納できる複数のタイプがあり、共有基本クラスがない場合、通常、皆さんはどのようにシリアル化にアプローチしますか?
ブーストを返すシリアライザークラスを作成することを考えていました。その後、(デ)シリアライザーに格納されるタイプを使用してジオメトリをキャストできますか?しかし、シリアライザーは、ジオメトリタイプごとにsaveメソッドを必要としますか?例:Save(myPolygon)、Save(myPoint)
何かアイデア/経験はありますか?
c++ - Boost.Geometryを使用する場合の「バイナリ式に対する無効なオペランド」?
ジオメトリの差分関数をブーストしようとすると、長いコンパイラエラーが発生しますが、同じインターフェイスとおそらく関連する実装を持つ和集合と共通部分は機能します。
最初のエラーは次のとおりです。
何らかの理由で、イテレータの違いが距離ではなく逆イテレータを返しているようです...
タイプは次のように宣言されます。
誰かが掘るのが好きな場合に備えて、完全なエラーはここにあります。
どうすればこれをコンパイルできますか?
c++ - Boost Geometry ポリゴンからポイントの座標を取得する
Boost Geometry ポリゴンを使用していくつかの計算を行う単純な DLL があります。(主に共通点と相違点です。) DLL は C# コードから呼び出される可能性が最も高く、Delphi から呼び出されるため、結果をすべてが処理できる配列に変換する必要があります。
更新:
コードを簡素化し、多少修正しました。新しいコードは完全に異なって見え、完全に異なるアプローチ ( for_each_point
) を使用し、どういうわけかまだコンパイルされません。
私の新しいコード:
現在のコンパイル エラーは次のとおりです。
- エラー C2039: 'type': 'boost::mpl::eval_if_c' iterator.hpp 63 のメンバーではありません
- error C3203: 'type': 特殊化されていないクラス テンプレートは、テンプレート パラメーター 'Iterator' のテンプレート引数として使用できません。実際の型が必要です difference_type.hpp 25
- エラー C2955: 'boost::type': クラス テンプレートを使用するには、テンプレート引数リストが必要です difference_type.hpp 25
- エラー C2955: 'boost::iterator_difference': クラス テンプレートを使用するには、テンプレート引数リストの difference_type.hpp 26 が必要です
コードのこの部分とは何の関係もないように見えるもの (私のファイル名は geometry.cpp) ですが、Boost Geometry を使用する他のすべてがコメント アウトされており、これらのエラーが引き続き発生するため、...
これは私が以前に持っていた私の悪いコードです(seheによって編集されました)
(私は C++ と Boost を初めて使用するので、インターネットからコードをまとめる際にいくつかの基本的な概念を見逃している可能性があります。) 簡単に多角形を反復処理できず、重要な部分を見逃していたと思います。ポリゴンをリングとして使用できないか、反復が思ったとおりでないか、他に何が間違っているのかわかりません。私は何を間違えましたか?
c++ - boost::geometry multi_point はポリゴンのように構築できません
まず、新しいboost::geometryライブラリの背後にいる人々に大いに感謝します!
この質問は、2 つの別個の問題がより明確になったため、2 つに分割した以前の質問に取って代わります。
特性メカニズムを説明しているhttp://www.boost.org/doc/libs/1_47_0/libs/geometry/doc/html/geometry/design.htmlを読みましたが、このコードが機能しない理由については賢明ではありませんコンパイル...
最初のエラーは
マルチポイントの代わりにポリゴンを使用すると、コードは問題なく動作しますが、おそらく必要のないオーバーヘッドがあります。何が起こっている?
c++ - boost :: geometry::areaがIntelコンパイラでのコンパイルに失敗しました
(以前の質問から分割)。
誰かがここで何が起こっているのか知っていますか?次のコードはMSVCでは正常に機能しますが、インテル®コンパイラーでは機能しません。
最後の行(boost :: geometry :: area)は、問題を生成する行です。
c++ - Boost.Geometry:ポリゴンの単純な配列を作成し、svg 画像として保存する方法は?
Boost Geometryと呼ばれる格子ライブラリ
を調べましたが、少なくとも少しグラフィカルなものを操作するためのチュートリアルはありません。N
だから、ランダムなポリゴン(色のサイズと形がランダム)を作成し、 SVGのようなベクトル画像として保存する簡単なチュートリアルを提供できる人がいるのだろうか?
c++ - ブーストジオメトリを使用してポリゴンにグループ化する方法を整数の行列 MxN にしますか?
次のような、指定された整数 (1 から INT_MAX までの任意の値) の行列があります。
マトリックス内の一意の int ごとに同じ色のポリゴンを作成して、ここに示すような座標/グループをポリゴンに持たせたいと考えています。
次のような画像を生成できます。
どの *(実行された vectirisation のため、次のようなサイズにスケーリングされます):
(下手な絵でごめんなさい)
ブーストジオメトリでそのようなことを行う方法はありますか?
アップデート:
だから@sehe悲しい:純粋にBoost.Geometryを使用してI'd simply let Boost Geometry do most of the work.
このピクセル単位のクラスのaeria growerを作成し、コンパイルして実行しますが、クラスター化されたデータで実行する必要があります..そして、1000 x 1800のucharファイルがあります(それぞれの一意のuchar ==データはそのクラスターに属します)。このコードの問題: 18 行目で、各ポイントの作成に 1 秒以上かかるほど非常に遅くなります =(
コード:
あなたが私のコードを見てわかるように..それで私は@seheコードのレンダラーを作成することにしました:
このコードはコンパイル可能ですが、うまくいきません (結局、配列の操作方法がわからなかったようです...):