任何人都可以给我提示或帮助我解决以下(希望也很有趣:-))问题。
我的 JavaProgramm 中有 2 个 GeneralPath,我想找出它们之间的带状线。
以下情况:
我有 2 个通用路径 A 和 B
A 是一个带有 3 个点的黄色三角形( moveto、lineto、lineto 、 close )
B(红色)是一个三角形,是 B-A 相减的结果:
B = new Area(gp_B); // General path B area object
A = new Area(gp_A); // General path A area object
B.subtract(A);
B相减后有4分。因此 A 和 B 与 GeneralPath 之间不再有交集,并且 A 没有任何点 匹配 GeneralPath B 的任何点。
如何找出它们之间的带状线?
为了更好地解释,我的示例被简化了。我的 GeneralPath A 和 B 还可以包含带有 Cubeto 的贝塞尔曲线:
问候 安德烈亚斯
最佳答案
我怀疑您是否会得到想要的答案,因此我首先给您一些提示来限制您任务的复杂性:
我会将您的任务简化为所谓的简单多边形。那是非自相交的多边形。一旦有效,您可以尝试扩展到贝塞尔路径。
要完成一般路径的任务,这是非常困难的(这是一篇需要 6 个月时间完成工作的硕士论文,还是一个客户愿意付费的 CAD 系统?)
如果您仍然想这样做:
开始手绘最复杂的场景:完全重叠(如木十字架)。
那谁来做减法呢?准备好工作了吗?减法有哪些限制(简单多边形与非简单多边形)
一种可能性:
获取减法的源代码,尝试理解并扩展执行切割的部分,以便它返回一个额外的条纹路径。
另一种解决方案:
A1:将旧物体与切割后的点进行比较。确定新引入的点。沿着路径上的一点前进,直到到达旧点。从另一个方向也这样做。连接两个方向。
对所有新点执行此操作,最后您会得到一个条纹列表,可能您必须通过删除重复行来进行清理。
关于java - 2 个 Java GeneralPath 之间的带状线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14672826/