Beispiel #1
0
    def intersect(self, origin, ray):
        origin_sub_sphere = origin - self.origin
        b = 2 * origin_sub_sphere.dot(ray)
        c = origin_sub_sphere.dot(origin_sub_sphere) - self.radius*self.radius

        intersect = "NONE"
        for col in solveQuadratic(1, b, c):
            if (col != "NONE" and col > 0.0):
                if (intersect == "NONE" or col < intersect):
                    intersect = col
        return intersect
Beispiel #2
0
 def test_solveQuadratic(self):
     self.assertEqual(solveQuadratic(3, -2, -8), [2.0, -4.0/3])
     self.assertEqual(solveQuadratic(1, -2, 1), [1.0, 1.0])
     self.assertEqual(solveQuadratic(2, 0, 4), ["NONE", "NONE"])
     self.assertEqual(solveQuadratic(0, 2, -4), ["NONE", 2.0])