18910140161

JavaScript-在HTML画布中线向量的左侧或右侧绘制不同宽度的线-堆栈溢出

顺晟科技

2022-10-19 13:26:16

28

我在做a的工作,我在画布上画一些线。过程很容易。但是现在我想在相同的坐标上画两条不同宽度的线,但是一条在实际线坐标的右边,一条在左边。为了更清楚,让我们看看这个例子 https://jsfiddle.net/am2222/2Oqhlfd9/

正如您所看到的,当我们画一条宽度为let的线时,它将扩展线周围的像素。我想要这样的东西:

如您所见,第二个示例仅在一侧扩展了行宽。我知道我可以通过在一边抵消线来得到这一点,但我不确定如何计算将在画布上工作。 PS: 我想在结尾得到这样的东西。两条不同风格的线,坐标相同


顺晟科技:

这只是一个在画布上移动和画线的问题。这里我画了三条线,其中两条用渐变,一条用黑色。

行的另一种选择是canvasrenderingcontext2d.fillrect(),其中定义x、y、width和height。这样就更容易计算行应该在哪里。

在本例中,我采用了另一种方法。我创建一个SVG图像,将它加载到一个image对象中,然后在画布上绘制它。SVG可能不正常地隐藏/在js中只能隐藏一个字符串。

我不知道它的性能如何,所以可能在您的上下文中不起作用--我只是发现它是解决问题的一种有趣的方法。

这也是我自己的方法

在行动中看到它 https://jsfiddle.net/am2222/6ZGH2UB0/41/

这可能会有帮助。我将渐变线的绘制功能化,并使用标志来绘制黑色下划线。

函数获取渐变的坐标、线条宽度和颜色。

这可能是您探索的一个起点。我可能错过了一些边缘情况,在这些情况下这个函数将会崩溃。

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航