我有一个通用的线串几何图形,需要绘制螺旋线。线串本身可能会在某些点交叉,但是我只需要围绕外部螺旋形,而不是在基线本身绘制的孔中
。我认为我可以通过使用jsts.operation.buffer.BufferOp.bufferOp
( JSTS 2.0.3 )来进行尝试,如下所示:
撇开“缝合”部分,我对线性环中的坐标序列有疑问。我希望线性环的起始点(或结束点)在基本线串末端之一处有点“接近”,但是结果序列(导出为WKT并通过Postgis绘制)显示了一个在我的原始线串的右侧有些不正确的段(实际上,通过导航源,我确实注意到在计算缓冲区几何形状时调用了某个subgraph.getRightmostCoordinate()
,我认为这可能是相关的) 。这意味着我可能不依赖JSTS getExteriorRing()
方法在其缓冲区多边形上产生的序列,但是我需要导航和操作它。
具体来说,我需要:
数字1没什么。
2号,我以为我会得到序列中距缝合点的距离最接近预期半径(即尖顶之间的预期距离)的点,尽管这提示了可能在多个点之间进行选择的问题,这与第三个问题有关。
数字3听起来在计算上是昂贵且模棱两可的,因为我不确定甚至没有明确的方法可以在某些几何形状上定义“顺时针”(例如,围绕蜗牛壳形线串构建的缓冲区)。
我不需要将螺旋上的曲线弄圆(实际上,越锐利越好),与使用缓冲功能相比,解决此问题的方法可能更好。我倾向于使用它,因为我喜欢随着缓冲区半径的增加它如何处理不规则几何形状,如果缓冲区在另一部分与基本多边形相交,则会“吸收”较大多边形中的几何形状。