Advertisement
Guest User

Shit

a guest
Dec 20th, 2013
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.36 KB | None | 0 0
  1. // Дополнительные сведения о F# см. на http://fsharp.net
  2. #light
  3. open Microsoft.FSharp.Math
  4. open System
  5. open System.Drawing
  6. open System.Windows.Forms
  7. open System.Numerics
  8.  
  9. let cMax = complex 1.0 1.0
  10. let cMin = complex -1.0 -1.0
  11.  
  12. let rec isInMandelbrotSet (z, c, iter, count) =
  13.     if (cMin < z) && (z < cMax) && (count < iter) then
  14.         isInMandelbrotSet ( ((z * z) + c), c, iter, (count + 1) )
  15.     else count
  16.  
  17. let scalingFactor s = s * 1.0 / 200.0
  18. let offsetX = -1.0
  19. let offsetY = -1.0
  20.  
  21. let mapPlane (x, y, s, mx, my) =
  22.     let fx = ((float x) * scalingFactor s) + mx
  23.     let fy = ((float y) * scalingFactor s) + my
  24.     complex fx fy
  25.  
  26. let colorize c =
  27.     let r = (4 * c) % 255
  28.     let g = (6 * c) % 255
  29.     let b = (8 * c) % 255
  30.     Color.FromArgb(r,g,b)
  31.  
  32. let createImage (s, mx, my, iter) =
  33.     let image = new Bitmap(400, 400)
  34.     for x = 0 to image.Width - 1 do
  35.         for y = 0 to image.Height - 1 do
  36.             let count = isInMandelbrotSet( Complex.zero, (mapPlane (x, y, s, mx, my)), iter, 0)
  37.             if count = iter then
  38.                 image.SetPixel(x,y, Color.Black)
  39.             else
  40.                 image.SetPixel(x,y, colorize( count ) )
  41.     let temp = new Form() in
  42.     temp.Paint.Add(fun e -> e.Graphics.DrawImage(image, 0, 0))
  43.     temp
  44.  
  45. do Application.Run(createImage (1.5, -1.5, -1.5, 20))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement