如何在相同的部分拆分java 2dpath

时间:2017-12-11 10:16:27

标签: java math jython java-2d bezier

我正在尝试将一般的Shape拆分为Points列表,这样我们就可以根据某个百分比在路径上移动某个精灵。

现在我可以将形状分成多个点:

Point distribution

这是由以下代码生成的:

shapeComp = system.gui.getParentWindow(event).getComponentForPath('Root Container.Path')
shape=shapeComp.getShape()
pathIterator = FlatteningPathIterator(shape.getPathIterator(AffineTransform()), 1)
graphics = system.gui.getParentWindow(event).graphics

segment = jarray.zeros(6,'d')
path = []

while not pathIterator.isDone():
    pathIterator.currentSegment(segment)
    path.append([segment[0], segment[1]])
    graphics.fillOval(int(segment[0]), int(segment[1]), 5, 5)
    pathIterator.next()

正如您在图片中看到的那样,这些点并非沿路径均匀分布。有没有办法让所有点之间的距离相同?

1 个答案:

答案 0 :(得分:0)

正如您在javadoc中可以找到的那样,flattness还有一个额外的属性。因此,您应该能够将第二个参数设置为某个特定值,并获得您期望的值。但是,如果所有情况都适用,我也不知道。

  

平坦度 - 允许线段用于近似弯曲段的最大距离偏离原始曲线上的任何点