我有一条多段线,我想沿着这些点在一个方向上进行可变宽度偏移。我该怎么做?对于折线,我只需要支持直线,不需要支持曲线或圆弧。
多段线可以是闭合的,也可以是开放的,并且偏移仅在一个方向上——为了便于讨论,我们假设它在左侧方向。
上图
几乎概括了我想要做的事情;唯一的问题是,它在整个折线中是统一的偏移,因此我想要可变的偏移。
这个问题比乍看起来要棘手得多。有一些库并没有完全做到这一点。让我们一一分析一下。
Clipper 可以处理多边形缓冲区,这意味着在两个方向上创建偏移线,最后围绕该线形成多边形。所以不适合我的需求。此外,它不处理变量缓冲。
快船队开发者在论坛上对此进行了一些讨论,但遗憾的是没有任何结果。
NetTopologySuite有一个VariableBuffer类,它可以处理可变偏移量。但不幸的是,NetTopologySuite 只能处理多边形缓冲(将一条线转换为包含该线的多边形),而不能处理折线偏移(其中折线在单个方向上偏移)。
另外,似乎使用上述方法 NetTopologySuite 会在两个方向上“炸毁”多边形,并且需要设置BufferParameters.IsSingleSided=true以便具有单边多边形偏移,但目前还不清楚如何将其与 结合使用VariableBuffer。
Cavalier countours与大多数库不同,它只能在一个方向上进行折线偏移(这就是我想要的),这样就不会形成多边形。这就是我想要的,但不幸的是,它不能进行可变宽度偏移。
似乎没有简单的方法可以做到这一点。有什么想法可以做到这一点吗?
欢迎任何基于 C#、C++ 或 C 库构建的解决方案。
我正在尝试运行一个旧的Clipper应用程序.它在Win 7 32bit上运行良好,但是当我尝试使用DOSBox 0.74时崩溃时出现以下错误:
Exit to error: CPU_SetSegGeneral: Stack segment zero
运行DOSBox时是否有一些我忘记设置的设置?
我需要能够在DOSBox中运行这个应用程序,因为它似乎只是可以在任何Win 7上运行的便携式解决方案,无论是32位还是64位.
如果对此问题没有明显的解决方案,也许您可以告诉我在Win 7 64位家庭版上运行Clipper 5.3应用程序有哪些替代方案?
编辑: 我尝试在Win 7 Home 64位上使用相同的结果.我能做什么?
嗨,我是扑扑的新手,并试图从运球的 Shakuro 创造这个设计。我在尝试为剪刀创建高程时遇到了麻烦,因为整个矩形都在获得阴影,而不仅仅是剪刀。
有没有办法在剪刀下放置高程或类似阴影的效果?