web-dev-qa-db-ja.com

2Dジオメトリライブラリ:CGALに代わるLGPL?

CGALは、私が必要とするほぼすべてのことを実行し、次のプロジェクトのためにもう少し実行するようです。円弧の線分からポリゴンを作成し、それらに対してブール演算を実行できます。すでに空間ソートパッケージがあり、いくつかのことに関して多くの時間を節約でき、ライブラリ全体がかなり標準化され、よく計画されているようです。

ほとんどのパッケージ(非常に基本的なものを除く)のライセンスがQPL(次期バージョン4.0のGPL)であるという問題があります。予算が少ないので、それを必要とするCGALの特定のパッケージの商用ライセンスを購入するための資金を集めることができない可能性があります。

そのようなライブラリの私の特定のニーズは次のとおりです。

  • 正確な精度の2Dユークリッド空間
  • 複雑なポリゴン
  • 曲線(円弧)セグメントを持つことができるポリゴン
  • それらのポリゴンに対するブール演算
  • ポリゴンオフセット
  • ポリゴン分割または効果的な三角測量
  • 内接領域とポリゴンフィッティングアルゴリズム
  • おそらく、循環範囲検索を使用したいくつかの空間ソート構造

全体として、正確な精度で丸みのある2DジオメトリC++ライブラリを探しています。できればMIT、LGPLを一気に使用するか、500ドル未満の低コストの1回限りのロイヤリティフリーライセンスを使用してください。

Boostはいくつかの基本的な構造をダウンさせましたが、私が知る限り、それらには多くの高レベルの機能が欠けています。これを拡張したライブラリはありますか?自分でやろうと思いますが、上手くやる専門知識がなく、プロジェクトがかなり長引くことになります。

明確にするために、私は2Dgraphicsライブラリを探しているのではなく、純粋なジオメトリ構造だけを探しています。

36
Zoomulator

Wykobi をご覧ください。これはテンプレート化されたライブラリであり、ディメンションを2Dとしてテンプレート化できます。

MIT License の下で配布されます。

18
Ram

コンピュータグラフィックス用の幾何学的ツール を見てください。

  • 10年以上にわたって洗練された
  • ハードカバーと広範囲にわたるPDF形式)の両方で、信じられないほど優れたドキュメント
  • Boostライセンス

すべての要件を満たしています:

  • 正確な精度の2Dユークリッド空間:はい
  • 複雑なポリゴン:はい
  • 曲線(円弧)セグメントを持つことができるポリゴン:無意味です。定義上、ポリゴンは線分で構成されます。スプラインとNURBSをお探しの場合は、ライブラリにあります。
  • それらのポリゴンに対するブール演算:はい
  • ポリゴンオフセット:意味が不明確です。ライブラリは確かに翻訳をサポートしています。
  • ポリゴン分割または効果的な三角測量:はい、ドロネー三角形分割とボロノイ領域
  • 内接領域とポリゴンフィッティングアルゴリズム:はい
  • おそらく、循環範囲検索を使用したいくつかの空間ソート構造:はい、空間ソートと交差関数のブッシェル全体。

これはすべて、SchneiderとEberlyによる本 コンピュータグラフィックス用のGeomtric Tools から来ています。この本は傑出しており、アルゴリズムがどのように機能し、それらの制限が何であるかを明確に示しています。著者は、Boostライセンスの下でコードをオンラインで利用できるようにし、本のほとんど(すべて?)をPDF)としてオンラインで含め、各コードモジュールに添付しています。さまざまな方法で。

私は著者とは関係がなく、金銭的な利害関係もありません。私は彼らの本を私の論文で使用しましたが、使いやすいリファレンスと強力なライブラリとして非常に満足しています。

15
Jeff Benshetler

Boost.Geometry ライブラリを見たことがありますか?機能的にはCGALにはほど遠いですが、役立つかもしれません。

4
foxcub

GeoLibwww.geolib.co.ukを試すことができます。機能はそれほど多くありませんが、ブール演算を提供し、非常に使いやすいです。

0
Matt