【问题标题】:Drawing cross section lines within a polygon在多边形内绘制横截面线
【发布时间】:2013-12-20 22:22:51
【问题描述】:

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

我正在想办法在外部多边形内部(而不是内部多边形内部)绘制横截面线,但我正在努力想办法做到这一点。有人有什么建议吗?

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

【问题讨论】:

    标签: c++ geometry


    【解决方案1】:

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

    1. 在整个图像上绘制横截面线。
    2. 用黑色填充绘制外部多边形的反转(这将删除外部多边形外部的横截面线。
    3. 用黑色填充绘制内部形状(这将删除内部多边形内部的横截面线)。

    Wiki 页面显示了此示例:

    如果您使用的是 Windows 并且可以使用 Direct2D(或 Direct3D),则可以通过使用自定义画笔绘制形状以进行填充,从而实现更简单的方法。

    【讨论】:

    • 嗯,这是一个有趣的建议。不过,使用更大规模的绘图可能会非常棘手(也没有背景)。不过,我会进一步阅读它,看看我是否可以让它工作(我在 Windows 上,但不幸的是我没有使用 Direct2D/3D)。
    • @Incredidave 好的,它是 3D 绘图机制的基础,其中有一个深度缓冲区的概念,并且每个像素(技术上 片段)在绘图之前都经过测试以检查它在现有内容的“前面”。不过,您可能正在重新发明轮子。
    • 因此,虽然我认为这在我的特定情况下不起作用,但它是我提出的问题的正确答案。我会标记你以帮助将来遇到此问题的任何人。
    猜你喜欢
    • 2012-03-19
    • 2018-08-19
    • 2013-09-26
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 2015-02-05
    相关资源
    最近更新 更多