在多边形内绘制横截面线

时间:2013-12-20 14:14:29

标签: c++ geometry

我目前有一个由多个点组成的多边形列表。第一个是横截面的外多边形,其他的是第一个多边形内的形状。

我试图想办法在外部多边形内部绘制横截面线(而不是在内部多边形内部),但我很难想到一种方法来做到这一点。有没有人有任何建议?

我正在用C ++编写,使用API​​可以让我轻松地在点之间绘制线条。我正在创建的绘图是3D,我猜这将使事情变得更容易。

1 个答案:

答案 0 :(得分:1)

您没有提及您的操作系统或您的开发环境,因此不清楚是否有其他解决方案。但是,回到基础,或许考虑Painter's Algorithm并且不担心根据现有内容裁剪或裁剪您的内容 - 只需执行以下操作:

  1. 在整个图像上绘制横截面线。
  2. 使用黑色填充绘制外部多边形的反转(这将删除外部多边形外部的横截面线。
  3. 使用黑色填充绘制内部形状(这将删除内部多边形内部的横截面线)。
  4. Wiki页面显示了这个例子:

    painters

    如果您正在使用Windows并且可以使用Direct2D(或Direct3D),则可以通过使用自定义画笔绘制形状进行填充来更轻松地完成此操作。