Source: https://besancon.udppc.asso.fr/images/bacs2015/STI2DSTL/2015_poly_STI2D_STL_correction_UdPPC.pdf