【发布时间】:2020-12-23 17:05:33
【问题描述】:
所以我知道要绘制贝塞尔曲线,您可以使用:
path.setAttributeNS(null, "d", "M5,5 C5,45 45,45 45,5"):
但我想循环绘制它们(不是动画)并每次更改它们的位置,每次都是相同的曲线,但开始和结束位置不同。而且我不知道如何在循环中更改这些属性。
从下面的回答中,我尝试了我的代码,但它不起作用。我知道我做错了什么,但我不知道是什么。这是我修改后的代码:
for (var i = 0; i < 100; i++) {
var x1 = 10;
var x2 = 15;
var x3 = 20;
var x4 = 30;
var x5 = 40;
var x6 = 50;
var x7 = 60;
var x8 = 70;
var attr = "M" + x1 + "," + x2 + " " + "C" + x3 + "," + x4 + " " + x5 "," + x6 + " " + x7 + "," + x8;
var path = document.createElementNS(svgns, 'path');
path.setAttributeNS("d", attr);
path.setAttributeNS(null, "fill", "none");
path.setAttributeNS(null, 'stroke', '#'+Math.round(0xffffff * Math.random()).toString(16));
document.getElementById('svgOne').appendChild(path);
}
x`s只是为了测试它是否有效,所以我哪里出错了???
【问题讨论】:
-
您的代码至少存在三个错误。使用浏览器开发人员工具和控制台来帮助您找到它们。在您设置
attr的行中有一个。在您设置“d”的行中有一个。最后,您设置随机描边颜色的方式将不起作用。
标签: javascript html svg