1

谁能给我一个提示或帮助我解决以下问题(希望也很有趣:-))问题。

我的 JavaProgramm 中有 2 个 GeneralPath,我想找出它们之间的带状线。

以下情况:

我有 2 个 GeneralPath A 和 B

A 是一个带有 3 个点的黄色三角形( moveto、lineto、lineto、close )

B(红色)是一个三角形,是减法 BA 的结果:

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 的 Beziercurves:

在此处输入图像描述

问候安德烈亚斯

4

1 回答 1

0

我怀疑您是否会得到想要的答案,所以我首先给您一些提示以限制您的任务的复杂性:

我会将您的任务简化为所谓的简单多边形。那是非自相交的多边形。一旦可行,您可以尝试扩展到贝塞尔路径。
要完成一般路径的任务,这是非常苛刻的(这是您有 6 个月工作时间的硕士论文,还是客户愿意支付费用的 CAD 系统?)

如果您仍然想这样做:
开始手绘最复杂的场景:完全重叠(如木制十字架)。

那么谁做减法呢?准备好工作了吗?减法有哪些限制(简单多边形与非简单多边形)

一种可能性

获取减法的源代码,尝试理解并扩展执行切割的部分,使其返回额外的条带路径。

另一种解决方案:

A1:将旧物体与切割后的点进行比较。确定新引入的点。跟随路径上的一点,直到到达旧点。在另一个方向上也这样做。连接两个方向。

对所有新点都这样做,最后你会得到一个条纹列表,可能你必须通过删除重复线来清理。

于 2013-02-03T13:38:21.387 回答