Java2D - morph/interpolate 两个形状

Java2D - morph/interpolate two Shapes

是否有某种方法(库或算法)可用于在 java.awt.Shape 或其路径迭代器的两个实例之间进行插值?例如,要在矩形和椭圆之间无缝过渡?或者更一般的情况 Path2D.

  1. SwingX项目中有classMorphing2D。然而,我的初步测试表明,它仅限于不包含 SEG_MOVETO 元素的形状,而且它不会在两个形状之间进行任何奇特的对齐,因此过渡并不总是理想的。

  2. 有一个软件 ReportMill 包含 Morphing2D。经过调查,该公司非法复制原始 SwingX 代码并将其粘贴到他们的闭源专有产品中。 (LGPL 违规已提交给 GNU)

  3. 我发现 an example 的 JavaFX 似乎支持移动到命令。这可能已包含在 JFX 1.x 中,但似乎不是 JFX 2.x 的一部分。在内部,使用了与 com.sun.javafx.geom.* 之间的翻译,似乎与标准 java.awt.geom.* 有 98% 的兼容性,因此改编很容易。

编辑: My backport 从 JFX 到 Java2D 有效。