add art
This commit is contained in:
		
							parent
							
								
									3834812872
								
							
						
					
					
						commit
						d9f5b4e13a
					
				
							
								
								
									
										64
									
								
								art/mandelbrot.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								art/mandelbrot.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,64 @@
 | 
			
		||||
//NOT FINISHED
 | 
			
		||||
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"image"
 | 
			
		||||
	"image/png"
 | 
			
		||||
	"math/cmplx"
 | 
			
		||||
	"os"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Color struct {
 | 
			
		||||
	r uint32
 | 
			
		||||
	g uint32
 | 
			
		||||
	b uint32
 | 
			
		||||
	a uint32
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c Color) RGBA() (r, g, b, a uint32) {
 | 
			
		||||
	return c.r, c.g, c.b, c.a
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func green() Color {
 | 
			
		||||
	return Color{0, 255, 0, 255}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func blue() Color {
 | 
			
		||||
	return Color{0, 0, 255, 255}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	f, err := os.Create("out.png")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		os.Exit(1)
 | 
			
		||||
	}
 | 
			
		||||
	const (
 | 
			
		||||
		xmin, ymin, xmax, ymax = -2, -2, +2, +2
 | 
			
		||||
		width, height          = 1024, 1024
 | 
			
		||||
	)
 | 
			
		||||
	img := image.NewRGBA(image.Rect(0, 0, width, height))
 | 
			
		||||
	for py := 0; py < height; py++ {
 | 
			
		||||
		y := float64(py)/height*(ymax-ymin) + ymin
 | 
			
		||||
		for px := 0; px < width; px++ {
 | 
			
		||||
			x := float64(px)/width*(xmax-xmin) + xmin
 | 
			
		||||
			z := complex(x, y)
 | 
			
		||||
			img.Set(px, py, mandelbrot(z))
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	png.Encode(f, img)
 | 
			
		||||
	f.Close()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func mandelbrot(z complex128) Color {
 | 
			
		||||
	const iterations = 200
 | 
			
		||||
	const contrast = 15
 | 
			
		||||
	var v complex128
 | 
			
		||||
	for n := uint8(0); n < iterations; n++ {
 | 
			
		||||
		v = v*v + z
 | 
			
		||||
		if cmplx.Abs(v) > 2 {
 | 
			
		||||
			return Color{0, uint32(255 - contrast*n), 0, 255}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return blue()
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								art/out.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								art/out.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 6.2 KiB  | 
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user