java - 2 Java GeneralPath之间的带状线

原文 标签 java geometry computational-geometry

任何人都可以给我提示或帮助我解决以下问题(希望也很有趣:-))。

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

以下情况:

我有2个GeneralPath 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的Beziercurves:



问候
安德烈亚斯

最佳答案

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

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

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

那谁减去呢?准备好了吗?减法的局限性(简单多边形与非简单多边形)

一种可能性:

获取减法的源代码,尝试理解并扩展执行裁切的部分,以使其返回附加的条纹路径。

另一个解决方案:

A1:将旧物体与切割后的点进行比较。确定新引入的点。沿着路径上的一个点,直到到达一个旧点。也可以朝另一个方向做。双向连接。

对所有新点执行此操作,最后得到一个条纹列表,可能您必须通过删除重复的行来进行清理。

关于java - 2 Java GeneralPath之间的带状线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14672826/

相关文章:

java - 如何通过示例使用 hibernate 查询来搜索ID?

java - 优化 Collat​​z 序列

java - 用于集成测试的多模块 maven jacoco 设置

将边集合转换为三角形集合的算法

java - 如何从传感器类中的方法获取机器人的方向?

java - 为什么我的SSS三角求解器给出完全错误的答案?

geometry - 多边形之间的交点作为线剪

algorithm - 检查碰撞圆

c++ - 如何计算纵横角

c++ - 带弧的多边形内的多边形