【发布时间】:2018-09-13 05:57:42
【问题描述】:
我在使用 Canvas 渐变 时遇到问题,它只显示我在 gradient.__addColorStop__(offset,color) 方法中设置的最后一种颜色。
例如,这是我更好理解的一段代码:
let canvas = document.getElementById('canvas');
let ctx = canvas.getContext('2d');
let gradient = ctx.createLinearGradient(10, 90, 200, 90);
gradient.addColorStop(1 / 10, "black");
gradient.addColorStop(1 / 5, "yellow");
gradient.addColorStop(1 / 1, "red");
let circle1 = new Circle(300, 250, 50, gradient);
circle1.draw(ctx);
该代码仅绘制一个红色圆圈,并对填充渐变的任何形状执行相同操作,如果我评论此行gradient.addColorStop(1/1,"red");然后画布绘制一个黄色圆圈,只读取最后一种颜色。我在 jsfiddle.net 上尝试了相同的代码并且运行良好,我不知道为什么我的脚本无法运行。
PD:Circle 是我定义的一个 js 对象,可以完美运行
对不起我的英语,如果帖子听不懂请告诉我,这是我在 StackOverflow 上的第一篇帖子。 谢谢!
【问题讨论】:
-
您需要定义圆所在位置的渐变(X=275 到 X=325)。X=200 时已经达到红色(停止 3),因为渐变是从 x 定义的=10 到 x=200
标签: javascript html5-canvas linear-gradients