我正在尝试将我的 svg 路径放在 Canvas 上,如下所示:
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]);
这很好用
不,我想做的是在 Canvas 的这条路径上的随机位置放置一个点(或圆)。 所以我需要为这个新点随机化 x 和 y。
有什么办法吗?我怎样才能随机放置一个 X 坐标,然后得到 Y 坐标,让它位于路径上?路径不是直线。
目前我没有使用任何第三方库,例如 Raphael,但如果需要我可以包含它们。
谢谢。
编辑:
好的,我想出了一个快速的解决方案,你可以在这里看到:http://jsfiddle.net/pg54qp84/ (提示:检查控制台的调试信息) 但问题是,我仍然需要做初始动画,根据动画的速度,点数组中的点数会有所不同——动画越慢,点数组中的曲线表示就越准确。
有没有人知道我怎样才能去掉这一步?
最佳答案
您可以使用 SVG DOM getPointAtLength(distance)距离是从 0 到 getTotalLength() 的随机数的方法
关于javascript - Canvas 路径上的随机点(来自 svg 的路径),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27547791/