私はsvgポリゴンを持っており、それらをn回動的に複製したいと思います。私が直面している問題は、複製するときです。 配列内のポイントをハードコーディングする代わりに、それらを動的に生成します。あなたはそれらを追加し、その後、あなたが描きたいすべてのポリためにランダムな点の3セットを取得することができます無作為にsvgポリゴンを配置
function createNewPolyPoint(offset) {
var pageHeight = $(window).height() - offset,
pageWidth = $(window).width() - offset,
randomX = Math.floor(Math.random() * pageHeight),
randomY = Math.floor(Math.random() * pageWidth);
return [randomX, randomY];
}
:私
$(document).ready(function() {
var polyarray= {
"polyobj": [{
"id": 0,
"name": 'Poly',
"points":'20,10 30,30 30,20',
"color":'#ed078d'
},{
"id": 1,
"name": 'Poly1',
"points":'20,50 10,50 30,60',
"color": '#d71f39'
},{
"id": 2,
"name": 'Poly2',
"points":'60,10 70,30 80,20',
"color":'#ed4a39'
},{
"id": 3,
"name": 'Poly3',
"points":'40,80 60,90,60,100',
"color": '#f78d37'
},{
"id": 4,
"name": 'Poly4',
"points":'50,50 50,60 80,50',
"color": '#c52031'
}]
}
for (i = 0; i < polyarray.polyobj.length; i++) {
var color = polyarray.polyobj[i].color;
var nowCloned = $("#main-0").clone();
nowCloned[0].id = "main-"+(i);
var nc = "clip"+(i+1);
var fnow = nowCloned.find('polygon')
fnow.attr("id",nc);
fnow.css({"fill":color});
fnow.attr("points",polyarray.polyobj[i].points);
nowCloned.appendTo("#Layer_1");
};
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<svg id="Layer_1" class="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 324.61 150.83">
<g id="main-0" style="position:absolute; top:-899px;">
<polygon points="" id="poly" />
</g>
</svg>
コードスニペット – Arnauld
その場合は、単に表示用と形状が同じになるにはjQueryを含めてくださいを、ちょうどランダムな位置とランダムに変換する。 – Ian