_='X=Y=0;D=[];G=[[358`162`16[351`739`73]];onmousemove=bXX;YY};K=c.hQZHQ-21;setInrval(if(XJ=c.wid!ZWid!-21;a)Ma!)i M=random,xtBasele="miklextAlign="cenrColor="#2226<&2&$, Xq:Y,N:N,A:$B:z$)90D)D[i]N%=2*PI;>x|x>JAx(x=x>Jx=J-)>y|y>KBy(y=y>Ky=K-)x+?6*A;y+?6*B;P=G[0];j?;4>j;j++)T=J*P[0V=K*P[1U=J*[0W=K*[1R=(V-W)/(T-U)*(x-T)+V,x<max^&x>m^10>y-R)(xAqB,j=4P=;O+=PI/9;F-?;if(1500>FHx-X_&y-Y_H*=9;F=30;N;A=$B=z$i=0;10>i;i++)k,L=X+45*R=Y+45*z Lq:R,A:B:zN:kH}font=H+"px sans";Blur=3;fillStyle=I;save(transla(xqrota(OfillText(E,0,0restore()}}},33),I:"#"+["FA7A79@A266AC@E38F3D@81A63F@619CD8"][~~(5*)]}),E:Strg.fromCharCode(27*+10025O:0,F:20,H:=2**PI-((k0.in>D.leng!& D.push({x:70wi!(function();],@,),&&M()cosfor(G[j]abs(=b.page*=-1,>-?5.9*te3[64shadow){!th$(N?=1@"QeightZ=ner^(T,U)_)<H/2`,kddq,yzs';for(Y=0;$='zqk`_^ZQ@?$! '[Y++];)with(_.split($))_=join(pop());eval(_)
Xz0nWD1ZPTA7RD1bXTtHPVtbBjM1OGAxNh0yYDE2EFsGMzUxYDczHTlgNzNdXTtvbm1vdXNlbW92ZT0OYh9YGVg7WRlZfTtLPWMuaFFaSFEtMjE7c2V0SW4ccnZhbCgOH2lmKFgfSj1jLndpZCFaV2lkIS0yMTsMYSkMTWEhKRZpIAcgTT1yYW5kb20sHHh0QmFzZWwHZT0ibWlrbGURHHh0QWxpZ249ImNlbhxyER5Db2xvcj0iIzIyMhEGNjwUJjIIJiQDLAlYcTpZLE46TixBOhUkEkI6eiQpAjkwARJEKQxEW2ldH04lPTIqUEk7Cz54fHg+SgRBGngTKHg9CxJ4PkoEeD1KLQspDws+eXx5PksEQhp5Eyh5PQsSeT5LBHk9Sy0LKQ94Kz82KkE7eSs/NipCO1A9R1swXTsWaj87ND5qO2orKylUPUoqUFswEFY9SypQWzEQVT1KKhdbMBBXPUsqF1sxEFI9KFYtVykvKFQtVSkqKHgtVCkrVix4PG1heF4meD5tB14TMTA+GHktUikTKHgbQXEbQixqPTQSUD0XO08rPVBJLzk7Ri0/O2lmKDE1MAgwPkYTSBMYeC1YXyYYeS1ZXx9IKj0GOTtGPTMwO04DO0E9FSQPQj16JA8WaT0wOzEwPmk7aSsrKWsDLEw9WCs0NSoVBVI9WSs0NSp6BQlMcTpSLEE6FQVCOnoFTjprAkgBfWZvbnQ9SCsicHggc2FucyI7HkJsdXI9MztmaWxsU3R5bGU9STtzYXZlKA90cmFuc2xhHCh4cQ9yb3RhHChPD2ZpbGxUZXh0KEUsMCwwD3Jlc3RvcmUoKX19fSwzMykBLEk6IiMiK1siRkE3QTc5QEEyNjZBQ0BFMzhGM0RAODFBNjNGQDYxOUNEOCJdW35+KDUqFCldfSkCLEU6U3RyB2cuZnJvbUNoYXJDb2RlKDI3KhQrMTAwMjUSTzowLEY6MjAsSDoDPTIqFCpQSQQtCxMoBShrEgYwLgdpbgg+RC5sZW5nISYJRC5wdXNoKHt4Ogs3MAx3aSEoDmZ1bmN0aW9uKA8pOxBdLEAsEiksEyYmFE0oKRVjb3MWZm9yKBdHW2pdGGFicygZPWIucGFnZRoqPS0xLAs+Gy0/NS45Khx0ZR0zEFsGNjQec2hhZG93Hyl7IXRoJChOPz0xQBEiUWVpZ2h0Wj0HbmVyXihULFUpXyk8SC8yYCwGa2RkcSx5enMHJztmb3IoWT0wOyQ9J3pxa2BfXlpRQD8kIR8eHRwbGhkYFxYVFBMSERAPDgwLCQgHBgUEAwIBJ1tZKytdOyl3aXRoKF8uc3BsaXQoJCkpXz1qb2luKHBvcCgpKTtldmFsKF8p
/*
* By: Zolmeister
* http://zolmeister.com
*/
mouseX = mouseY = 0
flowers = []
// Z
letter = [[.3579, .1628], [.6421, .1599], [.3512, .7326], [.6488, .7297]]//Z
onmousemove = function(e) {
mouseX = e.pageX
mouseY = e.pageY
}
cHi = c.height = innerHeight - 21
setInterval(function() {
if (mouseX) {
cWid = c.width = innerWidth - 21
//with with is with
with (a) {
with (Math) {
rand = random
//Align text so that it rotates cleanly
textBaseline = 'middle'
textAlign = 'center'
shadowColor = '#222'
if (rand() > .6 & flowers.length < 2) {
//spawn flower
flow = rand() * 27 + 10025
dir = rand() * PI * 2
flower = {
x : mouseX,
y : mouseY,
dir : dir,
xSpeed : cos(dir),
ySpeed : sin(dir),
flower : String.fromCharCode(flow), //unicode flowers
rot : 0,
poptime : 20,
size : 90,
color : '#' + ['FA7A79', 'A266AC', 'E38F3D', '81A63F', '619CD8'][~~(rand() * 5)]
}
flowers.push(flower)
}
for (i in flowers) {
with (flowers[i]) {
dir %= 2 * PI
if (x < 70 | x > cWid - 70) {
xSpeed *= -1
if (x < 70)
x = 70
if (x > cWid - 70)
x = cWid - 70
}
if (y < 70 | y > cHi - 70) {
ySpeed *= -1
if (y < 70)
y = 70
if (y > cHi - 70)
y = cHi - 70
}
x += xSpeed * 16
y += ySpeed * 16
last = letter[0]
for ( j = 1; j < 4; j++) {
x1 = cWid * last[0]
y1 = cHi * last[1]
x2 = cWid * letter[j][0]
y2 = cHi * letter[j][1]
m = (y1 - y2) / (x1 - x2)
yy = m * (x - x1) + y1
if (x < max(x1, x2) & x > min(x1, x2)) {
if (abs(y - yy) < 10) {
x -= xSpeed * 15.9
y -= ySpeed * 15.9
j=4
}
}
last = letter[j]
}
rot += PI / 9
poptime -= 1
if (flowers.length < 150 & poptime < 0 && size && abs(x - mouseX) < size / 2 & abs(y - mouseY) < size / 2) {
size *= .9
poptime = 30
dir = rand() * PI * 2
xSpeed = cos(dir)
ySpeed = sin(dir)
for ( i = 0; i < 10; i++) {
dd = rand() * PI * 2
xx = mouseX + cos(dd) * 45
yy = mouseY + sin(dd) * 45
flowers.push({
x : xx,
y : yy,
xSpeed : cos(dd),
ySpeed : sin(dd),
dir : dd,
flower : String.fromCharCode(rand() * 27 + 10025), //unicode flowers
rot : 0,
poptime : 20,
size : size,
color : '#' + ['FA7A79', 'A266AC', 'E38F3D', '81A63F', '619CD8'][~~(rand() * 5)]
})
}
}
//draw rotated flower
font = size + 'px sans'
shadowBlur = 3;
fillStyle = color
save()
translate(x, y)
rotate(rot)
fillText(flower, 0, 0)
restore()
}
}
}
}
}
}, 33)