首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >画布中带渐变的线条绘制

画布中带渐变的线条绘制
EN

Stack Overflow用户
提问于 2021-07-08 10:06:13
回答 1查看 54关注 0票数 0

我正在寻找一种解决方案,在画布上手绘一条带有渐变的线,如下所示:

我已经找到了这一点,但是渐变似乎被“锁定”在背景上,并且没有跟随这条线。

代码语言:javascript
运行
AI代码解释
复制
window.addEventListener('load', ()=>{
    
resize(); // Resizes the canvas once the window loads
document.addEventListener('mousedown', startPainting);
document.addEventListener('mouseup', stopPainting);
document.addEventListener('mousemove', sketch);
window.addEventListener('resize', resize);
});

const canvas = document.querySelector('#canvas');

const ctx = canvas.getContext('2d');

function resize(){
ctx.canvas.width = window.innerWidth;
ctx.canvas.height = window.innerHeight;
}

let coord = {x:0 , y:0};

let paint = false;

function getPosition(event){
coord.x = event.clientX - canvas.offsetLeft;
coord.y = event.clientY - canvas.offsetTop;
}
function startPainting(event){
paint = true;
getPosition(event);
}

function stopPainting(){
paint = false;
}

function sketch(event){
if (!paint) return;
ctx.beginPath();

ctx.lineWidth = 5;

ctx.lineCap = 'round';

var gradient = ctx.createLinearGradient(0, 0, 200, 0);
gradient.addColorStop(0.00, 'grey');
gradient.addColorStop(1 / 2, 'white');
gradient.addColorStop(1.00, 'grey');

ctx.strokeStyle = gradient;

ctx.moveTo(coord.x, coord.y);

getPosition(event);

ctx.lineTo(coord.x , coord.y);

ctx.stroke();
}

有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2021-07-09 15:40:09

我找到了一种方法:

代码语言:javascript
运行
AI代码解释
复制
var context = canvas.getContext("2d");
context.strokeStyle = '#000000';
context.fillStyle = '#000000';
context.beginPath();
context.moveTo(10, 10);
context.lineTo(50, 10);
context.lineWidth = 2;
context.stroke();

context.beginPath();
context.lineWidth = 15;
context.moveTo(10, 30);
context.lineTo(50, 30);
context.stroke();

context.beginPath();
context.moveTo(10, 50);
context.lineTo(50, 50);
context.lineWidth = 2;
context.stroke();

我用多条线和这些线上的模糊重建了梯度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68299560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档