javascript - Canvas 路径上的随机点(来自 svg 的路径)

标签 javascript html canvas svg

我正在尝试将我的 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/

相关文章:

javascript - 在应用程序启动时预加载 Ext JS 和自定义 JavaScript 文件

javascript - 使用选择刷新 Turbo Frames 而无需在 Rails 7 上提交

html - 嵌套表格中的 CSS 优先级

jQuery AutoSuggest - 德鲁·威尔逊

javascript - Fabric js : fabric js drawing mode and selection mode options

javascript - 光标不跟随在html5 Canvas 中绘制的矩形的位置

javascript - 多次设置 Javascript 属性

javascript - 使用 Javascript 更改 html 可见性

html - 如何将一个 div 附加到另一个的底部,以便内容可以滚动

java - Canvas.drawBitmap 将源代码切成两半