package main type Camera struct { lower_left_corner Vec3D origin, horizontal, vertical Vec3D } func (camera Camera) GetRay(u float64, v float64) Ray { return Ray{ camera.origin, AddVec3D(AddVec3D( camera.lower_left_corner, ScalarProduct(u, camera.horizontal)), ScalarProduct(v, camera.vertical), ), } }