Canvas 在HTML5上绘制不同宽度的贝塞尔曲线<;帆布>;使用Javascript

Canvas 在HTML5上绘制不同宽度的贝塞尔曲线<;帆布>;使用Javascript,canvas,html5-canvas,Canvas,Html5 Canvas,是否有可能以任何方式改变线宽,如基于画布的绘图应用程序的图像中的线宽?由于线宽没有类似渐变的值(不同的起点-不同的终点),我正在寻找尽可能接近下图的最佳方法 HTML5API不提供如此复杂的功能 您最好的选择是使用您需要的任何算法编写您自己的线像素渲染器。但是,呈现程序可能有点慢,因为逻辑必须在纯Javascript中实现 在这种情况下,问题变得更一般,“如何在位图上绘制不同宽度的贝塞尔曲线”,Javascript只是该算法的一个实现 例如: 我还建议您研究像Inkscape这样的开源绘图应用

是否有可能以任何方式改变线宽,如基于画布的绘图应用程序的图像中的线宽?由于线宽没有类似渐变的值(不同的起点-不同的终点),我正在寻找尽可能接近下图的最佳方法

HTML5
API不提供如此复杂的功能

您最好的选择是使用您需要的任何算法编写您自己的线像素渲染器。但是,呈现程序可能有点慢,因为逻辑必须在纯Javascript中实现

在这种情况下,问题变得更一般,“如何在位图上绘制不同宽度的贝塞尔曲线”,Javascript
只是该算法的一个实现

例如:

我还建议您研究像Inkscape这样的开源绘图应用程序的源代码。HTML5
API不提供如此复杂的功能

您最好的选择是使用您需要的任何算法编写您自己的线像素渲染器。但是,呈现程序可能有点慢,因为逻辑必须在纯Javascript中实现

在这种情况下,问题变得更一般,“如何在位图上绘制不同宽度的贝塞尔曲线”,Javascript
只是该算法的一个实现

例如:


我还建议您研究Inkscape等开源绘图应用程序的源代码,了解它们是如何做到这一点的。

我认为不可能使用任何直接方法。你需要通过一个JS程序来实现它。我在一个类似的主题中发现了这种方法,老实说,没有走得太远:稍微调整@Zettam的小提琴:稍微平滑一点。我认为不可能使用任何直接的方法。你需要通过一个JS程序来实现它。我在一个类似的主题中发现了这种方法,坦白地说,并没有走得太远:稍微调整@Zettam的小提琴:稍微平滑一点。