From 1d3581370aa0aac4a789fb804feab38022073616 Mon Sep 17 00:00:00 2001 From: Steven Polley Date: Mon, 30 Jul 2018 22:41:10 -0600 Subject: [PATCH] Add web sub project --- web/render.go | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++ web/web.go | 64 ++++++++++++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 web/render.go create mode 100644 web/web.go diff --git a/web/render.go b/web/render.go new file mode 100644 index 0000000..54eddba --- /dev/null +++ b/web/render.go @@ -0,0 +1,114 @@ +package main + +import ( + "image" + "image/color" + "image/png" + "log" + "math/cmplx" + "net/http" + "runtime" + "strconv" + "strings" + "sync" +) + +const ( + Size = 256 + Iterations = (1<<16 - 1) / Brighten + Brighten = 1024 +) + +func mandelbrot(c complex128) uint16 { + var z complex128 + + for i := 0; i < Iterations; i++ { + z = z*z + c + if cmplx.IsNaN(z) { + return uint16(i) + } + } + + return Iterations +} + +type pixel struct { + out *image.Gray16 + x, y int + tileX, tileY int64 + tileZoom uint8 + wg *sync.WaitGroup +} + +var queue = make(chan pixel) + +func computeThread() { + for p := range queue { + val := mandelbrot( + complex( + (float64(p.x)/Size+float64(p.tileX))/float64(uint(1< + + +Mandelbrot Map + + + + + +
+ +`) + }) +}