Remarques sur le DM2

Remarques sur le DM2

de Kim Nguyen -
Número de respuestas: 0

Bonjour,


suite au TP de ce jour, quelques remarques :

  • j'ai malencontreusement mis la phrase « les vecteurs sont des couples (x, y) » dans un commentaire du fichier ray.py. Il fallait bien sûr lire : « les vecteurs sont des triplets (x, y, z) » (comme dans l'énoncé). Ce qui signifie que la fonction add par exemple, attend 2 arguments, chacun étant un triplet.
  • Une chose que j'ai mentionné brièvement en amphi et qui peut vous poser problème pour les fonctions de test : les opérations sur les nombres flottants peuvent subir des pertes de précision. Par exemple un 3 * 0.2 donne 0.6000000000000001.
J'avais pris un exemple similaire en cours en présentant les nombres flottants en Python (cours 3) :
1.2 + 1.2 + 1.2 → 3.5999999999999996

Une façon de tester que deux flottants a et b sont « égaux » (c'est à dire très proche) est de calculer :
abs(a - b) <= 0.000001

En choisissant une constante assez petite. Cette dernière bornera les erreurs. Notez que vous n'avez à vous servir de cela que dans les fonctions de tests. Dans les fonctions de calcul du raytracer, il n'y a jamais d'égalité, mais toujours des >= ou <= le problème ne se posera donc pas.

Bonnes vacances,
--
Kim