【问题标题】:How to split a java 2dpath in equal parts如何将java 2dpath分成相等的部分
【发布时间】:2018-05-24 20:09:30
【问题描述】:

我正在尝试将通用形状拆分为点列表,以便我们可以根据特定百分比沿路径移动特定精灵。

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

这是由以下代码生成的:

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()

正如您在图片上看到的,这些点沿路径分布不均。有没有办法让所有点之间的距离都一样?

【问题讨论】:

    标签: java math jython java-2d bezier


    【解决方案1】:

    您可以在javadoc 中找到平坦度的附加属性。因此,您应该能够将第二个参数设置为某个特定值,以获得您期望的结果。但是,如果我不知道所有情况都是如此。

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

    【讨论】:

    • 确实有一个最大距离,但我需要的是两点之间的精确距离。所以我会得到相同长度的片段。你知道这怎么可能吗?
    • 哦,我明白了,抱歉,这在默认实现中是不可能的。为此,您必须自己实现 PathIterator 接口。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多