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
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
|
||||
7
main.go
7
main.go
@@ -127,7 +127,7 @@ func main() {
|
||||
},
|
||||
}
|
||||
|
||||
sierpinskiLayer := &SierpinskiArrow { dirty: true }
|
||||
//sierpinskiLayer := &SierpinskiArrow { dirty: true }
|
||||
|
||||
sketch := NewSketch(env)
|
||||
|
||||
@@ -142,9 +142,10 @@ func main() {
|
||||
actorColor := color.RGBA { R: 10, G: 58, B: 59, A: 25 }
|
||||
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("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")
|
||||
// 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")
|
||||
|
||||
Reference in New Issue
Block a user