Javascript 如何使用svg生成六边形的随机位置?

Javascript 如何使用svg生成六边形的随机位置?,javascript,svg,Javascript,Svg,如何在svg画布上以随机位置生成六边形? 目前,我的代码使用 .attr(“点数”、“50,25 86,45.83 86,87.5 50108.3 14,87.53 14,45.83”) 硬编码六边形的当前位置。如何在保持六边形形状的同时,在不同位置生成其他六边形?创建一个函数drawHex(x,y),其中传递x和y作为起始坐标。在该函数上,您可以绘制相对于x和y的点: ..."x+50,y+25 x+86,y+45.83 ... x+14,y+45.83"; 最后,创建一个循环,随机生成x和

如何在svg画布上以随机位置生成六边形? 目前,我的代码使用
.attr(“点数”、“50,25 86,45.83 86,87.5 50108.3 14,87.53 14,45.83”)

硬编码六边形的当前位置。如何在保持六边形形状的同时,在不同位置生成其他六边形?

创建一个函数
drawHex(x,y)
,其中传递x和y作为起始坐标。在该函数上,您可以绘制相对于x和y的点:

..."x+50,y+25 x+86,y+45.83 ... x+14,y+45.83";

最后,创建一个循环,随机生成x和y并调用drawHex函数。我最近也在做类似的事情。您可以查看我的源代码,然后转到
creaPuerta()
function on

创建一个函数
drawHex(x,y)
,其中传递x和y作为起始坐标。在该函数上,您可以绘制相对于x和y的点:

..."x+50,y+25 x+86,y+45.83 ... x+14,y+45.83";

最后,创建一个循环,随机生成x和y并调用drawHex函数。我最近也在做类似的事情。您可以查看我的源代码,然后转到上的
creaPuerta()
函数根据Robert Longson的评论,您可以这样做:

const btn=document.getElementById('btn');
const poly=document.getElementById('poly');
btn.onclick=()=>{
const transform=`translate(${getrandomArbital(01100)}${getrandomArbital(01100)})scale(${getrandomArbital(1,5)}${getrandomArbital(1,5)});
poly.setAttribute('transform',transform);
};
函数GetRandomArbital(最小值、最大值){
返回Math.random()*(max-min)+min;
}
按钮{
显示:块;
}
随机

根据Robert Longson的评论,您可以这样做:

const btn=document.getElementById('btn');
const poly=document.getElementById('poly');
btn.onclick=()=>{
const transform=`translate(${getrandomArbital(01100)}${getrandomArbital(01100)})scale(${getrandomArbital(1,5)}${getrandomArbital(1,5)});
poly.setAttribute('transform',transform);
};
函数GetRandomArbital(最小值、最大值){
返回Math.random()*(max-min)+min;
}
按钮{
显示:块;
}
随机

Y将创建具有viewBox属性的符号:

<symbol id="poly" viewBox="14 25 72 83.3">
  <polygon points="50,25 86,45.83 86,87.5 50,108.3 14,87.53 14,45.83" />
</symbol>

Y将创建具有viewBox属性的符号:

<symbol id="poly" viewBox="14 25 72 83.3">
  <polygon points="50,25 86,45.83 86,87.5 50,108.3 14,87.53 14,45.83" />
</symbol>


对形状应用随机缩放/平移变换。对形状应用随机缩放/平移变换。