From 52ea780ca77bd43fea5e0e58ca0bd297a2ed6e7b Mon Sep 17 00:00:00 2001 From: plexx Date: Fri, 27 Jan 2023 01:01:09 +0100 Subject: [PATCH] cleanup --- src/main.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main.rs b/src/main.rs index fd3e07e..d605127 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,15 +11,15 @@ use crate::{ fn hit_sphere(center: &Point3, radius: f64, r: &Ray) -> f64 { let oc = r.origin() - *center; - let a = r.direction().dot(&r.direction()); - let b = 2.0 * oc.dot(&r.direction()); - let c = oc.dot(&oc) - radius*radius; - let discriminant = b*b - 4.0*a*c; + let a = r.direction().length_squared(); + let half_b = oc.dot(&r.direction()); + let c = oc.length_squared() - radius*radius; + let discriminant = half_b*half_b - a*c; if discriminant < 0.0 { -1.0 } else { - (-b - discriminant.sqrt()) / (2.0 * a) + (-half_b - discriminant.sqrt()) / a } }