gpt4 book ai didi

javascript - 在 SVG 中动态绘制矩形

转载 作者:技术小花猫 更新时间:2023-10-29 12:10:01 25 4
gpt4 key购买 nike

我想知道如何用 SVG 绘制 100 个矩形。

我用这段代码做了一个矩形:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>

<svg id="svgOne" xmlns="http://www.w3.org/2000/svg" width="5000" height="3000">
<rect x="50" y="50" width="50" height="50" fill="black" />
</svg>

</body>
</html>

我想画 100 个大小相同、位置不同的矩形(比如 10 in row 和 10 rows)。如何快速完成?一些循环?

最佳答案

您可以使用以下循环填充屏幕:

var svgns = "http://www.w3.org/2000/svg";
for( var x=0; x < 5000; x += 50 ){
for( var y=0; y < 3000; y += 50 ){
var rect = document.createElementNS( svgns,'rect' );
rect.setAttributeNS( null,'x',x );
rect.setAttributeNS( null,'y',y );
rect.setAttributeNS( null,'width','50' );
rect.setAttributeNS( null,'height','50' );
rect.setAttributeNS( null,'fill','#'+Math.round( 0xffffff * Math.random()).toString(16) );
document.getElementById( 'svgOne' ).appendChild( rect );
}
}
body{overflow:hidden; margin:0; }
svg{width:100vw; height:100vh;}
<svg id='svgOne'></svg>

如果您只想要 100 个随机放置的方 block ,您可以这样做:

for (var i = 0; i < 100; i++) {
var x = Math.random() * 5000,
y = Math.random() * 3000;

var rect = document.createElementNS(svgns, 'rect');
rect.setAttributeNS(null, 'x', x);
rect.setAttributeNS(null, 'y', y);
rect.setAttributeNS(null, 'width', '50');
rect.setAttributeNS(null, 'height', '50');
rect.setAttributeNS(null, 'fill', '#'+Math.round(0xffffff * Math.random()).toString(16));
document.getElementById('svgOne').appendChild(rect);
}

jsfiddle for the second one

关于javascript - 在 SVG 中动态绘制矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12786797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com