26 lines
No EOL
796 B
FSharp
26 lines
No EOL
796 B
FSharp
module Julia
|
|
|
|
open System
|
|
open System.Numerics
|
|
open System.Drawing
|
|
|
|
let generatePixel x y height width zoom rMax maxIter =
|
|
let c = MandelBrot.getComplexValueForPixel (float x) (float y) (float height) (float width) zoom
|
|
|
|
let rec findI i z =
|
|
if i >= maxIter then i
|
|
else if Complex.Abs(z) >= (float rMax) then i
|
|
//else findI (i+1) (z*z+c)
|
|
else findI (i+1) (Complex.Add(c, (Complex.Multiply(z, z))))
|
|
|
|
MandelBrot.colorMap (findI 0 (Complex(0.0, 0.0))) maxIter
|
|
|
|
let generate (width:int) height zoom rMax maxIter =
|
|
let result = new Bitmap(width, height)
|
|
|
|
for y in 0 .. height-1 do
|
|
for x in 0 .. width-1 do
|
|
generatePixel x y height width zoom rMax maxIter
|
|
|> (fun color -> result.SetPixel(x, y, color))
|
|
|
|
result |