automated snapshot
This commit is contained in:
22
main.go
22
main.go
@@ -23,8 +23,6 @@ func main() {
|
||||
|
||||
os.MkdirAll(snapshotsDir, 0755)
|
||||
|
||||
//rng := rand.New(rand.NewSource(0))
|
||||
|
||||
log := log.New(os.Stdout, "", log.Ldate|log.Ltime|log.Lshortfile)
|
||||
|
||||
storage, err := NewStorage(snapshotsDir)
|
||||
@@ -53,7 +51,7 @@ func main() {
|
||||
|
||||
field :=
|
||||
ScaleField {
|
||||
Scale: 100.0,
|
||||
Scale: 10.0,
|
||||
Field: &SimplexNoiseField {
|
||||
Noise: opensimplex.NewNormalized32(0),
|
||||
},
|
||||
@@ -87,7 +85,7 @@ func main() {
|
||||
rl.BeginDrawing()
|
||||
//rl.ClearBackground(rl.Black)
|
||||
rl.BeginMode2D(camera)
|
||||
|
||||
rl.BeginBlendMode(rl.BlendAdditive)
|
||||
t := time.Since(t0).Seconds()
|
||||
|
||||
// set up RenderCtx
|
||||
@@ -115,6 +113,7 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
rl.EndBlendMode()
|
||||
rl.EndMode2D()
|
||||
|
||||
// HUD
|
||||
@@ -136,9 +135,7 @@ func (s *FieldSketch) Draw(ctx *RenderCtx) {
|
||||
//screen := rl.Vector2 { X: float32(x) - float32(ctx.Width) / 2.0, Y: float32(y) - float32(ctx.Height) / 2.0 }
|
||||
screen := rl.Vector2 { X: float32(x), Y: float32(y) }
|
||||
world := rl.GetScreenToWorld2D(screen, ctx.Cam)
|
||||
//fmt.Printf("screen -> %v, world -> %v\n", screen, world)
|
||||
v := s.Field.Get(world.X, world.Y)
|
||||
//fmt.Printf("%.3f\n", v)
|
||||
clr := GrayCurve(v, 1.0)
|
||||
rl.DrawPixelV(world, clr)
|
||||
}
|
||||
@@ -152,12 +149,14 @@ type ContourSketch struct {
|
||||
|
||||
func NewContourSketch(rng *rand.Rand, field Field) ContourSketch {
|
||||
|
||||
actors := make([]*Actor, 10000)
|
||||
actors := make([]*Actor, 1000)
|
||||
for i := range len(actors) {
|
||||
actors[i] =
|
||||
&Actor {
|
||||
position: RandRadialVec(rng, 0, 500, 0, 360),
|
||||
field: field,
|
||||
stepSize: 0.5,
|
||||
color: rl.NewColor(11, 35, 176, 200),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,14 +175,15 @@ func (s *ContourSketch) Draw(ctx *RenderCtx) {
|
||||
type Actor struct {
|
||||
position rl.Vector2
|
||||
field Field
|
||||
stepSize float32
|
||||
color rl.Color
|
||||
}
|
||||
|
||||
func (a *Actor) Draw() {
|
||||
v := a.field.Get(a.position.X, a.position.Y)
|
||||
rad := rl.Remap(v, 0, 1, 0, 2 * math.Pi)
|
||||
stepSize := float32(2.0)
|
||||
nextPosition := rl.Vector2 { X: a.position.X + stepSize*float32(math.Cos(float64(rad))), Y: a.position.Y + stepSize*float32(math.Sin(float64(rad))) }
|
||||
rl.DrawLineV(a.position, nextPosition, rl.NewColor(255, 255, 255, 25))
|
||||
rad := rl.Remap(v, 0, 1, 0, 3 * math.Pi)
|
||||
nextPosition := rl.Vector2 { X: a.position.X + a.stepSize*float32(math.Cos(float64(rad))), Y: a.position.Y + a.stepSize*float32(math.Sin(float64(rad))) }
|
||||
rl.DrawLineV(a.position, nextPosition, a.color)
|
||||
//fmt.Printf("position %v -> nextPosition %v \n", a.position, nextPosition)
|
||||
a.position = nextPosition
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user