aboutsummaryrefslogtreecommitdiff
path: root/vec3.go
diff options
context:
space:
mode:
authorNat Lasseter <user@4574.co.uk>2024-06-24 23:46:18 +0100
committerNat Lasseter <user@4574.co.uk>2024-06-24 23:46:18 +0100
commite6ef8088e25750bca6ab61bda24fcb7e9e929ed1 (patch)
tree4caeb8e14f04024d1c3948cc03a18683f29912b6 /vec3.go
parentc64284af4f5fd44360b88261a1c49a36f8bc7344 (diff)
Chapter 13
Diffstat (limited to 'vec3.go')
-rw-r--r--vec3.go15
1 files changed, 14 insertions, 1 deletions
diff --git a/vec3.go b/vec3.go
index f590625..068ef6c 100644
--- a/vec3.go
+++ b/vec3.go
@@ -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));
}