繁体   English   中英

什么是java等效的java.awt.geom.Area?

[英]What is the android equivalent of java.awt.geom.Area?

我想将复杂的形状构建为两个圆和一个矩形的交集。 经过一番研究, java.awt.geom.Area类似乎非常适合这项任务。

然而,当我发现awt软件包没有安装android SDK时,我感到很失望。 有没有人知道android的任何替代品,允许我通过定义简单形状的并集和交集来创建复杂的形状?

注意:使用图形剪裁绘制形状不起作用,因为我不只是想绘制形状,我还想将形状存储在内存中以进行碰撞检测和其他交互。

Android替代java.awt.geom.Area

编辑 :@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 *方法:

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

我发现一个非常简洁的解决方案是使用9-patch drawables:

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/

Android UI takelit使用Skia进行图形渲染,skia使用Region抽象对Paths或Rects上的形状(例如,intersection,union,subtract。参见Region.Op类)形状进行集合操作。

Region类也可以使用Region.quickContains或Region.quickReject方法进行简单的碰撞检测。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM