| 85 | } |
| 86 | |
| 87 | func (f *Function) Paths1() Paths { |
| 88 | var paths Paths |
| 89 | step := 1.0 / 8 |
| 90 | fine := 1.0 / 64 |
| 91 | for x := f.Box.Min.X; x <= f.Box.Max.X; x += step { |
| 92 | var path Path |
| 93 | for y := f.Box.Min.Y; y <= f.Box.Max.Y; y += fine { |
| 94 | z := f.Function(x, y) |
| 95 | z = math.Min(z, f.Box.Max.Z) |
| 96 | z = math.Max(z, f.Box.Min.Z) |
| 97 | path = append(path, Vector{x, y, z}) |
| 98 | } |
| 99 | paths = append(paths, path) |
| 100 | } |
| 101 | for y := f.Box.Min.Y; y <= f.Box.Max.Y; y += step { |
| 102 | var path Path |
| 103 | for x := f.Box.Min.X; x <= f.Box.Max.X; x += fine { |
| 104 | z := f.Function(x, y) |
| 105 | z = math.Min(z, f.Box.Max.Z) |
| 106 | z = math.Max(z, f.Box.Min.Z) |
| 107 | path = append(path, Vector{x, y, z}) |
| 108 | } |
| 109 | paths = append(paths, path) |
| 110 | } |
| 111 | return paths |
| 112 | } |