为了账号安全,请及时绑定邮箱和手机立即绑定

如何为画布HTML的文本和背景设置不同的颜色?

如何为画布HTML的文本和背景设置不同的颜色?

隔江千里 2022-08-18 16:38:32
我正在使用画布来创建一个动态的幸运之轮。每当我添加新项目时,它都会均匀地重新计算空格。我能够使用画布来实现它。我知道这将我想要的颜色设置为正在创建的切片。我还想在每个切片中放入一些文本。但是,我无法找到一种方法来使画布以与切片颜色不同的颜色绘制文本。这可能吗?canvas.fillStyle = somecolor;这是我正在做的事情  const drawSlice = useCallback((deg: number, color: string, text:string) => {    if (!canvasRef.current) {        return;      }      const canvas: HTMLCanvasElement = canvasRef.current;      const ctx = canvas.getContext("2d");      const width = canvas.width;      const center = width/2;      const sliceDeg = 360 / wheelItems.length;      if (ctx) {        ctx.beginPath();        ctx.fillStyle = color;        ctx.fillText(text, center, deg2rad(deg));        ctx.moveTo(center, center);        ctx.arc(center, center, width / 2, deg2rad(deg), deg2rad(deg + sliceDeg));        ctx.lineTo(center, center);        ctx.fill();      }  },[wheelItems.length])
查看完整描述

1 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

如果我正确理解了您的问题,您可能希望在绘制文本的那一刻和绘制切片的那一刻之间进行更改。ctx.fillStyle


if (ctx) {

    ctx.beginPath();

    ctx.fillStyle = color;

    ctx.fillText(text, center, deg2rad(deg));


    // here :

    ctx.fillStyle = color2;

    ctx.moveTo(center, center);

    ctx.arc(center, center, width / 2, deg2rad(deg), deg2rad(deg + sliceDeg));

    ctx.lineTo(center, center);

    ctx.fill();

}

您可以随时更改,次数不限。ctx.fillStyle


查看完整回答
反对 回复 2022-08-18
  • 1 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信