如何绘制一条沿其厚度变化的曲线?

时间:2020-03-05 18:47:17  来源:igfitidea点击:

我正在使用Java(JPen库中的岩石)从平板电脑捕获数据,并希望能够以更自然的方式绘制笔触。

目前,我将笔划绘制为直线段,每个直线段具有不同的"笔划"厚度。

Java的图形库中必须有一些东西可以让我更有效地做到这一点。

正确的?

解决方案

回答

PostScript RIP通常将圆转换为曲线,并将曲线转换为一系列直线段。段数取决于平坦度设置,该设置默认为适合于光栅显示分辨率的一种。

粗线段或者粗线段可以转换为皮包骨头的多边形。

回答

我从未做过,但是我们可以尝试以下几种方法。首先,我们可以实现一个自定义的Stroke,它可以创建瘦梯形。端盖的宽度将是端点压力的函数。如果可行,我们可以尝试使用Bezier曲线形成"弯曲的梯形",使线段看起来更自然。我们也许可以使用QuadCurve2D来提供帮助。

回答

至少有一个更通用的解决方案。该功能已基于最新算法添加到Inkscape中。在某些屏幕截图中,我们可以看到它直接应用于问题。例如,它可以沿路径挤压任何形状的画笔以模仿画笔,但是我们必须从第一个链接中的算法或者Inkscape源将其移植到Java。另外,它已包含在专利中,因此我们必须根据GPL(作者明确授予许可)发布代码或者购买专利许可。