La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

C++ 7ème cours Patrick Reuter maître de conférences

Présentations similaires


Présentation au sujet: "C++ 7ème cours Patrick Reuter maître de conférences"— Transcription de la présentation:

1 C++ 7ème cours Patrick Reuter maître de conférences

2 Aujourdhui Compilation Makefile

3 Jusquà présent g++ main.cpp Image.cpp Pixel.cpp Vector3d.cpp -o td4 Crée un fichier exécutable td4 Désavantage : Chaque fichier.cpp est recompilé à chaque fois

4 Compilation séparé main.cpp Image.cpp Pixel.cpp Vector3d.cpp main.o Image.o Pixel.o Vector3d.o g++ main.cpp –c main.o g++ Image.cpp –c Image.o g++ Pixel.cpp –c Pixel.o g++ Vector3d.cpp –c Vector3d.o Préprocesseur et compilation td4 Edition des liens Fichiers source Fichiers objet Fichier éxécutable g++ main.o Image.o Pixel.o Vector3d.o –o td4

5 Makefile target: dep1 dep2 command -Si le fichier dep1 est plus récent que le fichier target, ou si celui-ci n'existe pas, regénérer le target en exécutant command". -Si aucune commande n'est fournie, une règle par défaut est utilisée. target peut être un fichier à générer, ou le nom d'une tâche qu'on veut automatiser. On définit ainsi souvent une tâche clean dont le but n'est pas de créer un fichier de ce nom, mais bien de nettoyer le répertoire courant de ses fichiers inutiles (un exemple est donné dans la section suivante). Autre target spécifique, all : il est exécuté lorsqu'aucun paramètre n'est passé à make. Attention à make : l'espacement en début de seconde ligne, avant la commande, est en fait une tabulation !

6 Makefile # Makefile minimaliste all: td4 td4: main.o Image.o Pixel.o Vector3d.o g++ main.o Image.o Pixel.o Vector3d.o -o td4 main.o: main.cpp g++ main.cpp –c Image.o: Image.cpp g++ Image.cpp –c Pixel.o: Pixel.cpp g++ Pixel.cpp –c Vector3d.o: Vector3d.cpp g++ Vector3d.cpp –c clean: rm -f td4 main.o Image.o Pixel.o Vector3d.o

7 Intersection Rayon Sphere Rayon : x(t) = p x + t * d x y(t) = p y + t * d y z(t) = p z + t * d z Sphere : (x – c x ) 2 + (y - c y ) 2 + (z - c z ) 2 = r 2 Sphere center : (cx, cy, cz) Sphere radius :r Rayon position : (p x, p y, p z ) Rayon direction : (d x, d y, d z )

8 Intersection Rayon Sphere Rayon : x(t) = p x + t * d x y(t) = p y + t * d y z(t) = p z + t * d z Sphere : ( x – c x ) 2 + (y - c y ) 2 + (z - c z ) 2 = r 2 Sphere center : (cx, cy, cz) Sphere radius :r Rayon position : (p x, p y, p z ) Rayon direction : (d x, d y, d z )

9 Intersection Rayon Sphere Rayon : x(t) = p x + t * d x y(t) = p y + t * d y z(t) = p z + t * d z Par insertion : (p x + t * d x - cx) 2 + (p y + t * d y - c y ) 2 + (p z + t * d z - c z ) 2 = r 2 t 2 ( d x 2 + d y 2 + d z 2 ) + t ( 2 ( d z (p z – c z ) + d z (p z – c z ) + d z (p z – c z ) ) ) + (p x – c x ) 2 + (p y – c y ) 2 + (p z – c z ) 2 Ou bien a*t 2 + b*t + c = 0 avec : a = ( d x 2 + d y 2 + d z 2 ) b = ( 2 ( d x (p x – c x ) + d y (p y – c y ) + d z (p z – c z ) ) ) c = (p x – c x ) 2 + (p y – c y ) 2 + (p z – c z ) 2 Sphere : (x – c x ) 2 + (y - c y ) 2 + (z - c z ) 2 = r 2 Sphere center : (cx, cy, cz) Sphere radius :r Rayon position : (p x, p y, p z ) Rayon direction : (d x, d y, d z )

10 Intersection Rayon Sphere Rayon : x(t) = p x + t * d x y(t) = p y + t * d y z(t) = p z + t * d z Par insertion : (p x + t * d x - cx) 2 + (p y + t * d y - c y ) 2 + (p z + t * d z - c z ) 2 = r 2 t 2 ( d x 2 + d y 2 + d z 2 ) + t ( 2 ( d z (p z – c z ) + d z (p z – c z ) + d z (p z – c z ) ) ) + (p x – c x ) 2 + (p y – c y ) 2 + (p z – c z ) 2 Ou bien a*t 2 + b*t + c = 0 avec : a = ( d x 2 + d y 2 + d z 2 ) b = ( 2 ( d x (p x – c x ) + d y (p y – c y ) + d z (p z – c z ) ) ) c = (p x – c x ) 2 + (p y – c y ) 2 + (p z – c z ) 2 – r 2 Sphere : (x – c x ) 2 + (y - c y ) 2 + (z - c z ) 2 = r 2 Sphere center : (cx, cy, cz) Sphere radius :r Rayon position : (p x, p y, p z ) Rayon direction : (d x, d y, d z ) Si la direction est normalisée a = 1 t0 = (- b + sqrt(b^2 - 4*c)) / 2 t1 = (- b - sqrt(b^2 - 4*c)) / 2


Télécharger ppt "C++ 7ème cours Patrick Reuter maître de conférences"

Présentations similaires


Annonces Google