我该如何在Java中绘制Bézier路径的控制点?

3
我已经创建了一条贝塞尔曲线路径,并且可以正常绘制路径。但我不知道如何将控制点与路径一起绘制出来。这是否可能,还是我必须在另一个数据结构中跟踪它们?
更新:我想绘制控制点的原因是,我将让用户使用控制点上的手柄编辑曲线。
我正在使用以下代码创建路径:
Path2D.Double path = new Path2D.Double();
path.moveTo(0,0);
path.curveTo(5, 6, 23, 12, 45, 54);
path.curveTo(34, 23, 12, 34, 2, 3);

使用以下方式进行绘制:

g2.draw(path);

我已经按照trashgod的建议使用PathIterator进行了测试,但如果我想让用户能够编辑控制点,那么用这种方式管理曲线将会很困难。

1个回答

2
您可以获取一个PathIterator,以引用Shape中每个点的坐标数组。在编辑时,您可以使用它们来绘制调整大小的手柄和控制点沿着曲线。这里是使用自定义曲线实现进行编辑的示例

你关于PathIterator的想法是正确的,但我认为我会改变我的表示方式,因为我想让用户编辑曲线,而仅使用Path表示将很难处理。 - Jonas
2
为什么不同时保留“路径”以方便渲染和派生几何图形以方便编辑?当添加或删除点时,您需要刷新后者。 - trashgod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接