gpt4 book ai didi

html - Canvas LineTo 中的多色

转载 作者:太空狗 更新时间:2023-10-29 15:42:23 25 4
gpt4 key购买 nike

function TrackGraphic(model, canvas) {
//TrackModel
this._model = model;
this.draw = function(context) {
var dx = Math.cos(this._model.startAngle + Math.PI / 2);
var dy = Math.sin(this._model.startAngle + Math.PI / 2);

context.beginPath();
context.lineWidth = 10;
context.moveTo(this._model.offsetX, this._model.offsetY);
//CurvePoint
var p;
for (var d = 0; d < this._model.length; d += 1) {
if (d > 1000) {

console.log('2F2F2F');
context.strokeStyle = "#2F2F2F" //"rgb(255,165,0)"; //0x2F2F2F

} else {
context.strokeStyle = "#FFF" //"rgb(255,165,0)"; //0x2F2F2F;
console.log('FFFFFF');


}
p = this._model.getTrackPoint(d);
context.lineTo(this._model.offsetX + p.x, this._model.offsetY + p.y)
}
context.stroke();
}
}​

上面的代码在 Canvas 中生成线条。线是一种颜色,我想在开始时或在任何市政颜色都不同。我的代码不起作用:(为什么?。如何解决?

最佳答案

在构建路径时更改颜色不会执行任何操作。当调用 stroke() 时,颜色仅应用一次,因此您设置的最后一个 strokeStyle 将是整条线的颜色。

beginPath()moveTo()lineTo() 等只创建路径,路径本身没有颜色。抚摸或填充该路径只会应用一种颜色。

如果你想要一条有多种颜色的路径,你必须做以下两件事之一:

开始一条路径,画一些线条,用一种颜色描边,然后开始另一条将用不同颜色描边的路径。换句话说:

// make a red line segment
ctx.beginPath();
ctx.moveTo(x, y);
ctx.lineTo(x, y);
ctx.strokeStyle = 'red';
ctx.stroke();
// Begin a new path and make this line segment green
ctx.beginPath();
ctx.moveTo(x, y);
ctx.lineTo(x, y);
ctx.strokeStyle = 'green';
ctx.stroke();
//etc

或者,根据你在做什么,你也可以使用 linearGradient

关于html - Canvas LineTo 中的多色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10572083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com