Author: Roberto; supplemented by Bolyai and Lobachevski Bonola