Computer graphics: A programming approach