diff options
Diffstat (limited to 'vec3.go')
-rw-r--r-- | vec3.go | 15 |
1 files changed, 14 insertions, 1 deletions
@@ -82,7 +82,7 @@ func RandomVec3OnUnitSphere() (v Vec3) { i := Interval{-1, 1} for true { - v = i.RandomVec3() + v = Vec3{i.Sample(), i.Sample(), i.Sample()}; if v.MagSqr() < 1 { v = v.Unit(); return; @@ -92,6 +92,19 @@ func RandomVec3OnUnitSphere() (v Vec3) { return; } +func RandomVec3OnUnitDisk() (v Vec3) { + i := Interval{-1, 1} + + for true { + v = Vec3{i.Sample(), i.Sample(), 0}; + if v.MagSqr() < 1 { + return; + } + } + + return; +} + func (v Vec3) Reflect(n Vec3) Vec3 { return v.Sub(SplatVec3(2 * v.Dot(n)).Mul(n)); } |