diff options
author | Nat Lasseter <user@4574.co.uk> | 2024-06-24 23:46:18 +0100 |
---|---|---|
committer | Nat Lasseter <user@4574.co.uk> | 2024-06-24 23:46:18 +0100 |
commit | e6ef8088e25750bca6ab61bda24fcb7e9e929ed1 (patch) | |
tree | 4caeb8e14f04024d1c3948cc03a18683f29912b6 /vec3.go | |
parent | c64284af4f5fd44360b88261a1c49a36f8bc7344 (diff) |
Chapter 13
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)); } |