forked from dreygur/XDPlugins
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerateCanvasConfetti.js
63 lines (49 loc) · 1.68 KB
/
generateCanvasConfetti.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
function getCircleNodes(columns, rows, height, width) {
const circleSize = 8
const initRandomValueArrays = []
const xandyValues = []
let columnArrayRandomValues = []
let columnArrayYvalues = []
let rowArrayRandomValues = []
let rowArrayXvalue = []
for (let h = 0; h < columns; h++) {
columnArrayRandomValues = []
columnArrayYvalues = []
for (let v = 0; v < rows; v++) {
rowArrayRandomValues = []
rowArrayXvalue = []
const initXValue = Math.random()
const xMin = (width / columns) * h - (circleSize / 2)
const xMax = (width / columns) * (h + 1) - (circleSize / 2)
const xVal = initXValue * (xMax - xMin) + xMin
rowArrayRandomValues.push(initXValue)
rowArrayXvalue.push(xVal)
const initYValue = Math.random()
const yMin = (height / rows) * v - (circleSize / 2)
const yMax = (height / rows) * (v + 1) - (circleSize / 2)
const yVal = initYValue * (yMax - yMin) + yMin
rowArrayRandomValues.push(initYValue)
rowArrayXvalue.push(yVal)
columnArrayRandomValues.push(rowArrayRandomValues)
columnArrayYvalues.push(rowArrayXvalue)
}
initRandomValueArrays.push(columnArrayRandomValues)
xandyValues.push(columnArrayYvalues)
}
return {initRandomValueArrays, xandyValues}
}
function generateCanvasConfettiSVG({options, width, height}) {
const { columns, rows } = options
const {
initRandomValueArrays,
xandyValues
} = getCircleNodes(columns, rows, height, width)
let testDiv = document.createElement('div')
testDiv.className = 'generated-container'
return {
initRandomValueArrays,
xandyValues,
testDiv
}
}
module.exports = { generateCanvasConfettiSVG }