画布路径上的随机点(来自svg的路径)

时间:2014-12-18 13:32:47

标签: javascript html html5 canvas svg

我试图将我的svg路径放在画布上,如下所示:

this.svg = '<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="200" height="201" enable-background="new 299.9 155.9 200 200.9">...</svg>';
var mySrc = 'data:image/svg+xml;base64,'+window.btoa(this.svg);
this.source = new Image();
this.source.src = mySrc;
ctx.drawImage(this.source, nv[0], nv[1], nv[2], nv[3]);

这很好用

不,我想做的是在画布中的此路径上的随机位置放置一个点(或圆圈)。 所以我需要为这个新点随机化x和y。

有什么办法吗?我怎么能随机掖一下X坐标,然后得到Y坐标让它放在路径上?路径不是直线。

目前我没有使用任何第三方图书馆,例如Raphael,但如果需要我可以加入它们。

感谢。

编辑:

好的,我已经想出了一个快速的解决方案,你可以在这里看到:http://jsfiddle.net/pg54qp84/ (提示:检查控制台是否有调试信息) 但问题是,我仍然需要做初始动画,并且根据它的速度,点数组中的点数将不同 - 动画越慢,曲线在点阵列中的表示越准确。 / p>

有没有人知道如何摆脱这一步?

1 个答案:

答案 0 :(得分:0)

你可以使用SVG DOM getPointAtLength(distance)方法,其中距离是从0到getTotalLength()的随机数