Skip to content

Commit fdd2b05

Browse files
committed
Got feature parity without raphael
1 parent 34b6441 commit fdd2b05

File tree

2 files changed

+39
-13
lines changed

2 files changed

+39
-13
lines changed

index.js

+39-9
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,53 @@ function generateIdenticon(diameter, seed) {
1616
var paper = elements.paper
1717
var container = elements.container
1818

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+
1927
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)
2129
}
2230

2331
return container
2432
}
2533

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)
2962

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)
3264

33-
shape.rotate(180 * generator.random())
34-
shape.attr('fill', genColor(remainingColors));
35-
shape.attr('stroke', 'none');
65+
svg.appendChild(shape)
3666
}
3767

3868
function genColor(colors) {

paper.js

-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
var Raphael = require('raphael')
2-
31
function newPaper(diameter, color) {
42
var container = document.createElement('div')
53
container.style.borderRadius = '50px'
@@ -10,9 +8,7 @@ function newPaper(diameter, color) {
108
container.style.height = '' + diameter + 'px'
119
container.style.display = 'inline-block'
1210
container.style.background = color
13-
var paper = Raphael(container, 100, 100);
1411
return {
15-
paper: paper,
1612
container: container,
1713
}
1814
}

0 commit comments

Comments
 (0)