4

関連する質問:
ポリゴンの膨張/収縮 (オフセット、バッファリング) のアルゴリズム

違いは、特定のポリラインをポリゴンに膨らませる方法を探していることです。

四角で囲まれたポリライン

次の入力があります。

  • ポリラインを形成する 2D 点のリスト (スケッチでは明るい緑色)
  • ラインの幅

出力は、線が幅によってどのように拡大されるかを示す多角形である必要があります。

私はもともとBoost::Geometry::bufferを使用できると思っていましたが、残念ながら今のところボックスをサポートしているようです。Boost::GeometryまたはGDAL/OGRを使用したソリューションが優先されます。

更新:
Clipper Library とそのOffsetPolyLines関数を使用することにしました。Polyline-Buffer をサポートする Boost Geometry がリリースされ次第、Boost に切り替えます (私のソフトウェアでは他のすべてが Boost で動作するため)。

4

2 に答える 2

3

OPがBoost::GeometryまたはGDAL/OGRのソリューションを好んでいたことは理解していますが、他の人がこのスレッドに従っている場合に備えて、私のClipperライブラリはポリラインのオフセットも行うことができます. (すでに SourceForge リポジトリにあるまもなくリリースされるバージョン 6では、これが簡素化され、オープン パス (ポリライン) クリッピングもサポートされるようになりました。)

于 2013-08-27T19:07:08.023 に答える
2

Boost.Geometry 拡張機能 (Trunk から) でこれを行うことができます。まだリリースされていません。ポリゴン、ポリゴン、ポイント、およびマルチジオメトリをバッファリングできます。シャープ コーナー (留め継ぎ) または丸みを帯びたコーナーを指定できます。まだ完全ではありませんが、上記のサンプルのような行で問題が発生することはありません。

リリースされたバージョン (1.54) にはまだこれがなく、次のバージョンにもまだありません。したがって、今のところ、Trunk (SVN から) を使用する必要があります。

于 2013-08-27T16:09:36.947 に答える