def test__perspective(self): from core.transform import Transform from maths.vector3d import Vector3d p = Vector3d(0.0, 0.0, 500.0) t = Transform.create_perspective(60.0, 1000.0) a = p * t self.assertEqual(a, Vector3d(0.0, 0.0, 0.5)) p = Vector3d(0.0, 0.0, 000.0) t = Transform.create_perspective(60.0, 1000.0) print(p*t) self.assertEqual(p * t, Vector3d(0.0, 0.0, 1.0))
def __init__(self, cam2world: Transform, screen_window: [float]*4, shutter_open: float, shutter_close: float, lensr: float, focald: float, fov: float, film: Film): super().__init__(cam2world, Transform.create_perspective(fov, infinity_min_f, 1000.0), screen_window, shutter_open, shutter_close, lensr, focald, film) self.dxCamera = (Point3d(1.0, 0.0 ,0.0) * self.rasterToCamera) - (Point3d(0.0, 0.0, 0.0) * self.rasterToCamera) self.dyCamera = (Point3d(0.0, 1.0 ,0.0) * self.rasterToCamera) - (Point3d(0.0, 0.0, 0.0) * self.rasterToCamera)