Html5 canvas 如何在画布中生成自定义矢量图形?
我想创建一个自定义参数化函数来显示向量曲线,比如贝塞尔曲线。因为它是参数化的,所以我无法计算每个像素上的曲线。如何显示这样的曲线 这是我试图创建一条不规则的Bézier曲线(宽度不断变化)。这是一系列半径不同的圆Html5 canvas 如何在画布中生成自定义矢量图形?,html5-canvas,Html5 Canvas,我想创建一个自定义参数化函数来显示向量曲线,比如贝塞尔曲线。因为它是参数化的,所以我无法计算每个像素上的曲线。如何显示这样的曲线 这是我试图创建一条不规则的Bézier曲线(宽度不断变化)。这是一系列半径不同的圆 CanvasRenderingContext2D.prototype.bezierInk = function(x0, y0, x1, y1, x2, y2, x3, y3, size, steps, random = 1.0) { for (var i = 0; i <=
CanvasRenderingContext2D.prototype.bezierInk = function(x0, y0, x1, y1, x2, y2, x3, y3, size, steps, random = 1.0) {
for (var i = 0; i <= 1; i += 1 / steps) {
var radius = size * (1 - random * Math.random());
var x = x0 * (1 - i) * (1 - i) * (1 - i) + 3 * x1 * i *(1 - i) * (1 - i) + 3 * x2 * i * i * (1 - i) + x3 * i * i * i; // Bézier
var y = y0 * (1 - i) * (1 - i) * (1 - i) + 3 * y1 * i *(1 - i) * (1 - i) + 3 * y2 * i * i * (1 - i) + y3 * i * i * i; // Bézier
this.moveTo(x + radius, y);
this.arc(x, y, radius, 0, 2 * Math.PI);
}
this.fill();
this.moveTo(x3, y3);
}
CanvasRenderingContext2D.prototype.bezierInk=函数(x0、y0、x1、y1、x2、y2、x3、y3,大小、步长,随机=1.0){
对于(var i=0;我检查此链接可能有用[1]:请澄清为什么需要自定义函数?是因为曲线的宽度会沿其长度变化还是因为其他原因?在这种特殊情况下,不规则笔划模拟墨水。但我的问题远远超出此范围,我打算创建许多其他类似的函数。