Vidéos et gif de surfaces (sage/python)
Bonjour,
je voudrais visualiser des surfaces et éventuellement faire des animations avec Sage. J'ai déjà essayé GeoGebra mais il galère énormément à faire ce que je lui demande c'est peut-être la contrainte d'afficher en temps réel ce que je lui demande, je ne sais pas ; mais en général, je pousse vite GeoGebra dans ses retranchements et ça rame comme pas possible).
1) Je voudrais visualiser des graphes de fonctions $\mathbb{R}^2 \rightarrow \mathbb{R}$, et faire en sorte que la couleur d'un point du graphe soit fonction du point en question (par exemple, je voudrais que les points du graphe de hauteur petite soient rouges, et que les points de hauteur grande soient bleus).
2) Je voudrais en tirer des animations, en gif ou en vidéo. Comment faire ?
J'imagine que ces questions sont un peu vagues, donc si vous connaissez des tutos orientés vers ce genre de choses, ça m'intéresse.
Bonne soirée !
je voudrais visualiser des surfaces et éventuellement faire des animations avec Sage. J'ai déjà essayé GeoGebra mais il galère énormément à faire ce que je lui demande c'est peut-être la contrainte d'afficher en temps réel ce que je lui demande, je ne sais pas ; mais en général, je pousse vite GeoGebra dans ses retranchements et ça rame comme pas possible).
1) Je voudrais visualiser des graphes de fonctions $\mathbb{R}^2 \rightarrow \mathbb{R}$, et faire en sorte que la couleur d'un point du graphe soit fonction du point en question (par exemple, je voudrais que les points du graphe de hauteur petite soient rouges, et que les points de hauteur grande soient bleus).
2) Je voudrais en tirer des animations, en gif ou en vidéo. Comment faire ?
J'imagine que ces questions sont un peu vagues, donc si vous connaissez des tutos orientés vers ce genre de choses, ça m'intéresse.
Bonne soirée !
Réponses
-
Bonjour marco !
C'est plutôt joli ! Est-ce que tu peux me donner quelques détails ? Je ne connais rien à Java et je voudrais trouver une solution à mon problème qui ne nécessite pas d'y passer trop de temps... -
Bonjour Georges,
Ce qui est embêtant, c'est que Java n'est pas un logiciel ou un langage de calcul mathématique. Si les surfaces que tu veux tracer nécessitent de calculer des séries, des intégrales, des transformées de Fourier, etc, il faudra le programmer. De même, si il faut résoudre des équations sans que la formule donnant la solution soit connue.
Peut-être peux-tu demander sur le forum "developpez.net" comment résoudre ton problème ? Il y a, sur ce site, un sous-forum consacré à Python.
forum Python de developpez.net -
Bonjour,
un gif animé n'est autre qu'une série d'images "fixes" mises bout-à-bout. Une fois toutes les images créées, j'utilise Imagemagick pour ce travail et généralement en une seule ligne de commande (temps de pause entre chaque image, nombre de boucles ou boucle infinie, etc).
Il faut juste faire attention à la numérotation des images: image001.gif, image010.gif et ainsi de suite, sinon image10 va s'insérrer juste après image1, ensuite image1, etc.
Paul -
@raoul.S : Wow, si j'arrive à faire ça ! Pfiou ! Je vais regarder ça, merci !
-
J'ai récupéré le fichier csv et légèrement modifié le code Python pour générer les 70 images.
# library from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import pandas as pd import seaborn as sns # Get the data (csv file is hosted on the web) # url = 'https://python-graph-gallery.com/wp-content/uploads/volcano.csv' fich = 'volcano.csv' data = pd.read_csv(fich) # Transform it to a long format df=data.unstack().reset_index() df.columns=["X","Y","Z"] # And transform the old column name in something numeric df['X']=pd.Categorical(df['X']) df['X']=df['X'].cat.codes # We are going to do 20 plots, for 20 different angles for angle in range(70,210,2): # Make the plot fig = plt.figure() ax = fig.gca(projection='3d') ax.plot_trisurf(df['Y'], df['X'], df['Z'], cmap=plt.cm.viridis, linewidth=0.2) # Set the angle of the camera ax.view_init(30,angle) # Save it # filename='Volcano_step'+str(angle)+'.png' filename='Volcano_step'+str(angle)+'.png' plt.savefig(filename, dpi=96) plt.gca()
A noter que "convert" est propre à Linux; il faut le remplacer par "magick" sous Windows. Ici j'ai utilisé "-delay 3" pour la pause et "-loop 0" pour une boucle infinie.magick -delay 3 -loop 0 *.png animation.gif
On voit bien ici que l'animation commence avec l'image 100 et finit avec la 98.
Paul -
Cool (tu)
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 163.1K Toutes les catégories
- 7 Collège/Lycée
- 21.9K Algèbre
- 37.1K Analyse
- 6.2K Arithmétique
- 52 Catégories et structures
- 1K Combinatoire et Graphes
- 11 Sciences des données
- 5K Concours et Examens
- 11 CultureMath
- 47 Enseignement à distance
- 2.9K Fondements et Logique
- 10.3K Géométrie
- 62 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 68 Informatique théorique
- 3.8K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 24 Mathématiques et finance
- 312 Mathématiques et Physique
- 4.9K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10K Probabilités, théorie de la mesure
- 772 Shtam
- 4.2K Statistiques
- 3.7K Topologie
- 1.4K Vie du Forum et de ses membres