Label et boucle

Tout ce qui concerne l'utilisation ou l'installation d'Asymptote.

Modérateur: gdm_asy

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.

Label et boucle

Messagepar Coyote » Mercredi 04 Juin 2008, 18:15

Bonjour à tous,

toujours du asymptote, un rendu toujours aussi fantastique ... mais voilà je suis sur un os :
En fait je souhaite faire une boucle (avantage indéniable de Asymptote) et chaque fois qu'il me trace un segment, j'aimerai un label en rapport avec l'itération de ma boucle !
Un ECM (pas minimal d'accord :oops: ) mais si j'écris ça :

Code: Tout sélectionner
\documentclass[a4paper,10pt]{article}
\usepackage{asymptote}
\usepackage{verbatim}

\begin{asy}

unitsize(x=1cm,y=1cm) ;
import graph ;

real xmin = -2 ; real xmax = 6 ; real ymin = -1 ; real ymax = 5 ;

// Création des axes :
xaxis(-2, 6, Arrow) ;
yaxis(-1, 5, Arrow) ;
label("O", (-.125,-.125), SW, currentpen+fontsize(10)) ;
label("$\vec{i}$", (.5,0), S, currentpen+fontsize(10)) ;
label("$\vec{j}$", (0,0.5), W, currentpen+fontsize(10)) ;

for (int n = 0 ; n < 5; ++ n) {
   draw((n,0) -- (n, n)) ;
   label("n" , (n, n), N) ;
}

\end{asy}


Il m'affiche en haut de chaque bâton, n, et non pas le nombre ! Ce que j'ai pu lire et compris c'est qu'il prend ceci comme la liste "n" et non comme le nombre n.
J'ai essayé de créer une liste et de la remplir à chaque itération mais pas de succès non plus ! Si quelqu'un a une idée ?

Merci d'avance.
Coyote
Kilo-utilisateur
 
Messages: 117
Inscription: Dimanche 06 Mai 2007, 08:23
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: [Asymptote] Label et boucle !

Messagepar MB » Mercredi 04 Juin 2008, 20:10

Coyote a écrit:Il m'affiche en haut de chaque bâton, n, et non pas le nombre !


Oui, c'est normal.
Tu peux essayer d'utiliser la fonction format pour transformer un entier en chaine de caractères.
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: 6872
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Label et boucle !

Messagepar OG » Mercredi 04 Juin 2008, 20:19

Bonsoir

Une solution consiste à écrire

Code: Tout sélectionner
 string a=string(n);
 label(a , (n, n), N) ;


On peut faire des choses plus complexes, un jour je ne sais pas ce qui m'a pris pour une légende :

Code: Tout sélectionner
  legdicho="$\left\{\begin{aligned} \null & a_{"+string(i)+"}="+string(masuite[i][0])+"\\ & b
_{"+string(i)+"}="+string(masuite[i][1])+"\end{aligned}\right.$";


Cordialement
O.G.
OG
Modérateur
 
Messages: 2261
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: [Asymptote] Label et boucle !

Messagepar Coyote » Mercredi 04 Juin 2008, 20:27

Merci à tous les deux pour les réponses ... !

J'ai essayé format, sans succès, je vais m'y plonger un peu plus dedans .. !

Nickel pour la solution de OG. Je vais maintenant essayer de comprendre le pourquoi du comment ... !

Merci en tout cas !

Cordialement.
Coyote
Kilo-utilisateur
 
Messages: 117
Inscription: Dimanche 06 Mai 2007, 08:23
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Label et boucle !

Messagepar OG » Mercredi 04 Juin 2008, 20:42

Pour tout avouer, j'ai appris cela sur le site de, devinez qui, Philippe Ivaldi, évidemment.
D'après le manuel

string string(real x, int digits=realDigits)
casts x using precision digits to a string, using the C locale;


Après on peut jouer avec la concaténation, etc.

O.G.
OG
Modérateur
 
Messages: 2261
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: [Asymptote] Label et boucle !

Messagepar MB » Mercredi 04 Juin 2008, 21:06

Bizarre que ça ne marche pas format.
D'après le manuel :

string format(string s, int n)
returns a string containing n formatted according to the C-style format string s using the current locale;
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: 6872
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Label et boucle !

Messagepar OG » Mercredi 04 Juin 2008, 21:12

Chez moi la solution de MB fonctionne.

Code: Tout sélectionner
string a=format(n);
label(a , (n, n), N) ;


O.G.
OG
Modérateur
 
Messages: 2261
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: [Asymptote] Label et boucle !

Messagepar Coyote » Jeudi 05 Juin 2008, 20:57

Bonsoir,

Ok pour le format, je ne l'avais pas vu comme ça ... effectivement, c'est mieux en passant par une variable ... :oops: .

Pour la soluce d'OG, dans le second exemple, dans le :

Code: Tout sélectionner
a_{"+string(i)+"}


je capte bien le + avant le string(i), on rajoute le "i", mais pas le + après ????

Pourquoi doit-on mettre ce + après ? Que rajoute-t-on ?

Argh .... ! Je sens que je ne suis pas au bout de mes peines ... :? .
Coyote
Kilo-utilisateur
 
Messages: 117
Inscription: Dimanche 06 Mai 2007, 08:23
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Label et boucle !

Messagepar OG » Jeudi 05 Juin 2008, 21:13

Bonsoir

La concaténation (dur à dire dur à écrire) se fait par +.
Si tu veux créer des étiquettes du styles $u_{10}$ à partir d'une boucle il suffit d'écrire
Code: Tout sélectionner
string a="$u_{"+string(i)+"}$";

(le code était sur 2 lignes)

Cordialement
O.G.
OG
Modérateur
 
Messages: 2261
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: [Asymptote] Label et boucle !

Messagepar Coyote » Vendredi 06 Juin 2008, 08:37

Oui c'est ce que j'ai vu ... et justement c'est le dernier + que je ne comprends pas.

Code: Tout sélectionner
 string a="$u_{"+string(i)+"}$";


Ce que je comprends du code, on créé une chaine a, on met dedans u_, puis on ajoute (1er plus) l'indice et après ????????????

Pourquoi ce deuxièrme plus ? Qu'ajoute-ton ??

Il faut dire que je ne maitrise absolument ni C, ni C++ ?? D'ailleurs, faut-il que je m'y plonge en parallèle ?

Merci
Coyote
Kilo-utilisateur
 
Messages: 117
Inscription: Dimanche 06 Mai 2007, 08:23
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Label et boucle !

Messagepar OG » Vendredi 06 Juin 2008, 09:13

Bonjour

Je n'ai pas été assez clair.
Si tu veux créer la chaîne de caractère $u_i$ (avec bien sûr i un vrai entier issu de string(i)) le code "$u_{"+string(i)+"}$" donnera la bonne chaîne (ne pas oublier { car sinon u_10 ne donnera pas ce qu'il faut) : on assemble $u_{ i }$ (morceau 1 morceau 2 morceau 3).

Il faut bien voir que "string(i)" donnera la chaîne string(i) et pas i, d'où les 3 morceaux.
Mis à part cela je ne comprends pas trop.

Inutile de faire du C (ou du C++) pour continuer à faire du Asymptote, si tu as déjà fait un peu de Pascal ou un autre langage cela suffira pour les besoins courants et il y a toujours le forum. Ce qui compte plus c'est de "voir" les algorithmes.

Il y a un document qui a l'air très bien où on apprend la programmation (début) avec Asymptote. Malheureusement c'est en hollandais.

http://users.fulladsl.be/spb10695/asymptote.html

ça ne doit pas être très compliqué à traduire, mais il faut du temps.

O.G.
OG
Modérateur
 
Messages: 2261
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: [Asymptote] Label et boucle !

Messagepar Coyote » Vendredi 06 Juin 2008, 09:17

Merci pour les réponses ... ! Effectivement sans les plus on n'obtient pas ce que l'on veut ... !


Reste plus qu'à faire des diapos avec les boucles mais ça c'est une autre histoire ... :D .
Coyote
Kilo-utilisateur
 
Messages: 117
Inscription: Dimanche 06 Mai 2007, 08:23
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Label et boucle !

Messagepar Ph. Ivaldi » Vendredi 06 Juin 2008, 10:25

Coyote a écrit:Reste plus qu'à faire des diapos avec les boucles mais ça c'est une autre histoire ... :D .

Si ça peut aider, la compilation avec pdflatex du code suivant donne le pdf joint.
Code: Tout sélectionner
\documentclass[pdftex]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{textcomp}
\usepackage[inline]{asymptote}

\begin{document}
Du texte, du texte, du texte, du texte, du texte,
du texte, du texte, du texte, du texte, du texte,
du texte, du texte, du texte, du texte, du texte,
du texte, du texte, du texte.
\begin{center}
\begin{asy}
import animate;
animation A;

size(5cm);
for (int i=0; i < 10; ++i) {
  save();
  label(scale(5)*string(i),white);
  fill(unitcircle);
  A.add();
  restore();
}

label(A.pdf("controls",keep=true));
\end{asy}
\end{center}
Du texte, du texte, du texte, du texte, du texte,
du texte, du texte, du texte, du texte, du texte,
du texte, du texte, du texte, du texte, du texte,
du texte, du texte, du texte.
\end{document}

inlinemovie.pdf
(63.25 Kio) Téléchargé 87 fois
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Label et boucle !

Messagepar Coyote » Vendredi 06 Juin 2008, 10:58

Merci pour l'info !

En effet, j'avais déjà entendu parler de ce paquet animate, compatible seulement acrobat d'ailleurs.

Le soucis c'est qu l'on reste sur fichier << texte >> et non une présentation projetable type beamer !!!

J'avoue avoir eu l'idée utopique de mélanger du code beamer (latex) avec du code asymptote mais forcément ça plante. Par contre l'idée du paquet animate est à tester dans beamer ..... Ca peut être une solution très honorable.

Merci pour le tuyau :D .

Sinon j'ai entendu parler de animate ... je vais profiter de mon dernier mois de juin pseudo-libre pour tester tout ça !
Coyote
Kilo-utilisateur
 
Messages: 117
Inscription: Dimanche 06 Mai 2007, 08:23
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Label et boucle !

Messagepar Ph. Ivaldi » Vendredi 06 Juin 2008, 11:28

Coyote a écrit:J'avoue avoir eu l'idée utopique de mélanger du code beamer (latex) avec du code asymptote mais forcément ça plante.


Non, il n'y pas de problème avec beamer à condition de passer l'option fragile aux frames:

Code: Tout sélectionner
\documentclass[pdftex]{beamer}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{textcomp}
\usepackage[inline]{asymptote}

\begin{document}
\begin{frame}[fragile]
  Du texte, du texte, du texte.
  \begin{center}
\begin{asy}
import animate;
animation A;

size(5cm);
for (int i=0; i < 10; ++i) {
  save();
  label(scale(5)*string(i),white);
  fill(unitcircle);
  A.add();
  restore();
}

label(A.pdf("controls",keep=true));
\end{asy}
  \end{center}
  Du texte, du texte, du texte.
\end{frame}
\begin{frame}[fragile]
  Du texte, du texte, du texte.
  \begin{center}
\begin{asy}
import animate;
animation A;

size(5cm);
for (int i=0; i < 10; ++i) {
  save();
  label(scale(5)*string(9-i),white);
  fill(shift(-0.5,-0.5)*unitsquare,blue);
  A.add();
  restore();
}

label(A.pdf("controls",keep=true));
\end{asy}
  \end{center}
  Du texte, du texte, du texte.
\end{frame}
\end{document}


inlinemovie.pdf
(90.78 Kio) Téléchargé 82 fois
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Label et boucle !

Messagepar Coyote » Vendredi 06 Juin 2008, 12:49

Argh, désolé je me suis mal exprimé !! En fait c'est mettre du code beamer (genre la commande \pause) dans l'environnement asy !

C'est là que ça coince !

Merci en tout cas pour l'aide ...

En relisant mon dernier post, c'était slide que je voulais aussi tester !!!
Coyote
Kilo-utilisateur
 
Messages: 117
Inscription: Dimanche 06 Mai 2007, 08:23
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant


Retourner vers Asymptote

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités