Comparaisons graphiques Asymptotes/pstricks/TiKz et autres

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Messagepar Altermundus » Mercredi 30 Mai 2007, 18:06

francois a écrit:Très joli !

Comme je suis en train de bosser sur package de stats avec Tikz cet exercice m'a intéressé et cela m'a montré qu'il manquait beaucoup de choses dans mes modules. Je donne le code mais il vous faut ma classe mais aussi lcertains modules.
Au passage quelle est la bonne solution pour montrer des les images ?

Code: Tout sélectionner
\documentclass[]{prof}
\param[]
\begin{document}
\begin{tikzpicture} [xscale=2]
\tkzinit[xmin=-2,xmax=40,xstep=5,ymin=0,ymax=20,ystep=2]
\tkzgrid[color=orange,subcolor=orange!50,sub,subxstep=1,subystep=1](0,0)(40,20)
\tkzx[label=$n$]
\tkzy[label={$u_n$}]
\nuage[mark=$\mathbf{+}$]{%
2/6/,
3/4.5/,
4/7/,
5/11/,
6/13/,
10/9.2/,
15/8/,
20/10.3/,
30/9.9/,
35/10/,
38/10.1/}
\draw[fill=lightgray,opacity=0.5] (0,4.5) rectangle (8,5.5);
\draw[blue,dashed,line width=2pt](4,0)--(4,4.5);
\draw[line width=2pt] (-.2,5.75)--(-.2,5.5)--(.2,5.5)--(.2,5.75);
\draw[line width=2pt] (-.2,4.25)--(-.2,4.5)--(.2,4.5)--(.2,4.25);
\node at (-0.5,5) {$\ell$};
\node[draw,inner sep =10pt,fill=orange!30,text width=6cm,text justified](T1) at (3,8) {\begin{center}
 Étape n°1
\end{center}
 Pour n'importe quel intervalle I ouvert et centré en $\ell$ choisi (en particulier pour des intervalles aussi petits que l'on veut).};
\draw[->, line width=1pt, color=red,>=latex] (T1.west) to [bend right, in=-160] (0,5.5);
\node[draw,inner sep =10pt,fill=orange!30,text width=4cm,text justified](T2) at (6,2) {\begin{center}
   Étape n°2
\end{center}
 Il existe un rang $n_0$ tel que $u_n \in I$ pour tout $n\geq n_0$};
\draw[->, line width=1pt, color=red,>=latex] (T2.west) to [bend right, in=-160] (4,0);
 \end{tikzpicture}
 \end{document}



Alain

[center]Image[/center]
Altermundus
Giga-utilisateur
 
Messages: 557
Inscription: Lundi 28 Mai 2007, 09:31
Localisation: Paris
Statut actuel: Actif et salarié | Enseignant

Publicité

Messagepar guiguiche » Mercredi 30 Mai 2007, 18:14

Bah, si Patrick fait son stage pendant mes vacances (zone A) et comme je vais souvent en Charente chez mes beaux-parents, vous pouvez me compter. :D
En insistant un peu (beaucoup?), peut-être même que je pourrais convaincre mon épouse d'y participer aussi. :)
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
guiguiche
Modérateur
 
Messages: 8073
Inscription: Vendredi 06 Janvier 2006, 15:32
Localisation: Le Mans
Statut actuel: Actif et salarié | Enseignant

Messagepar francois » Mercredi 30 Mai 2007, 18:22

Moi j'adorerais des formations sur TeXgraph. Mais je suis dans l'académie de Versailles, alors ça complique un peu.
En fait, j'adorerais des formations sur Asymptote, sur LaTeX, sur Pgf PsTricks. Tout m'intéresse !!!

Hélas, dans l'éducation nationale, toutes ces formations n'existent pas.

Heureusement, il y a MathemaTeX :wink:
francois
Giga-utilisateur
 
Messages: 856
Inscription: Mercredi 20 Septembre 2006, 23:14
Localisation: Antony
Statut actuel: Actif et salarié | Enseignant

Messagepar Ph. Ivaldi » Mercredi 30 Mai 2007, 18:26

