Math 根据矩形裁剪多边形

Math 根据矩形裁剪多边形,math,svg,polygon,computational-geometry,raster,Math,Svg,Polygon,Computational Geometry,Raster,今天我有一个(简单的)渲染问题。我当前的项目从文件中获取数据以生成SVG文件。由于SVG格式,将事物绘制为多边形非常容易,但我有一个问题:我的一些多边形在页面内外(这意味着它们的某些部分会显示,而其余部分则不会显示,因为它们超出了显示限制)。为了优化最终的SVG文件,我需要将多边形简化为更简单的形式 将灰色矩形视为我的页面。 考虑绿色多边形作为我实际绘制的东西。 第一张图片显示了我实际拥有的东西,而第二张图片显示了我想要的最终结果 首先,我想将多边形简化为简单的三角形,以便只在显示范围内绘制点

今天我有一个(简单的)渲染问题。我当前的项目从文件中获取数据以生成SVG文件。由于SVG格式,将事物绘制为多边形非常容易,但我有一个问题:我的一些多边形在页面内外(这意味着它们的某些部分会显示,而其余部分则不会显示,因为它们超出了显示限制)。为了优化最终的SVG文件,我需要将多边形简化为更简单的形式

将灰色矩形视为我的页面。 考虑绿色多边形作为我实际绘制的东西。 第一张图片显示了我实际拥有的东西,而第二张图片显示了我想要的最终结果

首先,我想将多边形简化为简单的三角形,以便只在显示范围内绘制点。但我认为存在一个更简单的解决方案。。。如果你有,请毫不犹豫地与我分享:)

编辑:

我还有一个棘手的案子要处理:

多谢各位

  • 用矩形剪裁多边形。我们把这个问题简化为
  • 用直线剪裁多边形。我们将此简化为一个更简单的问题:
  • 用直线剪裁多边形的一条边。这真的很公平
  • 查找线段与直线(如果存在)的交点。
    最后一个问题很简单,考虑到你的线条是垂直的还是水平的。这就足够了吗?

    所以你真正想要的是多边形裁剪,而不是“简化为更简单的形式”。实际上,第二种形式并不是那么简单,它只是在一个矩形上裁剪。如果您将标题编辑为“根据矩形剪裁多边形”或类似内容,您可能会得到所需的注意。不确定这将如何影响性能,但会有帮助吗?@GeorgeProfenza mask不需要,因为页面边界以外的所有内容都不会显示。。。添加一个掩码会得到完全相同的结果,但会增加很多计算量。如果我们这样看的话,非常简单。。。这提醒了我我忘了谈论一个案例,让我编辑我的问题(顺便感谢你的快速回答)A.k.A.Southerland Hodgman算法: