javascript - 如何以等距方式在曲线上使用setLineDash?

标签 javascript html html5-canvas

我想在正弦波上画一条虚线。我有一个代表整个正弦波的 x 和 y 值数组。我使用 moveTo 和 lineTo 方法绘制了正弦波。

我知道 setLineDash()。但是,我想确保虚线彼此等距,而不管 x 和 y 值如何。如果我在彼此靠近的 2 个点之间使用 setLineDash() 方法,我将以实线着陆。

最佳答案

只要您等到最后一次 lineTo() 调用之后才对路径进行描边,每个破折号之间的间距将是均匀的。

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

for (let x = 0; x < canvas.width / 8; x+=.1) {
  const y = (Math.sin(x) * 60) + (canvas.height / 2);
  ctx.lineTo(x * 8, y);
}

ctx.setLineDash([4, 4]);
ctx.stroke();
document.body.appendChild(canvas);

关于javascript - 如何以等距方式在曲线上使用setLineDash?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57583824/

相关文章:

javascript - 如何在没有 jquery 的情况下向此代码添加淡入和淡出过渡

javascript - DIV 意外改变形状

javascript - 为什么文本没有像应有的那样更改为 'Testinghi'?

JavaScript 数组值到变量

javascript - 如何在处理请求时显示正在加载的 gif?

javascript - redux 文档对于 mapStateToProps 意味着什么?

javascript - 如何识别类是否存在于html中?

c# - 使用 HtmlAgilityPack 从已解析的 HTML 中删除所有类和 ID

javascript - 如何正确录制 MediaStream?

javascript - 如何检查电子邮件是否使用 JavaScript 打开?