MB a écrit:Il me semble d'après mes tests que la routine NoZero ne fonctionne pas (ça ne supprime rien). Par contre, pas de problème pour NoZeroFormat.


Sissi, ça marche:http://piprim.tuxfamily.org/asymptote/graph/index.html figure 16 et 17.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Messagepar MB » Mercredi 30 Mai 2007, 19:00

C'est bizarre ... mais ce code là n'enlève pas les labels chez moi.

Code: Tout sélectionner
unitsize(x=3cm,y=1.5cm);
import graph;

real xmin=-1;
real xmax=5;
real ymin=-1;
real ymax=12;

xlimits(xmin, xmax);
ylimits(ymin, ymax);

// Création du quadrillage :
yaxis( BottomTop(), mediumgrey, LeftTicks("%", Step=1, step=1/3, pTick=mediumgrey, ptick=lightgrey, extend=true) );
xaxis( LeftRight(), mediumgrey, LeftTicks("%", Step=1, step=1/6, pTick=mediumgrey, ptick=lightgrey, extend=true) );

// Création des axes :
yaxis( XZero(), black, Ticks( modify=NoZero, Step=1, step=1/3, pTick=black, ptick=black, end=false, endlabel=false), Arrow );
xaxis( YZero(), black, Ticks( modify=NoZero, Step=1, step=1/6, pTick=black, ptick=black, end=false, endlabel=false), Arrow );

// Définition des fonctions f et g :
real f(real t) {return 5*exp(-2*t)+5;}
real g(real t) {return 10-2*sin(5*t)*exp(-t);}

// Tracé des courbes :
draw(graph(f,0,5,n=250),1bp+red);
draw(graph(g,0,5,n=250),1bp+blue);

shipout(bbox(xmargin=1mm,invisible));
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6892
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Messagepar samuel.biton » Mercredi 30 Mai 2007, 19:21

Bonjour,

je vois que les arguments ont été bon train. Difficile de les reprendre.

Je joins simplement un fichier .teg en rapport avec le dessin sur les limites de suites pour illustrer l'une des différences je vois entre TeXgraph et les autres logiciels de dessins programmables.

Le même fichier peut servir de deux manières
a) pour insertion dans un document papier (ou pdf ...)
b) pour visualisation dynamique.

Mes excuses car c'est un fichier datant de mes débuts ou presque.... c'est donc surement très mal fait et essthétiquement très discutable en comparaison de ce qu'on a vu dans ce fil, mais je n'ai pas le temps de reprendre. J'ai juste ajouter un "tube" utilisant les dernières fonctionalités de TeXgraph1.92. (il est donc désactivé)

Samuel
Fichiers joints
defliminfini1.txt
(3.08 Kio) Téléchargé 102 fois
samuel.biton
Déca-utilisateur
 
Messages: 20
Inscription: Dimanche 25 Mars 2007, 13:20

Messagepar Ph. Ivaldi » Mercredi 30 Mai 2007, 19:22

MB a écrit:C'est bizarre ... mais ce code là n'enlève pas les labels chez moi.


Bon, c'est un problème de précision des calculs.
Ouvre le fichier graph.asy (répertoire d'installation d'Asymptote) et cherche la routine "NoZero(tickvalues v)".
Remplace là par:

Code: Tout sélectionner
tickvalues NoZero(tickvalues v)
{
  int i=find(abs(v.major) < 10.0^3*epsilon);
  if(i >= 0) v.major.delete(i);
  return v;
}


Je préviens le patron et ce sera sûrement demain dans la version SVN.

Merci d'avoir déniché un bogue.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Messagepar MB » Mercredi 30 Mai 2007, 19:51

@Ph. Ivaldi : Merci, ça fonctionne parfaitement maintenant. :wink:
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6892
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Messagepar Altermundus » Mercredi 30 Mai 2007, 19:59

Ph. Ivaldi a écrit:
MB a écrit:C'est bizarre ... mais ce code là n'enlève pas les labels chez moi.


Bon, c'est un problème de précision des calculs.
Ouvre le fichier graph.asy .


