MCPcopy
hub / github.com/fogleman/primitive / Mutate

Method Mutate

primitive/polygon.go:63–82  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

61}
62
63func (p *Polygon) Mutate() {
64 const m = 16
65 w := p.Worker.W
66 h := p.Worker.H
67 rnd := p.Worker.Rnd
68 for {
69 if rnd.Float64() < 0.25 {
70 i := rnd.Intn(p.Order)
71 j := rnd.Intn(p.Order)
72 p.X[i], p.Y[i], p.X[j], p.Y[j] = p.X[j], p.Y[j], p.X[i], p.Y[i]
73 } else {
74 i := rnd.Intn(p.Order)
75 p.X[i] = clamp(p.X[i]+rnd.NormFloat64()*16, -m, float64(w-1+m))
76 p.Y[i] = clamp(p.Y[i]+rnd.NormFloat64()*16, -m, float64(h-1+m))
77 }
78 if p.Valid() {
79 break
80 }
81 }
82}
83
84func (p *Polygon) Valid() bool {
85 if !p.Convex {

Callers 1

NewRandomPolygonFunction · 0.95

Calls 2

ValidMethod · 0.95
clampFunction · 0.70

Tested by

no test coverage detected