def test_intersection5(self): cone = Cone(Vector(0, 2.5, 5), 3, 1, Color(1, 0, 0)) ray = Ray(Vector(0, 0, 0), Vector(0.05, 0.2, 1)) intersection = cone.intersection(ray, 0.00001, 1000) self.assertAlmostEqual(intersection.point.x, 0.25, 3) self.assertAlmostEqual(intersection.point.y, 1.0, 3) self.assertAlmostEqual(intersection.point.z, 5, 3)
def test_intersection4(self): cone = Cone(Vector(0, 0, 5), 3, 1, Color(1, 0, 0)) ray = Ray(Vector(0, 0, 0), Vector(0.05, -0.3, 1)) intersection = cone.intersection(ray, 0.00001, 1000) self.assertAlmostEqual(intersection.point.x, 0.205613676) self.assertAlmostEqual(intersection.point.y, -1.233682056) self.assertAlmostEqual(intersection.point.z, 4.11227352)
def test_intersection2(self): cone = Cone(Vector(0, 0, 5), 3, 1, Color(1, 0, 0)) ray = Ray(Vector(0, 0, 0), Vector(0.0, 0.05, 1)) intersection = cone.intersection(ray, 0.00001, 1000) self.assertAlmostEqual(intersection.point.x, 0.0) self.assertAlmostEqual(intersection.point.y, 0.2288135593) self.assertAlmostEqual(intersection.point.z, 4.5762711864)
def deserializeCone(self, coneJson): center = self.deserializeVector(coneJson["center"]) reflection = float(coneJson["reflection"]) radius = float(coneJson["radius"]) height = float(coneJson["height"]) specular = float(coneJson["specular"]) transparency = float(coneJson["transparency"]) refractiveIndex = float(coneJson["refractiveIndex"]) color = self.deserializeColor(coneJson["color"]) return Cone(center, height, radius, color, specular, reflection, transparency, refractiveIndex)
def test_constructor(self): cone = Cone(Vector(0, 0, 5), 3, 1, Color(1, 0, 0)) self.assertEqual(cone.bottom.x, 0) self.assertEqual(cone.bottom.y, -1.5) self.assertEqual(cone.bottom.z, 5) self.assertEqual(cone.top.x, 0) self.assertEqual(cone.top.y, 4.5) self.assertEqual(cone.top.z, 5) self.assertEqual(cone.radius, 1) self.assertEqual(cone.height, 3) self.assertAlmostEqual(cone.alpha, 18.43494882)
p1 = Plane(Vector(0, -3, 0), Vector(0, 1, 0), Color(1, 0, 0), 0, 0) p2 = Plane(Vector(0, 10, 0), Vector(0, -1, 0), Color(0.1, 1.0, 1.0), 0, 0) p3 = Plane(Vector(0, 0, 30), Vector(0, 0, -1), Color(0.7, 0.1, 0.2), 0, 0) p4 = Plane(Vector(0, 0, -1), Vector(0, 0, 1), Color(0.1, 0.4, 0.8), 0, 0) p5 = Plane(Vector(-10, 0, 0), Vector(1, 0, 0), Color(0.2, 0.1, 0.6), 0, 0) p6 = Plane(Vector(10, 0, 0), Vector(-1, 0, 0), Color(0.1, 0.7, 0.2), 0, 0) s1 = Sphere(sCenter1, 1, Color(1.0, 0, 0), 600, 0, 0) s2 = Sphere(sCenter2, 1.3, Color(0, 1.0, 0), 500, 0, 0) cube = Cube(Vector(0, 0, 25), 10, Color(0, 1, 0), 1000, 0, 0) cone = Cone(Vector(0, 0, 10), 1, 1, Color(1, 0, 0), 1000, 0, 0) cylinder = Cylinder(Vector(0, -3, 8), 1, 1, Color(1, 0, 0), 1000, 0.8, 0) light1 = Light(0, 3, 8, 0.5) light2 = Light(1, 3, 5, 0.3) light0 = AmbientLight(0.2) scene = Scene() scene.addLight(light0) scene.addLight(light1) scene.addLight(light2) scene.addObject3D(s1) scene.addObject3D(cylinder)
def test_intersection3(self): cone = Cone(Vector(0, 0, 5), 3, 1, Color(1, 0, 0)) ray = Ray(Vector(0, 0, 0), Vector(0.0, 1.0, 1)) intersection = cone.intersection(ray, 0.00001, 1000) self.assertIsNone(intersection)