Jump to content

Julia set: Difference between revisions

1,046 bytes added ,  8 years ago
Added Julia
m (→‎{{header|Perl 6}}: use complex numbers: performance improvement of ~4x)
(Added Julia)
Line 86:
}
}</lang>
 
=={{header|Julia}}==
[[File:JuliaSet_julia.png|250px|thumb|right]]
<lang julia>using Images
 
w, h = 800, 600
img = Array(UInt8, h, w, 3)
 
maxIter = 50
c = -0.8+0.156im
 
function hsv2rgb(h, s, v)
c = v * s
x = c * (1 - abs(((h/60) % 2) - 1))
m = v - c
 
r,g,b =
if h < 60
(c, x, 0)
elseif h < 120
(x, c, 0)
elseif h < 180
(0, c, x)
elseif h < 240
(0, x, c)
elseif h < 300
(x, 0, c)
else
(c, 0, x)
end
 
r = round(UInt8, (r + m) * 255)
g = round(UInt8, (g + m) * 255)
b = round(UInt8, (b + m) * 255)
 
b,g,r
end
 
for x in 1:w
for y in 1:h
i = maxIter
z = Complex((x - w/2) / w * 3, (y - h/2) / h * 2)
while abs(z) < 2 && (i -= 1) > 0
z = z*z + c
end
r,g,b = hsv2rgb(i / maxIter * 360, 1, i > 1 ? 1 : 0)
img[y,x,1] = r
img[y,x,2] = g
img[y,x,3] = b
end
end
 
save("JuliaSet.png", colorim(img, "RGB"))</lang>
 
=={{header|Perl}}==
2,747

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.