diff options
| author | Brandon C. Irizarry <brandon.irizarry@gmail.com> | 2026-03-07 16:19:49 -0500 |
|---|---|---|
| committer | Brandon C. Irizarry <brandon.irizarry@gmail.com> | 2026-03-07 16:19:49 -0500 |
| commit | 82dbad9313b67f29b3279392f2737abd7bee47dc (patch) | |
| tree | 1c977d6c48bd9332b13e74bfed44fa017fe300e2 /main.go | |
| parent | 337bdc6d3485007ef151daf37fb43e5dab85722b (diff) | |
feat: try renaming the file
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/main.go b/main.go deleted file mode 100644 index 1d1ad70..0000000 --- a/main.go +++ /dev/null @@ -1,61 +0,0 @@ -package lissajous - -import ( - "image" - "image/color" - "image/gif" - "io" - "math" - "math/rand/v2" -) - -var palette = []color.Color{ - color.Black, - color.RGBA{0x00, 0xff, 0x00, 0xff}, - color.RGBA{0xff, 0x00, 0x00, 0xff}, - color.RGBA{0x00, 0x00, 0xff, 0xff}, -} - -const ( - backgroundIndex = iota - foregroundIndex -) - -func Lissajous(out io.Writer) { - const ( - cycles = 5 - res = 0.001 - size = 100 - nframes = 64 - delay = 8 - ) - - // Note that this generates the exact same random number per - // run of the program. - freq := rand.Float64() * 3.0 - anim := gif.GIF{LoopCount: nframes} - - for i := range nframes { - img := newImage(size, cycles, float64(i)/10, res, freq) - - anim.Delay = append(anim.Delay, delay) - anim.Image = append(anim.Image, img) - } - - gif.EncodeAll(out, &anim) -} - -func newImage(size, cycles int, phase, res, freq float64) *image.Paletted { - rect := image.Rect(0, 0, 2*size+1, 2*size+1) - img := image.NewPaletted(rect, palette) - - randIndex := 1 + uint8(rand.IntN(len(palette)-1)) - - for t := 0.0; t < float64(cycles)*2*math.Pi; t += res { - x := math.Sin(t) - y := math.Sin(t*freq + phase) - img.SetColorIndex(size+int(x*float64(size)+0.5), size+int(y*float64(size)+0.5), randIndex) - } - - return img -} |