Une question naive : Si vous voulez modifier la position des labels, les effacer grossir les ticks, les modifier etc... vous devez modifier automatiquement vos modules (ici graph.asy) ou bien vous pouvez faire cela directement dans vos sources...

Alain
Altermundus
Giga-utilisateur
 
Messages: 557
Inscription: Lundi 28 Mai 2007, 09:31
Localisation: Paris
Statut actuel: Actif et salarié | Enseignant

Messagepar MB » Mercredi 30 Mai 2007, 22:45

Altermundus a écrit:Une question naive : Si vous voulez modifier la position des labels, les effacer grossir les ticks, les modifier etc... vous devez modifier automatiquement vos modules (ici graph.asy) ou bien vous pouvez faire cela directement dans vos sources...


On peut configurer ça dans nos sources oui. :)
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6892
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Messagepar francois » Jeudi 31 Mai 2007, 00:46

J'ai une question pour Samuel. Le fichier que tu nous proposes defliminfini.teg peut se lire via une visualisation dynamique. Je voulais savoir :

1) cette visualisation dynamique ne peut se faire seulement via TeXgraph ?
Si oui, les labels ne sont pas interprétés alors ?

2) En fait, quand tu parles de visualisation dynamique, tu veux juste dire qu'avec les boutons on peut réduire ou agrandir le tuyau, c'est ça ?

3)
Samuel a écrit:pour illustrer l'une des différences je vois entre TeXgraph et les autres logiciels de dessins programmables.
Justement lesquels d'après toi ? Je ne saisi pas ce que tu as voulu dire.

4)
Samuel a écrit:J'ai juste ajouter un "tube" utilisant les dernières fonctionalités de TeXgraph1.92. (il est donc désactivé)
Que veux tu dire ? Qu'est ce qui est désactivé ?
francois
Giga-utilisateur
 
Messages: 856
Inscription: Mercredi 20 Septembre 2006, 23:14
Localisation: Antony
Statut actuel: Actif et salarié | Enseignant

Messagepar samuel.biton » Jeudi 31 Mai 2007, 06:40

Francois :

1) cette visualisation dynamique ne peut se faire seulement via TeXgraph ?
Si oui, les labels ne sont pas interprétés alors ?

oui,et disons oui et non. On peut faire interpréter les labels en direct depuis la version 1.9.
Seulement, il s'agit d'une compilation $\LaTeX$ en sous-main, donc c'est gourmand en ressource. Par conséquent il ne faut pas multiplier les Labels de ce type (variable selon la machine que tu as néanmoins). Je te joins un exemple.

2) En fait, quand tu parles de visualisation dynamique, tu veux juste dire qu'avec les boutons on peut réduire ou agrandir le tuyau, c'est ça ?

En fait, tu peux faire varier des paramètres de la figure et celle-ci se modifie "en direct". Cela peut aussi se faire à la souris. Par exemple dans le cas des "tube" dans l'espace, tu peux définir des variables et créer un bouton pour les faire évoluer. (pour la géométrie, tu peux manipuler des poins à la souris)


Justement lesquels d'après toi ? Je ne saisi pas ce que tu as voulu dire.

En fait tous à ma connaissance, sauf peut-être asymptote qui apparemment possède un GUI.
Que veux tu dire ? Qu'est ce qui est désactivé ?

Juste que le contenu de l'objet utilisateur est "commenté" à l'aide d'accolade.


Samuel
Fichiers joints
NbDerive3formulelatex.txt
(7.7 Kio) Téléchargé 98 fois
samuel.biton
Déca-utilisateur
 
Messages: 20
Inscription: Dimanche 25 Mars 2007, 13:20

Messagepar francois » Jeudi 31 Mai 2007, 07:39

Merci beaucoup pour ta réponse rapide. Là, il faut que j'aille travailler, je regarderai tout ça plus tard.
francois
Giga-utilisateur
 
Messages: 856
Inscription: Mercredi 20 Septembre 2006, 23:14
Localisation: Antony
Statut actuel: Actif et salarié | Enseignant

Messagepar P.Fradin » Jeudi 31 Mai 2007, 07:59

Bonjour françois,

