diff --git a/Tools b/Tools new file mode 100644 index 0000000..48a42f2 --- /dev/null +++ b/Tools @@ -0,0 +1,102 @@ +from math import * +from exif import Image + +# Fonctions + +def capteur (): + print('\n> Infos sur le capteur\n') + marque = input('Marque : ') + modele = input('Modèle : ') + + while True: + try: + f = float(input('Focale réelle de la lentille (en mm) : ')) + break + except ValueError: + print('Erreur, la valeur saisie doit-être un réel...') + + i = 0 + + while i == 0: + choix = input('\nConnaissez-vous les dimensions réelles du capteur (O/N) ? ') + choix = choix[0:1].lower() + + if choix == 'o': + while True: + try: + longueur = float(input('Entrez sa longueur (en mm) : ')) + break + except ValueError: + print('Erreur, la valeur saisie doit-être un réel...') + + while True: + try: + largeur = float(input('Entrez sa largeur (en mm) : ')) + break + except ValueError: + print('Erreur, la valeur saisie doit-être un réel...') + + i += 1 + + elif choix == 'n': + while True: + try: + x = int(input('Entrez la taille d''image X (en px) : ')) + break + except ValueError: + print('Erreur, la valeur saisie doit-être un entier...') + + while True: + try: + y = int(input('Entrez la taille d''image Y (en px) : ')) + break + except ValueError: + print('Erreur, la valeur saisie doit-être un entier...') + + while True: + try: + pixel = float(input('Entrez la taille de pixel (en micromètres) : ')) + break + except ValueError: + print('Erreur, la valeur saisie doit-être un réel...') + + longueur = x * (pixel / 1000) + largeur = y * (pixel / 1000) + + i += 1 + + else: + print('Erreur, choix non disponible...') + + return marque, modele, f, longueur, largeur + +# Code + +## Variables initiales + +i1 = True + +while i1 == True: + c_marque,c_modele,c_focale,c_long,c_larg = capteur() + + print('\nLe capteur saisi est un {} {} avec une focale de {} mm et une taille de {} mm par {} mm.'.format(c_marque,c_modele,c_focale,c_long,c_larg)) + + i2 = True + + while i2 == True: + rep = (input ('\nEst-ce correct (O/N) ? ')) + rep = rep[0:1].lower() + + if rep == 'o': + i1 = False + i2 = False + elif rep == 'n': + i2 = False + else: + print('Erreur, choix non disponible...') + +champ = 2 * atan(sqrt(pow(c_long,2)+pow(c_larg,2))/(2 * c_focale)) +focale_35mm = (sqrt(pow(24,2)+pow(36,2))) / (2*tan(champ/2)) + +print('\nFocale équivalente 35 mm : {} mm' + '\nAngle de champ : {}°'.format(focale_35mm,degrees(champ))) \ No newline at end of file