使用Java 2D我已将几个贝塞尔曲线(CubicCurve2D
)修补到一起以创建“blob”。我现在面临的问题是如何:在Java中创建复合形状2D
- 高效地填充给定颜色的斑点。
- 有效地确定给定点是否位于blob内部。
我注意到THST CubicCurve2D
工具Shape
这为确定“内部性”众多contains
方法和Graphics2D
能够填充通过fill(Shape)
一个Shape
(我相信使用Shape
的getPathIterator
的方法来做到这一点)。
鉴于此,我希望我可以创建一个复合Shape
,其中我的getPathIterator(AffineTransform)
方法将简单地将底层PathIterator
连接在一起。但是,一旦我的形状包含多个CubicCurve2D
,就会产生一个NoSuchElementException
。即使我设法做到这一点,我不相信它会按预期工作,因为CubicCurve2D
总是填充在凸面上,而我的“斑点”是由凹凸曲线组成的。 “包含”问题更加困难,因为一个点可以合理地位于团块内,但不在任何单独的曲线内。
- 我是否以正确的方式处理这个问题(想实现
Shape
?)还是有一种习惯的方法可以做到这一点,我不知道的?我会认为合成几何形状的问题会相当普遍。 - 有没有人有关于如何解决这个问题的建议?
在此先感谢。
酷 - 谢谢皮埃尔!我会检查出来的。 – Adamski
皮埃尔 - 非常感谢;这工作完美。 – Adamski