2012-11-15 54 views
0

对于这个图像,我试图为每个“领域”定义一个形状。我将如何完成这个工作?如何定义复杂的形状?

Image that is to be divided into shapes

+0

这似乎是一个很好的起点:http://docs.oracle.com/javase/tutorial/2d/advanced/complexshapes.html - 你是想绘制它,还是做点击检测或其他的东西? – Krease

+0

你有什么尝试?你有什么想法,我们可以改进? – wattostudios

+0

@Chris:我试图在用户点击某个领域时发生了某些事情。我不知道是否有更好的方法来做到这一点:P –

回答

0

希望你可以定义你的领土的形状,一系列的点 - 即(X1,Y1),(X2,Y2),等等,那么你可以使用定义的命中测试的算法之一这里:How can I determine whether a 2D Point is within a Polygon?(这里有几个很好的答案,一般来说,你可以调整概念以适应你的需求)。

1

我不知道你想怎么实现,但这种通用的方法应该工作:

  • 使用离散,边界线在图像中分离的区域,所以他们不再强硬对方。 (例如,使用形态侵蚀)。
  • 对图像执行“连接组件”(CC)操作,为每个区域的像素(1,2,3,...)生成不同的标签。你可以在网上找到一些代码来做到这一点,但是编写你自己的CC函数很容易。
  • 当用户点击某个区域时,将鼠标的X/Y坐标映射到标签图像上以查找该点下的区域标签,并报告标签。