Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| python-visual [Le 15/01/2011, 13:46] – 79.84.100.67 | python-visual [Le 13/04/2017, 11:32] (Version actuelle) – tags L'Africain | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag> | ||
| + | ---- | ||
| + | |||
| + | ====== python-visual ====== | ||
| + | |||
| + | python-visual, | ||
| + | |||
| + | ===== Pré-requis ===== | ||
| + | |||
| + | * Disposer des [[: | ||
| + | * Disposer d'une connexion à Internet configurée et activée. | ||
| + | * Avoir les pilotes de sa [[: | ||
| + | |||
| + | ===== Installation ===== | ||
| + | |||
| + | Il suffit d' | ||
| + | |||
| + | Pour les versions précédentes d' | ||
| + | |||
| + | ===== Utilisation ===== | ||
| + | |||
| + | Visitez le [[http:// | ||
| + | |||
| + | Pour démarrer avec un [[http:// | ||
| + | |||
| + | < | ||
| + | from visual import * | ||
| + | |||
| + | floor = box (pos=(0, | ||
| + | ball = sphere (pos=(0, | ||
| + | ball.velocity = vector(0, | ||
| + | dt = 0.01 | ||
| + | |||
| + | while 1: | ||
| + | rate (100) | ||
| + | ball.pos = ball.pos + ball.velocity*dt | ||
| + | if ball.y < ball.radius: | ||
| + | ball.velocity.y = abs(ball.velocity.y) | ||
| + | else: | ||
| + | ball.velocity.y = ball.velocity.y - 9.8*dt | ||
| + | </ | ||
| + | |||
| + | Ouvrez ensuite une [[: | ||
| + | < | ||
| + | python balle.py | ||
| + | </ | ||
| + | |||
| + | Vous devriez voir apparaître une nouvelle fenêtre contenant l' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== Exporter au format vidéo en passant par pov===== | ||
| + | |||
| + | python-visual ne supporte pas de fonctionnalité pour exporter votre animation en fichier vidéo. Afin de remédier à ce problème, il existe une solution consistant à : | ||
| + | * Exporter la scène courante de l' | ||
| + | * Convertir chacun des fichiers '' | ||
| + | * Assembler toutes les images obtenues en une vidéo '' | ||
| + | |||
| + | ==== Téléchargement du module Python povexport.py ===== | ||
| + | |||
| + | povexport est une module Python disponible sur le site [[http:// | ||
| + | |||
| + | Après décompression de l' | ||
| + | |||
| + | * povexport.py | ||
| + | * povexample.py | ||
| + | * povexample_wood.py | ||
| + | |||
| + | C'est bien entendu le premier fichier, '' | ||
| + | |||
| + | ==== Installation de l' | ||
| + | |||
| + | Il suffit d' | ||
| + | |||
| + | ==== Écriture du nouveau script VPython ===== | ||
| + | |||
| + | Reprenons notre script d' | ||
| + | |||
| + | < | ||
| + | from visual import * | ||
| + | import povexport | ||
| + | import os | ||
| + | |||
| + | #creating a directory for stocking *.pov files | ||
| + | pov_output = ' | ||
| + | if not os.path.isdir(pov_output): | ||
| + | os.mkdir(pov_output) | ||
| + | |||
| + | #necessary when exporting to pov file to capture all the scene | ||
| + | scene.range = 7 | ||
| + | |||
| + | floor = box (pos=(0, | ||
| + | ball = sphere (pos=(0, | ||
| + | ball.velocity = vector(0, | ||
| + | dt = 0.01 | ||
| + | |||
| + | for image_num in range(100): | ||
| + | rate (100) | ||
| + | ball.pos = ball.pos + ball.velocity*dt | ||
| + | if ball.y < ball.radius: | ||
| + | ball.velocity.y = abs(ball.velocity.y) | ||
| + | else: | ||
| + | ball.velocity.y = ball.velocity.y - 9.8*dt | ||
| + | |||
| + | #exporting to pov file | ||
| + | basename = ' | ||
| + | filename = os.path.join(pov_output, | ||
| + | povexport.export(filename=filename) | ||
| + | print filename | ||
| + | </ | ||
| + | |||
| + | Après avoir vérifié que le fichier '' | ||
| + | |||
| + | < | ||
| + | python balle_video.py | ||
| + | </ | ||
| + | |||
| + | va créer 100 fichiers balleXXX.png dans le sous-répertoire '' | ||
| + | |||
| + | ==== Création des fichiers images png ===== | ||
| + | |||
| + | Déplacez vous dans le répertoire '' | ||
| + | |||
| + | < | ||
| + | cd pov_output | ||
| + | </ | ||
| + | |||
| + | La syntaxe pour créer un fichier image '' | ||
| + | |||
| + | < | ||
| + | povray +Oballe000.png balle000.pov | ||
| + | </ | ||
| + | |||
| + | Afin de traiter les 100 fichiers en une seule commande, on va utiliser une boucle. (voir ce [[: | ||
| + | |||
| + | < | ||
| + | for file in *.pov; do povray +O${file%.pov}.png $file; done | ||
| + | </ | ||
| + | |||
| + | qui a créer 100 fichiers png. | ||
| + | |||
| + | ==== Création du fichier image avi ===== | ||
| + | |||
| + | Nous pouvons maintenant encoder les fichiers images '' | ||
| + | |||
| + | < | ||
| + | mencoder mf://*.png -mf w=320: | ||
| + | </ | ||
| + | |||
| + | et visualiser la vidéo créée à l'aide d'un [[: | ||
| + | |||
| + | ===== Désinstallation ===== | ||
| + | |||
| + | Pour supprimer cette application, | ||
| + | |||
| + | =====Voir aussi===== | ||
| + | |||
| + | * [[http:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | // | ||
