最近我一直在学习傅里叶变换和傅里叶级数。我受到 3Blue1Brown视频的启发,我开始编写自己的画圆机程序,他在视频中展示了该程序。遗憾的是 python 的图形界面非常糟糕,所以我决定使用 p5.js。进展非常顺利,但唯一的问题是我只能在参数函数上测试我的程序,例如f(t) = (3sin(t) , cos(5t))。我花了整整一周时间搜索如何将包含<path>2D 点数组的 .svg 文件转换为可以测试程序,但我找不到与此相关的主题。有人可以向我解释我该怎么做吗?或者我可能会错过一些关于 svg 文件如何适合 javacript 的信息,因为我实际上对 html 和 svg 不太了解(计划很快学习)。
我试过那个方法:
var svg = fetch("https://s3-us-west-2.amazonaws.com/s.cdpn.io/106114/tiger.svg")
.then(response => response.text())
.then(text => (new DOMParser()).parseFromString(text, "image/svg+xml"))
.then(svg => svg.documentElement);
var path = svg.querySelector("path")
但它会引发错误:
Uncaught TypeError: svg.querySelector is not a function
at setup (Sketch.js:41)
at m.<anonymous> (p5.min.js:3)
at m.<anonymous> (p5.min.js:3)
at new m (p5.min.js:3)
at n (p5.min.js:3)
我检查并证明这svg是一个空值。有人可以帮我做那件事吗?谢谢!