@@ -16,23 +16,53 @@ function generateIdenticon(diameter, seed) {
16
16
var paper = elements . paper
17
17
var container = elements . container
18
18
19
+ var svg = document . createElementNS ( svgns , 'svg' )
20
+ svg . setAttributeNS ( null , 'x' , '0' )
21
+ svg . setAttributeNS ( null , 'y' , '0' )
22
+ svg . setAttributeNS ( null , 'width' , diameter )
23
+ svg . setAttributeNS ( null , 'height' , diameter )
24
+
25
+ container . appendChild ( svg )
26
+
19
27
for ( var i = 0 ; i < shapeCount - 1 ; i ++ ) {
20
- genShape ( paper , remainingColors , diameter , i , shapeCount - 1 , container )
28
+ genShape ( paper , remainingColors , diameter , i , shapeCount - 1 , svg )
21
29
}
22
30
23
31
return container
24
32
}
25
33
26
- function genShape ( paper , remainingColors , diameter , i , total , container ) {
27
- var shape = paper . rect ( 0 , 0 , diameter , diameter ) ;
28
- shape . rotate ( 360 * generator . random ( ) )
34
+ function genShape ( paper , remainingColors , diameter , i , total , svg ) {
35
+ var center = diameter / 2
36
+
37
+ var shape = document . createElementNS ( svgns , 'rect' )
38
+ shape . setAttributeNS ( null , 'x' , '0' )
39
+ shape . setAttributeNS ( null , 'y' , '0' )
40
+ shape . setAttributeNS ( null , 'width' , diameter )
41
+ shape . setAttributeNS ( null , 'height' , diameter )
42
+
43
+ var firstRot = generator . random ( )
44
+ var angle = Math . PI * 2 * firstRot
45
+ var velocity = diameter / total * generator . random ( ) + ( i * diameter / total )
46
+
47
+ var tx = ( Math . cos ( angle ) * velocity )
48
+ var ty = ( Math . sin ( angle ) * velocity )
49
+
50
+ var translate = 'translate(' + tx + ' ' + ty + ')'
51
+
52
+ // Third random is a shape rotation on top of all of that.
53
+ var secondRot = generator . random ( )
54
+ var rot = ( firstRot * 360 ) + secondRot * 180
55
+ var rotate = 'rotate(' + rot . toFixed ( 1 ) + ' ' + center + ' ' + center + ')'
56
+ console . log ( rotate )
57
+ var transform = translate + ' ' + rotate
58
+ console . log ( transform )
59
+ shape . setAttributeNS ( null , 'transform' , transform )
60
+ var fill = genColor ( remainingColors )
61
+ shape . setAttributeNS ( null , 'fill' , fill )
29
62
30
- var trans = diameter / total * generator . random ( ) + ( i * diameter / total )
31
- shape . translate ( trans )
63
+ console . log ( 'angle %s ammount %s makes %s and %s for %s' , angle , velocity , translate , rotate , fill )
32
64
33
- shape . rotate ( 180 * generator . random ( ) )
34
- shape . attr ( 'fill' , genColor ( remainingColors ) ) ;
35
- shape . attr ( 'stroke' , 'none' ) ;
65
+ svg . appendChild ( shape )
36
66
}
37
67
38
68
function genColor ( colors ) {
0 commit comments