有没有办法删除一条普通路径的点? 我画了一个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中的蓝色标记点。
谢谢并注册
答案 0 :(得分:4)
Path2D.Float
派生的 GeneralPath
不提供对其内部数据结构的访问,并且不允许您想要的操作类型。因此,除非您准备重新实现GeneralPath
或规避访问限制,否则根本无法实现此目的。
另一方面,我怀疑表演应该是一个很大的问题。我认为在大多数应用程序中,绘制路径比在内存中操作它们需要更多时间,因此从现有路径创建新路径不应该花费太长时间。我使用PathIterator
周围的包装器实现了这一点,因此您可以使用Path2D.append
将数据移动到新路径。包装器只会检测您要删除的点并跳过这些点,将其他所有内容委托给原始路径的默认迭代器。