Shrink 2x and shift down so we can see the whole set
Fix 0x zoom - dividing by 0 is not fun
This commit is contained in:
parent
cd0cb9195a
commit
ba0ef17b06
12
render.go
12
render.go
@ -18,7 +18,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
Size = 256
|
Size = 128
|
||||||
Iterations = (1<<16 - 1) / 128
|
Iterations = (1<<16 - 1) / 128
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -54,8 +54,8 @@ func computeThread() {
|
|||||||
for p := range queue {
|
for p := range queue {
|
||||||
val := mandelbrot(
|
val := mandelbrot(
|
||||||
complex(
|
complex(
|
||||||
(float64(p.x)/Size+float64(p.tileX))/float64(uint(1<<p.tileZoom)),
|
(float64(p.x)/Size+float64(p.tileX))/float64(uint(1<<(p.tileZoom-1))),
|
||||||
(float64(p.y)/Size+float64(p.tileY))/float64(uint(1<<p.tileZoom)),
|
(float64(p.y)/Size+float64(p.tileY))/float64(uint(1<<(p.tileZoom-1))),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
p.out.SetRGBA(p.x, p.y, colors[val])
|
p.out.SetRGBA(p.x, p.y, colors[val])
|
||||||
@ -110,7 +110,8 @@ func renderTile(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
for x := 0; x < Size; x++ {
|
for x := 0; x < Size; x++ {
|
||||||
for y := 0; y < Size; y++ {
|
for y := 0; y < Size; y++ {
|
||||||
queue <- pixel{img, x, y, tileX, tileY, uint16(tileZoom), &wg}
|
|
||||||
|
queue <- pixel{img, x, y, tileX - int64(1<<tileZoom-1) - 1, tileY, uint16(tileZoom), &wg}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,7 +120,7 @@ func renderTile(w http.ResponseWriter, r *http.Request) {
|
|||||||
/*
|
/*
|
||||||
ip := GetOutboundIP()
|
ip := GetOutboundIP()
|
||||||
addLabel(img, 20, 30, fmt.Sprintf("rendered by \n%s", ip.String()))
|
addLabel(img, 20, 30, fmt.Sprintf("rendered by \n%s", ip.String()))
|
||||||
//addLabel(img, 20, 30, fmt.Sprintf("%s/%s/%s.png", components[1], components[2], components[3]))
|
addLabel(img, 20, 30, fmt.Sprintf("%s/%s/%s.png", components[1], components[2], components[3]))
|
||||||
*/
|
*/
|
||||||
w.Header().Set("Content-Type", "image/png")
|
w.Header().Set("Content-Type", "image/png")
|
||||||
png.Encode(w, img)
|
png.Encode(w, img)
|
||||||
@ -213,6 +214,7 @@ func addLabel(img *image.RGBA, x, y int, label string) {
|
|||||||
d.DrawString(label)
|
d.DrawString(label)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func GetOutboundIP() net.IP {
|
func GetOutboundIP() net.IP {
|
||||||
conn, err := net.Dial("udp", "8.8.8.8:80")
|
conn, err := net.Dial("udp", "8.8.8.8:80")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
8
web.go
8
web.go
@ -23,10 +23,10 @@ var mandelbrotTypeOptions = {
|
|||||||
getTileUrl: function(coord, zoom) {
|
getTileUrl: function(coord, zoom) {
|
||||||
return '/mandelbrot/' + zoom + '/' + coord.x + '/' + coord.y + '.png';
|
return '/mandelbrot/' + zoom + '/' + coord.x + '/' + coord.y + '.png';
|
||||||
},
|
},
|
||||||
tileSize: new google.maps.Size(256, 256),
|
tileSize: new google.maps.Size(128, 128),
|
||||||
maxZoom: (1<<16) - 1,
|
maxZoom: (1<<16),
|
||||||
minZoom: 0,
|
minZoom: 1,
|
||||||
name: 'Mandelbrot'
|
name: '0xdeadbeef Mandel Mapper'
|
||||||
};
|
};
|
||||||
|
|
||||||
var mandelbrotMapType = new google.maps.ImageMapType(mandelbrotTypeOptions);
|
var mandelbrotMapType = new google.maps.ImageMapType(mandelbrotTypeOptions);
|
||||||
|
Loading…
Reference in New Issue
Block a user