automated snapshot
This commit is contained in:
54
blinds.go
Normal file
54
blinds.go
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
sg "github.com/d2fn/sumi/internal/graphics"
|
||||||
|
rl "github.com/gen2brain/raylib-go/raylib"
|
||||||
|
)
|
||||||
|
|
||||||
|
type BlindsLayer struct {
|
||||||
|
Field Field
|
||||||
|
Dirty bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewBlindsLayer(field Field) *BlindsLayer {
|
||||||
|
return &BlindsLayer {
|
||||||
|
Field: field,
|
||||||
|
Dirty: true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *BlindsLayer) Draw(env *Env, g *sg.Graphics) {
|
||||||
|
|
||||||
|
rowHeight := float32(10.0)
|
||||||
|
rows := int32(g.Bounds.Height / rowHeight)
|
||||||
|
|
||||||
|
g.Clear()
|
||||||
|
|
||||||
|
c := rl.White
|
||||||
|
c.A = 100
|
||||||
|
|
||||||
|
g.SetStrokeColor(c)
|
||||||
|
g.SetStrokeWeight(1.0)
|
||||||
|
y := float32(10.0)
|
||||||
|
for range rows {
|
||||||
|
for x := 10; x < int(g.Width()) - 10; x++ {
|
||||||
|
fieldValue := l.Field.Get(float32(x), float32(y))
|
||||||
|
strokeHeight := rl.Remap(fieldValue, 0.0, 1.0, 0.0, rowHeight * 1.3)
|
||||||
|
a := sg.Point { X: float32(x), Y: float32(y) - strokeHeight / 2.0 }
|
||||||
|
b := sg.Point { X: float32(x), Y: float32(y) + strokeHeight / 2.0 }
|
||||||
|
g.DrawLine(a, b)
|
||||||
|
}
|
||||||
|
y += rowHeight
|
||||||
|
}
|
||||||
|
|
||||||
|
l.Dirty = false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *BlindsLayer) Update(env *Env, g *sg.Graphics) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *BlindsLayer) IsDirty() bool {
|
||||||
|
return l.Dirty
|
||||||
|
}
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ type ContourLayer struct {
|
|||||||
hiActorAngle float32
|
hiActorAngle float32
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewContourLayer(sketch *Sketch, rng *rand.Rand, field Field, color color.RGBA, loActorAngle float32, hiActorAngle float32) *ContourLayer {
|
func NewContourLayer(rng *rand.Rand, field Field, color color.RGBA, loActorAngle float32, hiActorAngle float32) *ContourLayer {
|
||||||
|
|
||||||
maxActors := 200000
|
maxActors := 200000
|
||||||
|
|
||||||
|
|||||||
7
main.go
7
main.go
@@ -127,7 +127,7 @@ func main() {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
sierpinskiLayer := &SierpinskiArrow { dirty: true }
|
//sierpinskiLayer := &SierpinskiArrow { dirty: true }
|
||||||
|
|
||||||
sketch := NewSketch(env)
|
sketch := NewSketch(env)
|
||||||
|
|
||||||
@@ -142,9 +142,10 @@ func main() {
|
|||||||
actorColor := color.RGBA { R: 10, G: 58, B: 59, A: 25 }
|
actorColor := color.RGBA { R: 10, G: 58, B: 59, A: 25 }
|
||||||
fmt.Printf("actor color = %v\n", actorColor)
|
fmt.Printf("actor color = %v\n", actorColor)
|
||||||
|
|
||||||
contourLayer := NewContourLayer(&sketch, rng, field, actorColor, -12*math.Pi, 12*math.Pi)
|
contourLayer := NewContourLayer(rng, field, actorColor, -12*math.Pi, 12*math.Pi)
|
||||||
sketch.AddLayer("contours", contourLayer)
|
sketch.AddLayer("contours", contourLayer)
|
||||||
sketch.AddLayer("sierpinski-arrowhead", sierpinskiLayer)
|
sketch.AddLayer("blinds", NewBlindsLayer(field))
|
||||||
|
//sketch.AddLayer("sierpinski-arrowhead", sierpinskiLayer)
|
||||||
// aurora := NewImageLayer("/home/d/Dropbox/photos/Events/2025/Aurora/Photo Nov 11 2025, 9 52 03 PM.jpg")
|
// aurora := NewImageLayer("/home/d/Dropbox/photos/Events/2025/Aurora/Photo Nov 11 2025, 9 52 03 PM.jpg")
|
||||||
// sketch.AddLayer("aurora", aurora)
|
// sketch.AddLayer("aurora", aurora)
|
||||||
// cave := NewImageLayer("/home/d/Dropbox/photos/Events/2025/ Chelsea and James visit Lindell/Photo Nov 29 2025, 5 26 40 PM (29).jpg")
|
// cave := NewImageLayer("/home/d/Dropbox/photos/Events/2025/ Chelsea and James visit Lindell/Photo Nov 29 2025, 5 26 40 PM (29).jpg")
|
||||||
|
|||||||
Reference in New Issue
Block a user