Skip to content
This repository has been archived by the owner on May 30, 2023. It is now read-only.

Commit

Permalink
Add Coffeescript version of colorwheel.js.
Browse files Browse the repository at this point in the history
  • Loading branch information
rgieseke committed Apr 22, 2011
1 parent 3717373 commit e1317ff
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions examples/colorwheel.coffee
@@ -0,0 +1,45 @@
if phantom.state.length is 0
phantom.state = 1
phantom.viewportSize = { width: 400, height : 400 }
phantom.content = '<html><body><canvas id="surface">' +
'</canvas></body></html>'
else
el = document.getElementById 'surface'
context = el.getContext '2d'
width = window.innerWidth
height = window.innerHeight
cx = width / 2
cy = height / 2
radius = width / 2.3
i = 0

el.width = width
el.height = height
imageData = context.createImageData(width, height)
pixels = imageData.data

for y in [0...height]
for x in [0...width]
i = i + 4
rx = x - cx
ry = y - cy
d = rx * rx + ry * ry
if d < radius * radius
hue = 6 * (Math.atan2(ry, rx) + Math.PI) / (2 * Math.PI)
sat = Math.sqrt(d) / radius
g = Math.floor(hue)
f = hue - g
u = 255 * (1 - sat)
v = 255 * (1 - sat * f)
w = 255 * (1 - sat * (1 - f))
pixels[i] = [255, v, u, u, w, 255, 255][g]
pixels[i + 1] = [w, 255, 255, v, u, u, w][g]
pixels[i + 2] = [u, u, w, 255, 255, v, u][g]
pixels[i + 3] = 255

context.putImageData imageData, 0, 0
document.body.style.backgroundColor = 'white'
document.body.style.margin = '0px'

phantom.render 'colorwheel.png'
phantom.exit()

0 comments on commit e1317ff

Please sign in to comment.