编程语言
首页 > 编程语言> > 从java.awt.geom.GeneralPath中删除一个点/操作

从java.awt.geom.GeneralPath中删除一个点/操作

作者:互联网

有什么方法可以删除一般路径的点吗?
我画一个GeneralPath如下:

GeneralPath gp1=new GeneralPath();
gp1.moveTo(5,5);
gp1.lineTo(10,10);
gp1.lineto(10,30);
gp1.curveTo(2, 2, 7, 7, 5, 5);
gp1.closePath();

现在,我想删除特定的点/操作,例如lineto(10,10),而无需从new创建GeneralPath. (性能原因)

我会喜欢以下命令,但这不可用:

GeneralPath.removesegment(1);

附有一个屏幕截图,该屏幕截图可以解释我的愿望:-)我想删除GeneralPath中的蓝色标记点.

感谢和Regads

解决方法:

从其派生了GeneralPathPath2D.Float,不提供对其内部数据结构的访问,并且不允许您进行所需的操作.因此,除非您准备重新实现GeneralPath或避免访问限制,否则根本无法实现此目的.

另一方面,我怀疑性能应该不是很大的问题.我认为在大多数应用程序中,绘制路径要比在内存中处理路径花费更多的时间,因此从现有路径创建新路径应该不会花费太长时间.我将使用PathIterator周围的包装器来实现此目的,因此您可以使用Path2D.append将数据移动到新路径.包装器将只检测要删除的点,然后跳过这些点,将其他所有内容委派给原始路径的默认迭代器.

标签:pathgeometry,geometry,java
来源: https://codeday.me/bug/20191031/1974723.html