【问题标题】:Cut polygon with a line in Java [closed]在Java中用一条线切割多边形[关闭]
【发布时间】:2011-05-07 16:23:15
【问题描述】:

你能分享一些Java代码来用线或路径切割多边形吗?

【问题讨论】:

标签: java geometry


【解决方案1】:

我在为 Android 开发某种“页面卷曲”实现时正在解决这类问题。虽然代码不一定像人们希望的那样可读(我稍后会添加链接),但这里简要介绍一下我开始的想法。这可能延伸到路径,但我只处理一条线。

  1. 您有一组表示多边形的顶点。
  2. 给定一条切割线,您就有了一条坡度。
  3. 选择该切割线上的任意点。
  4. 根据信息 2. 和 3. 平移原始顶点,以便您从线中选择的点成为原点。然后旋转顶点,使切割线变为垂直。或者如果您更喜欢在 y 轴上进行测试,则为水平。
  5. 在之前的转换之后,您的原始切割线是 y 轴 x=0 处的设置。
  6. 此时计算交点相对容易,因为您所要做的就是检查创建一条线的两个顶点是否位于 y 轴的相对两侧。即,另一个具有正 x,另一个具有负 x。如果这条线与 x=0 交叉,计算确切的点并不难。它有 x=0,你只需要找到 y。
  7. 对这个交点进行你之前所做的精确变换,向后,你在原始多边形上有一个切割点。

肯定有更复杂的方法可以计算多边形的交点,但考虑到我正在处理的项目的性质 - 我真的很喜欢有一个更简化的环境。也请带上一粒盐,因为我在任何地方都没有找到这个,但它更像是我自己提出的一个想法。

And the code as promised.

【讨论】:

    猜你喜欢
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 2015-04-28
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多