Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html5 canvas 如何在画布中生成自定义矢量图形?_Html5 Canvas - Fatal编程技术网

Html5 canvas 如何在画布中生成自定义矢量图形?

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 <=

我想创建一个自定义参数化函数来显示向量曲线,比如贝塞尔曲线。因为它是参数化的,所以我无法计算每个像素上的曲线。如何显示这样的曲线

这是我试图创建一条不规则的Bézier曲线(宽度不断变化)。这是一系列半径不同的圆

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]:请澄清为什么需要自定义函数?是因为曲线的宽度会沿其长度变化还是因为其他原因?在这种特殊情况下,不规则笔划模拟墨水。但我的问题远远超出此范围,我打算创建许多其他类似的函数。