相对于矩形裁剪多边形

发布于 2024-11-14 11:25:28 字数 637 浏览 4 评论 0原文

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

将灰色矩形视为我的页面。 将绿色多边形视为我实际绘制的东西。

第一张图片向您展示了我实际拥有的东西,而第二张图片向您展示了我想要的最终结果。

我现在拥有的多边形和页面 我需要的多边形和页面 首先,我想将多边形缩小为简单的三角形,以便仅在显示限制内绘制点。但我认为存在一个更简单的解决方案......如果你有它,请毫不犹豫地与我分享:)

编辑:

我也有这个棘手的情况要处理:

在此处输入图像描述在此处输入图像描述

谢谢。

today I have a (simple) rendering problem for you. My current project gets datas from a file to generate a SVG file. Drawing things as polygon is pretty easy thanks to the SVG format, but I have a single problem: some of my polygons are in AND out of the page (meaning that some parts of them are displayed while the rest is not shown due to the fact they are out of the display limit). In order to optimize the final SVG file I need to reduce my polygon to a simpler form.

Consider the grey rectangle as my page.
Consider the green polygon as the thing I actually draw.

First picture shows you the thing that I actually have while the second picture shows you the final result I want to have.

Polygon and page as I have them now
Polygon and page as I need to have them
First I thought to reduce my polygon in simple triangles in order to only draw points in the display limits. But I think a simpler solution exists... if you have it do not hesitate to share it with me :)

EDIT:

I have this tricky case to handle as well :

enter image description hereenter image description here

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

野却迷人 2024-11-21 11:25:28
  1. 用矩形裁剪多边形。我们将这个问题简化为
  2. 用一条线剪裁一个多边形。我们将其简化为一个更简单的问题:
  3. 用一条线剪裁多边形的一条边。这真的只是
  4. 查找线段与直线的交点(如果存在)。

考虑到您的线条是垂直的还是水平的,最后一个问题非常简单。够了吗?

  1. Clipping a polygon with a rectangle. We reduce this problem to
  2. clipping a polygon with a line. We reduce this to an even simpler problem:
  3. clipping one edge of a polygon with a line. Which is really just
  4. Finding the intersection of a line segment with a line (if it exists).

The last problem is pretty easy, considering that your lines are vertical or horizontal. Is that enough?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文