Comme tu es déjà allé sur le forum de TeXgraph, regarde dans la rubrique Exemples/Analyse, télécharge un des deux exemples (méthode d'Euler ou sommes de Riemann), essaie le dans TeXgraph (tu verras un menu sous formes de boutons dans la marge de gauche de la fenêtre) et tu comprendras ce que voulait dire Samuel en parlant de figures dynamiques. Bien sûr cet aspect n'apparait pas dans les images exportées puisque cela se passe en amont.
P.Fradin
 

Messagepar Ph. Ivaldi » Jeudi 31 Mai 2007, 10:38

Ph. Ivaldi a écrit:
MB a écrit:C'est bizarre ... mais ce code là n'enlève pas les labels chez moi.

Bon, c'est un problème de précision des calculs.
Je préviens le patron et ce sera sûrement demain dans la version SVN.
Merci d'avoir déniché un bogue.


Dans le dernière version SVN, John a corrigé le problème mieux que je ne l'ais fait.
Mieux vaut donc se mettre à jour.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Messagepar francois » Jeudi 31 Mai 2007, 10:40

Merci beaucoup pour toutes ces infos. Je suis un peu pris en ce moment, car je vais faire un bac blanc avec mes élèves. Mais dès que possible, je me plonge à corps perdu dans tout ça. :P

Je trouve que ce genre de topic à base de saine et cordiale compétition est très positif. Personnellement, j'y ai découvert plein de nouvelles choses. Je me lance dans un petit résumé personnel.

1) Pstriks (je connaissais déjà) : parfait (je trouve) pour tout ce qui est 2D et avec l'avantage d'avoir un code intelligible directement dans le source .tex. Mais très limité en 3D (pas trop fait pour).

2) Pgf/Tikz : Je ne le connaissais pas ou très peu. Je le considérais à tort comme un sous Pstricks. Mais force est de constater qu'avec les packages perso d'Altermundus on peut en faire autant que pstricks, voire peut-être même plus en 3D.

3) Asymptote : qui lui à l'air effectivement d'avoir des possibilités infinies. On a la possibilité de mettre le code intelligible dans le source .tex. Petit bémol : au départ, l'initiation semble (restons prudent, j'ai très peu testé) un peu difficile.

4) TeXgraph : qui semble avoir des possibilités infinies aussi. Par rapport à Asymptote, je dirais que c'est l'inverse dans le sens où :
- le petit inconvénient (j'ai bien dit petit) pour moi est que le code intelligible n'est pas dans le source .tex. On peut quand même signaler qu'il est possible d'exporter le code dans le source .tex soit en pstricks soit en pgf/tikz (entre autres). Le code perd alors un peu de son intelligibilité (plein de \psline par exemple) mais pas tant que ça non plus car chaque élément graphique est visible clairement, et par exemple on peut facilement accéder aux labels et les affiner par exemple.
- le gros avantage de TeXgraph c'est que sa prise en main est je trouve assez rapide. La doc est très bien faite et en français en plus (pour un ignare comme moi c'est pas du luxe). Le côté visualisation en direct via une sorte de "brouillon" est vraiment bien aussi.


Voilà, après il faut les tester, les apprivoiser. J'essayerai pendant les vacances. Et encore bravo pour les concepteurs.
francois
Giga-utilisateur
 
Messages: 856
Inscription: Mercredi 20 Septembre 2006, 23:14
Localisation: Antony
Statut actuel: Actif et salarié | Enseignant

Messagepar MB » Jeudi 31 Mai 2007, 13:46

Ph. Ivaldi a écrit:Dans le dernière version SVN, John a corrigé le problème mieux que je ne l'ais fait.
Mieux vaut donc se mettre à jour.


Merci. :D
J'ai fait la MAJ et j'ai testé. Pas de problème cette fois. :wink:
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6892
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Messagepar Ph. Ivaldi » Jeudi 31 Mai 2007, 15:04

Ph. Ivaldi a écrit:
P.Fradin a écrit:A mon tour de poser un petit défi:
Il s'agit de tracer une courbe gauche sur une surface fermée en traitant les parties cachées. Par exemple la courbe définie par x(t)=3sin(t)cos(2t), y(t)=3sin(t)sin(2t) et z(t)=3cos(t), cette courbe est sur la sphère de centre O de rayon 3.

