2011-06-16 6 views
2

私は、java.awt.Graphics2dを大量に使用するJavaライブラリを持っています。GWTのjava.awt.Graphics2DとHtml5 Canvas Contextの両方のインタフェースが可能ですか?

gwtを使用してライブラリをhtml5 canvasに移植します。

私は、common.Graphics2d、 などのインターフェイス(まさしくクラス)を作成する予定です。com.test.awt.Graphics2dなどのアダプタクラスはcommon.Graphics2dを実装し、java.awt.Graphics2dを使用します。

と別のアダプタクラス、たとえばcom.test.gwt.Graphics2dはcommon.Graphics2dを実装し、com.google.gwt.canvas.dom.client.Context2dを使用します。

次に、すべてのjava.awt.Graphics2dをcommon.Graphics2dに置き換えます。 その後、私のライブラリはgwtとjavaの両方で動作します。

ここでの問題は、graphics2dメソッドとcanvasコンテキスト2dによる設定を実装することです。キャンバスで同じ機能を実装することは実現可能ですか?

答えて

1

私は似たようなことをしました。私は、そのインタフェースの1つの実装と2つの実装を表すインタフェースを持っています。 1つはAndroid用のandroid.graphicsクラスを使用し、もう1つはcom.google.gwt.canvas.client.Canvasを使用するGWTの実装です。

GWTキャンバスのものは、私には完全に機能しているようです。あなたは、図形を描画し、テキストと画像を表示したり、移動、回転、拡大/縮小することができます。

1

おそらく、使用する関数(色のグラデーションが簡単でないなど)によって異なります。基本的な描画関数では、実際に実装する必要のあるメソッドの数は非常に少ないです。

私のjvect-clipboardパッケージから、(sourceforge上で)見た目(および再利用)のクラスを作ることができます。基本的には、すべてのジオメトリメソッドは一般パス描画コマンドを使用することができ、色などを保存したままにします。

SVGやWMFの出力の実装を見てみると、コードが非常にシンプルであることがわかります(特にSVGの場合は、すべての可能性、特にグラデーションをカバーしていません)。

関連する問題