任何人都可以给我一些提示或帮助我完成以下(希望也很有趣:-))问题。
我的JavaProgramm中有2个GeneralPath,我想找出它们之间的带状线。
以下情况:
我有2个GeneralPath A&乙
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& A之间没有交集。 B和GeneralPath了,A没有任何积分
匹配GeneralPath B的任何点。
如何找到它们之间的带状线?
我的例子被简化以便更好地解释。我的GeneralPath A& B还可以包含Beziercurves和Cubeto:
此致 安德烈亚斯
答案 0 :(得分:0)
我怀疑你会得到一个理想的答案,所以我首先给你一些tipp来限制你的任务的复杂性:
我会将你的任务减少到所谓的简单多边形。这是非自相交的多边形。一旦有效,你可以尝试扩展到bezier路径 为了完成一个通用路径的任务,这是非常有害的(这是一个硕士论文,你有6个月的工作时间,或一个客户愿意支付的CAD系统?)
如果您仍想这样做:
开始绘制最复杂的场景:完全重叠(如木制十字架)。
然后谁做减法?准备好了吗?减法有哪些限制(简单多边形与非简单多边形)
一种可能性:
获取减法的源代码,尝试理解并扩展执行剪切的部分,以便返回一个额外的条带路径。
另一种解决方案:
A1:将旧物体与切割后的点数进行比较。确定新引入的点。按照路径上的一个点,直到达到旧点。这样做也是另一个方向。两个方向相连。
为所有新点做到这一点,最后你得到一个条纹列表,可能你需要通过删除重复行进行清理。