Magnifique!

J'ai un petit bogue dans mon code pour faire la même chose... impossible de le dénicher à cette heure ci.


Bon j'ai enfin réussi à faire cette belle animation.
Mon problème a été surtout algorithmique et je remercie OG de m'avoir débloquer.
@P. Fradin: vous êtes trop fort!

Dans l'animation j'ai préféré faire glisser la courbe plutôt que faire tourner la sphère, je trouve que c'est plus lissible.

Code: Tout sélectionner
import graph3;
import animate;
import solids;

animation A;
A.index=100;
// A.global=true;

int nbpts=200;
real pas=2*pi/nbpts;
int angle=10;

unitsize(1cm);

triple[] P;
real t=-pi;
for (int i=0; i<nbpts; ++i) {
  t+=pas;
  P.push((3sin(t)*cos(2t),3sin(t)*sin(2t),3cos(t)));
}

path3[] graphparcel(triple[] p,bool[] b)
{
  path3[] op=new path3[];
  real l=p.length;
  if(l != b.length) abort(differentlengths);
  int j=0,i=0;
  do {
    while(i < l && !b[i]) ++i;
    if(i < l) op[j]=new path3;
    while(i < l && b[i]) {
      op[j]=op[j]..p[i];
      ++i;
    }
    ++j;
  } while(i < l);
  return op;
}

currentprojection=orthographic((0,5,2));
currentlight=(0,5,5);

transform3 t=rotate(angle,(0,0,0),(1,0.25,0.25));
revolution r=sphere(O,3);
r.filldraw(lightgrey);
skeleton s;
r.transverse(s,reltime(r.g,0.5));
r.longitudinal(s);
draw(s.back,linetype("8 8",8));
draw(s.front);

for (int phi=0; phi<360; phi+=angle) {
  bool[] backb,frontb;
  triple[] backp,frontp;
  path3[] backth,fronth;
  save();
  r=t*r;
  int nf,nb;
  bool continuf=true, continub=true;
  for (int i=0; i<nbpts; ++i) {
    P[i]=t*P[i];
    bool test=dot(P[i],currentprojection.camera) > 0;
    backp.push(P[i]);
    backb.push(!test);
    frontp.push(P[i]);
    frontb.push(test);
  }
  draw(graphparcel(frontp,frontb),1mm+blue);
  draw(graphparcel(backp,backb),grey);
  A.add();
  restore();
}

A.movie(0,200);

Ce petit concours a permi de déceler un autre bogue dans les routines de projection d'Asymptote et donne l'idée d'ajouter de nouvelles fonctionnalités; il faudra le renouveller de temps en temps...
Voilà, pour moi le concours s'arréte là pour un momment, la géométrie m'appelle ;-)
Fichiers joints
courbe_sur_sphere.gif
(294.39 Kio) Téléchargé 623 fois
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Messagepar P.Fradin » Jeudi 31 Mai 2007, 17:12

Ph. Ivaldi a écrit:Bon j'ai enfin réussi à faire cette belle animation.
Mon problème a été surtout algorithmique et je remercie OG de m'avoir débloquer.
@P. Fradin: vous êtes trop fort!

Dans l'animation j'ai préféré faire glisser la courbe plutôt que faire tourner la sphère, je trouve que c'est plus lissible.


Bravo, c'est superbe! Je ne sais pas si je suis trop fort, mais vous l'êtes au moins autant puisque le défi a été relevé.

Il y a bien un prolongement naturel à l'exercice. C'est de généraliser à une surface autre que la sphère, mais ce sera peut-être pour une autre fois...

A bientôt
P.Fradin
 

Messagepar Ph. Ivaldi » Jeudi 31 Mai 2007, 18:57

P.Fradin a écrit:Je ne sais pas si je suis trop fort, mais vous l'êtes au moins autant puisque le défi a été relevé.


Non non, j'insiste. Moi je n'ai pas créé Asymptote.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

PrécédenteSuivante

Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot] et 4 invités