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