1
可以使用什么算法来歪斜多边形?
像歪斜如下:多边形歪斜算法
____
| _|
|__|
到右下角将产生
____
| \
| \
\ _|
\__|
它像一个影子投。我考虑把每条线都做成平行四边形,然后将它和它的相应线做成偏斜位置,然后将所有这些结合起来,但这看起来有点粗暴,需要花费很多时间。
有没有更好的算法呢?如果需要,我已经有了所有多边形布尔运算的代码。
可以使用什么算法来歪斜多边形?
像歪斜如下:多边形歪斜算法
____
| _|
|__|
到右下角将产生
____
| \
| \
\ _|
\__|
它像一个影子投。我考虑把每条线都做成平行四边形,然后将它和它的相应线做成偏斜位置,然后将所有这些结合起来,但这看起来有点粗暴,需要花费很多时间。
有没有更好的算法呢?如果需要,我已经有了所有多边形布尔运算的代码。
我觉得这个算法我只是想起来会做到这一点:
分类每一行的多边形它是否是更加面朝左上或面临-右下角(或精确地沿着skew-方向线)。
然后,对每个顶点:
如果它连接了一条左上角和右下角线,然后将它分割成两个顶点,一个顶点和一个顶点。
此步骤可能会导致自相交(例如,如果顶点是凹面并面向左下角),在这种情况下,丢弃两个顶点并将两个现有线与顶点交叉。
我不明白自相交避免步骤 – Dani
如果你不做额外的部分,你会得到一个三角形的自交在一些凹面。所有你需要做的就是“填充洞”,这恰好是交叉路口。我建议实施算法的其余部分,然后您会看到问题和解决方案。 –
我实现了这一点,它的工作非常快速。关于自我交集,我所需要做的就是绘制带有“正”卷绕的三角形,而不是默认的“奇数”卷绕。 – Dani