9

2つの円と長方形の交点として複雑な形状を作りたいです。少し調べてみると、java.awt.geom.Areaクラスはこのタスクに最適のようです。

awtしかし、パッケージにandroid SDKが付属していないことに気付いたとき、私はがっかりしました。単純な形状の和集合と共通部分を定義することで複雑な形状を作成できるAndroidの代替案を知っている人はいますか?

注:図形を描画するだけでなく、衝突検出やその他の相互作用を行うために図形をメモリに保存したいので、グラフィッククリッピングを使用して図形を描画することはできません。

4

2 に答える 2

3

java.awt.geom.Areaに代わるAndroid

編集:@numanは、Android SDKのいくつかのクラスを使用する優れたオプションを指摘しましたが、元の回答の時点では気づいていませんでした。

https://developer.android.com/reference/android/graphics/Region.html https://developer.android.com/reference/android/graphics/Region.Op.html

Region幾何学的領域を定義できます。次に、Regionop()メソッドを使用しRegion.Op enumて、交差やより複雑な形状を計算できます。

他のいくつかのオプション

Canvas特にclip*メソッドを使用して、aを使用してカスタムシェイプを描画できます。

http://developer.android.com/reference/android/graphics/Canvas.html

Androidの2Dグラフィックスに関するページは次のとおりです。

http://developer.android.com/guide/topics/graphics/2d-graphics.html http://developer.android.com/guide/topics/graphics/2d-graphics.html#shape-drawable http:// developer.android.com/guide/topics/graphics/opengl.html

グラフィックが同じ(またはほぼ同じ)のままである場合のその他の適切なオプションは、XMLベースです。

http://developer.android.com/guide/topics/graphics/2d-graphics.html#drawables-from-xml

そして、私が非常にうまく見つけた1つの解決策は、9パッチのドローアブルを使用することです。

http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

衝突検出 あなたの目的にはやり過ぎかもしれませんが、ゲームの物理ライブラリはたくさんあります。

http://www.andengine.org http://code.google.com/p/andengineexamples/

http://bulletphysics.org

http://www.emini.at/

http://www.dremsus.com/index.php/2012/01/box2d-game-demo-in-android/

Android、libgdx、box2dの基本

または、独自のソリューションを展開することもできます。

http://cooers.blogspot.com/2012/08/simple-collision-detection-in-2d.html

http://content.gpwiki.org/index.php/Polygon_Collision

http://www.codeproject.com/Questions/244344/Collision-Detection-in-Android

Androidで回転したビットマップの衝突検出

それは本当に目的に依存します。ゲームの場合は、ライブラリを使用するのがおそらく最善でしょう。ただし、必要な機能が衝突検出だけである場合は、リソースを節約するために自分で実行することをお勧めします。

追加クレジット:Androidライブラリの一部のインデックス

http://www.appbrain.com/stats/libraries/dev

http://www.theultimateandroidlibrary.com/

http://www.openintents.org/en/

于 2012-11-02T04:36:46.653 に答える
2

Android UI takelitは、グラフィックレンダリングにSkiaを使用し、skiaは、PathsまたはRectsからの形状(交差、和集合、減算など。Region.Opクラスを参照)の形状に対するセット操作にRegion抽象化を使用します。

リージョンクラスは、Region.quickContainsまたはRegion.quickRejectメソッドを使用した単純な衝突検出にも役立ちます。

于 2013-07-25T16:20:07.627 に答える