gpt4 book ai didi

javascript - HTML5 Canvas,沿着路径的等距点

转载 作者:行者123 更新时间:2023-12-03 07:09:52 25 4
gpt4 key购买 nike

我是第一次尝试 HTML5 Canvas,因为我需要创建一条弯曲的路径,如下所示:

enter image description here

现在图像显示的是第一种情况,它只是由几条贝塞尔曲线组成的实心笔画路径。我想要实现的是以某种方式点缀路径,然后突出显示路径的特定部分以说明沿路径的进度(这是针对游戏的)。

除了对贝塞尔曲线二分进行数学计算之外,沿着我数学计算的路径绘制点(我读过一些论文,这些论文似乎展示了如何有效地做到这一点,但这似乎有点矫枉过正),我想知道如果有一些简单的方法可以达到这种效果。谢谢!

编辑:我找到了这个答案,dotted stroke in <canvas>但它并没有完全解决我想到的贝塞尔曲线更复杂的情况。直线版本非常容易实现:)

编辑:也应该在 IE 中工作

最佳答案

https://jsfiddle.net/9m8wo0ef/2/

  var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');

context.setLineDash([5, 15]);

context.beginPath();
context.moveTo(100, 20);

// bezier curve
context.bezierCurveTo(290, -40, 300, 200, 400, 150);

context.lineWidth = 5;
context.strokeStyle = 'blue';
context.stroke();

// second half of curve
context.beginPath();
context.strokeStyle="#DDDDFF";
context.bezierCurveTo(400, 150, 500, 120, 450, 20);
context.stroke();

注意:第二条曲线(浅色路径)必须从第一条路径停止的位置开始 - 在本例中为 400、150。

关于javascript - HTML5 Canvas,沿着路径的等距点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36653775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com