如何将java路径分成相等的部分

如何将java路径分成相等的部分,java,math,jython,java-2d,bezier,Java,Math,Jython,Java 2d,Bezier,我正在尝试将一个普通形状拆分为点列表,这样我们就可以根据一定的百分比沿路径移动某个精灵 现在,我可以将形状拆分为多个点: 这是由以下代码生成的: shapeComp = system.gui.getParentWindow(event).getComponentForPath('Root Container.Path') shape=shapeComp.getShape() pathIterator = FlatteningPathIterator(shape.getPathIterator(

我正在尝试将一个普通形状拆分为点列表,这样我们就可以根据一定的百分比沿路径移动某个精灵

现在,我可以将形状拆分为多个点:

这是由以下代码生成的:

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()
如图所示,点沿路径分布不均匀。有没有办法使所有点之间的距离相同?

正如您可以在中找到的那样,平面度还有一个附加属性。因此,您应该能够将第二个参数设置为某个特定的值,从而得到您期望的结果。然而,我不知道这是否适用于所有情况

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


确实存在最大距离,但我需要的是两点之间的精确距离。所以我会得到相同长度的片段。你知道这是怎么可能的吗?哦,我明白了,很抱歉,这在默认实现中是不可能的。为此,您必须自己实现PathIterator接口。