2012-11-06 13 views
12

EDIT5:最後に、JavascriptでAngus JohnsonのClipperライブラリを実装し、ホスト用にSourceforgeを選択しました。Javascriptでポリゴンをオフセットする

LIVE DEMO:http://jsclipper.sourceforge.net/6.1.1.1/main_demo.html

ダウンロードソース: https://sourceforge.net/projects/jsclipper/

Wikipageステップバイステップのチュートリアルで:サンプルポリゴンの数十を含むデモプログラムの https://sourceforge.net/p/jsclipper/wiki/Home%206/

プレゼンテーション: https://sourceforge.net/p/jsclipper/wiki/Main_Demo%206/

私はこれがポリラインとポリを必要とする人に役立つことを願っていますオフセット機能を備えたygonクリッピングライブラリ


EDIT4:一つの可能​​性 http://p2js.gelicon.biz/en/を使用してJavaScriptにパスカル変換することです。まだ成功していない。 p2js.exe clipper.pas致命的なエラー「クリッパーによって使用されたユニットシステムを見つけることができません。


編集:私はJavaScriptにC#のを変換することができるように思われ、script#Github)を発見しました。 Clipper libはC#で利用できるので、Script#を使用してC#→JS変換を行うことは可能でしょうか?

EDIT3:スクリプト#で変換されませんでしたが、Emscriptenもありますが、4000 cpp行は300000 Javascript行に変換されています。オプションではありません。手動の変換は王のようです。


EDIT2:私はan exampleを作成しました。これは問題を示しています。左右に矢印を使用してオフセットを適用します。ある距離ではうまくいくが、何かがうまくいかない。黄色のストロークされたポリゴンは生のオフセットポリゴンと呼ばれ、AFAIKクリッパリブは生のオフセットポリゴンの不要な部分を削除する方法を提供します。


ポリゴンをオフセットするためのAngus JohnsonによるClipperライブラリがあります。

SVGポリゴンをオフセットするために、この機能をJavascriptで使用する必要があります。

誰かがJavascriptポートを作成しましたか?

もしそうでなければ、私はいくつかのガイドラインに感謝します。次のようになります。
- どのような巨大なタスクですか?
- ソース(Delphi、C#、C++)のどちらを選択するのですか?
- オフセットに必要なものはすべてlibにありますか?

Offset Polygons, polygons, delta, jointype, miterlimit, jtSquare jtRound jtMiter

いくつかのリンク:

クリッパーライブラリは、単に希望する機能です以下の結果が得られます
- Files in Sourceforge
- Clipper Documentation
- One Stackoverflow answer
- Offsetting algorithm

+0

これは既に解決していませんか? http://stackoverflow.com/questions/12723832/how-can-i-implement-offset-path-effect-in-svg-without-using-javascript-or-dilate/12723835#12723835 –

+0

一種の、しかし私は、複雑な構造のマスクや隣接する重複オブジェクトの代わりに、単純な新しいジオメトリ(ポリゴン)を使用することができます。これはすべてのプラットフォームで機能しない場合があります。 –

答えて

4

私はJSにクリッパーを移植することに成功し、しばらくしてから徹底的にテストしてリリースします。すべての機能が移植されている可能性があります。

注意:1つの注意点、128bitサポートは106bitに削減されています。

プロの1つは、ブラウザの広いスペースにアクセスして、グラフィックインターフェイスとしてsvg、vml、html5キャンバスを使用することです。

アイデア、どのホストがデモの可能性で公開するのが最も簡単でしょうか?


EDIT:

が最後にアンガス・ジョンソンのクリッパーライブラリはJavaScriptで実装し、ホストのためにSourceforgeを選択しました。

LIVE DEMO: http://jsclipper.sourceforge.net/6.1.1.1/main_demo.html

ダウンロード: https://sourceforge.net/projects/jsclipper/

Wikipageステップバイステップのチュートリアルで:サンプルポリゴンの数十を含むデモプログラムの https://sourceforge.net/p/jsclipper/wiki/Home%206/

プレゼンテーション: https://sourceforge.net/p/jsclipper/wiki/Main_Demo%206/

私はこれが誰にも役立つことを願っていますオフセットポリラインとポリゴンクリッピングライブラリがあります。

2

そこにポリゴンを膨張させるときには簡単な解決策はありません。あなたが凹面ポリゴンを持っている場合、遅かれ早かれオフセットを十分に小さくするといくつかの小さなポリゴンに分割されます。だから私は、既存の、実証済みのアルゴリズム(クリッパーは良いものにすべき)を使用することをお勧めします。

C#をJSに移植する方法については、確かに可能だと思いますが、どのくらいの時間がかかり、自動移植ツールを使用するかどうかという問題があります。 this discussionから判断すると、私はそれを疑う:

私は JavaScriptにC#のコードを変換するためにScriptSharpを使用しての迅速な刺しを取ったが、あまりにも多くの互換性のない構造があること を使用すると、私はそれを得ることができませんでしたjavascriptファイルを出力します。 のVattiクリッピングアルゴリズムをJavascriptで実装しようとすると、次のステップと思われます。

そして、はい、それはあなたがオートメーション変換 tools.Theクリッパーのすべての種類を使用して助けにはなりませんが、ちょうどJSや.I AS 非存在していないのInt64またはInt128のようなデータ構造を持っている

...それらを完全に削除しました.Int32は、 または巨大な地図に関連した地理に取り組まない限り、ほとんどの場合、 で十分です。

残念ながら、そこに記載されているActionScriptポートのうちの1つは使用できません。

+1

これは少なくとも利用可能です:https://github.com/ChrisDenham/PolygonClipper.AS3。あなたは、自動変換はオプションではないということは間違いありません。 Emscripten 4000 cppラインを300,000 JSラインに変換して使用する。私はそれが動作する場合はテストされていない... –

関連する問題