canvas - HTML5 Canvas lineTo() 每行颜色
问题描述
我有一条有两点的线,它上升然后下降。我要做的是在渲染线条的下一部分时更改颜色。例如红色的lineTo,然后蓝色的lineTo。
这是我在小提琴中使用的示例,评论解释了我尝试过的内容: https ://jsfiddle.net/5utenwz3/9/
似乎当我在第 16 行更改颜色时,它也覆盖了第一部分的颜色(第 10 行)。是否可以在画布中独立于前一个片段为下一个片段着色?
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
context.beginPath();
context.moveTo(100, 150);
// set line color for first part (red)
context.strokeStyle = '#ff0000';
context.lineTo(250, 50);
context.lineWidth = 10;
context.stroke();
// set line color for next part (blue)
context.strokeStyle = '#063C75';
context.lineTo(450, 90);
context.stroke();
// expectation: first part (upward) line is red. second part (downward) is blue
// reality: whole line is blue
解决方案
似乎工作:
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
context.moveTo(100, 150);
// set line color for first part (red)
context.lineTo(250, 50);
context.lineWidth = 10;
context.strokeStyle = '#ff0000';
context.stroke();
// set line color for next part (blue)
context.beginPath();
context.moveTo(250, 50);
context.lineTo(450, 90);
context.lineWidth = 10;
context.strokeStyle = '#063C75';
context.stroke();
推荐阅读
- r - 如何用 stringr 中的 str_replace 替换插入符号
- docker - 有人能告诉我如何使用 .git-ci.yml 文件在 gcloud kubernetes 集群上部署 kaniko 构建的 docker 映像吗?
- azure-devops - 将来自 Azure devops 的 jacoco 代码覆盖率报告集成到代码气候
- c - 如何修复 GDB 找不到文件:“../sysdeps/unix/sysv/linux/raise.c:50”
- ruby-on-rails - 让国家和城市进入铁路
- c++ - 动态迭代静态信息
- java - 使用自定义类作为 HashMap 中的键,但无法搜索键
- r - readLines 跳过第一行并将数据作为表/数据框读取
- python-3.x - 跨数据框匹配 pandas 列值和标题
- java - 如果键在 Java HashMap 中包含相同的子字符串,则获取所有值