Passation de paramètre

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.

Passation de paramètre

Messagepar Zaf11000 » Mercredi 24 Février 2010, 11:53

Bonjour à tous,
je voudrais créer une procédure monrepereamoi(??? thesize, int xmin, int xmax, int ymin, int ymax).
Je n'arrive pas à déterminer le type du paramètre thesize pour que dans ma procédure monrepereamoi je puis faire passer ce paramètre thesize à la procédure size d'Asymptote.
Merci pour votre aide.
Zaf11000
Kilo-utilisateur
 
Messages: 126
Inscription: Jeudi 18 Février 2010, 22:52
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Asymptote passation de paramètre

Messagepar OG » Mercredi 24 Février 2010, 12:46

real

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

Re: Asymptote passation de paramètre

Messagepar Zaf11000 » Mercredi 24 Février 2010, 13:05

Bonjour Olivier,
J'ai pris le type real et j'ai le message :
no matching variable 'thesize'.
Zaf11000
Kilo-utilisateur
 
Messages: 126
Inscription: Jeudi 18 Février 2010, 22:52
Statut actuel: Actif et salarié | Enseignant

Re: Asymptote passation de paramètre

Messagepar GMaths » Mercredi 24 Février 2010, 13:09

Zaf11000 a écrit:je voudrais créer une procédure monrepereamoi(??? thesize, int xmin, int xmax, int ymin, int ymax).

Je rappelle qu'il y a l'extension graph fournie avec asymptote qui fournit notamment xaxis et yaxis...

... mais ne pas oublier l'extension graph_pi de Philippe, dont voici un exemple d'utilisation : il y a notamment défini trois fonctions : graphicsrules, grid et cartesianaxis.

Code: Tout sélectionner
graphicrules(picture pic=currentpicture, real unit=1cm,
                  real xunit=unit != 0 ? unit : 0,
                  real yunit=unit != 0 ? unit : 0,
                  real xmin=-infinity, real xmax=infinity, real ymin=-infinity, real ymax=infinity,
                  bool crop=NoCrop, bool xcrop=crop, bool ycrop=crop)


Code: Tout sélectionner
grid(picture pic=currentpicture,
          real xmin=pic.userMin.x, real xmax=pic.userMax.x,
          real ymin=pic.userMin.y, real ymax=pic.userMax.y,
          real xStep=1, real xstep=.5,
          real yStep=1, real ystep=.5,
          pen pTick=nullpen, pen ptick=grey, bool above=false)


Code: Tout sélectionner
cartesianaxis(picture pic=currentpicture,
                   Label Lx=Label("$x$",align=2S),
                   Label Ly=Label("$y$",align=2W),
                   real xmin=-infinity, real xmax=infinity,
                   real ymin=-infinity, real ymax=infinity,
                   real extrawidth=1, real extraheight=extrawidth,
                   pen p=currentpen,
                   ticks xticks=Ticks("%",pTick=nullpen, ptick=grey),
                   ticks yticks=Ticks("%",pTick=nullpen, ptick=grey),
                   bool viewxaxis=true,
                   bool viewyaxis=true,
                   bool above=true,
                   arrowbar arrow=Arrow)
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Asymptote passation de paramètre

Messagepar GMaths » Mercredi 24 Février 2010, 13:22

Zaf11000 a écrit:Bonjour Olivier,
J'ai pris le type real et j'ai le message :
no matching variable 'thesize'.


Sans le code complet de ce que tu as écrit... difficile de dire.

Peut-être une source d'inspiration (qui ne provoque pas d'erreur) :
Code: Tout sélectionner
void monrepereamoi(real thesize=1, int xmin, int xmax, int ymin, int ymax){
  draw((xmin,ymin)--(xmax,ymax)); // tracé d'un trait sur l'image produite
  write("ok");                   // écriture de "ok" en console
}
/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
///// Test :
monrepereamoi(xmin=0,ymin=0,xmax=100,ymax=100);


Code: Tout sélectionner
... =1

C'est pour donner une valeur par défaut à thesize... te permettant ainsi de ne pas lui donner de valeur lors de l'appel de la fonction (procédure).


NB : j'ai gardé ton nom "monrepereamoi"... mais j'ai mis un truc bidon dans la fonction, qui n'a rien à voir avec le sujet.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Asymptote passation de paramètre

Messagepar Zaf11000 » Mercredi 24 Février 2010, 14:12

Bonjour Gaëtan et merci pour ta solution proposée,
Est-ce que je suis obligé de passer les paramètres en écrivant monrepereamoi(xmin=10, xmax=20... ) ou bien simplement monrepereamoi(10, 20,... ) ?
Moi je voudrais passer comme valeur dans thesize la valeur en cm ou en mm que l'on passe habituellement dans size().
Quant aux procédures que tu me cites plus haut, je vais les regarder de près en faisant quelques tests.
Merci.
Zaf11000
Kilo-utilisateur
 
Messages: 126
Inscription: Jeudi 18 Février 2010, 22:52
Statut actuel: Actif et salarié | Enseignant

Re: Asymptote passation de paramètre

Messagepar Zaf11000 » Mercredi 24 Février 2010, 14:27

En compilant un exemple cité au dessus j'ai ce message d'erreur :
latex.exe: Couldn't connect to server
C:\Program Files\Asymptote/graph.asy: 1595.5: runtime: ======================================================================

! LaTeX Error: File `icomma.sty' not found.
Il doit me manquer des packages non ?
Où les télécharger ?
Zaf11000
Kilo-utilisateur
 
Messages: 126
Inscription: Jeudi 18 Février 2010, 22:52
Statut actuel: Actif et salarié | Enseignant

Re: Asymptote passation de paramètre

Messagepar GMaths » Mercredi 24 Février 2010, 16:10

Zaf11000 a écrit:! LaTeX Error: File `icomma.sty' not found.
Il doit me manquer des packages non ?
Où les télécharger ?


MikTeX ne t'a pas proposé (à la volée) d'installer was dont fait partie icomma ?
Dans le menu Démarrer/MikTeX 2.8/Maintenance (admin)/Package Manager (admin)... fais une recherche sur : was
pour voir s'il est installé ou pas.


De toute façon... même si tu arrives à installer was qui installera icomma.sty, tu n'auras plus le message d'erreur

mais je ne suis pas sûr que tu auras l'effet escompté : le package icomma est (de mémoire donc à verifier !!!!)
censé agir pour le remplacement du point par la virgule dans les nombres et sur l'espace après la virgule...

... mais j'ai le souvenir que si cela fonctionnait sur mon serveur linux, il y avait des problèmes sous windows (du moins sur ma config)
même en rajoutant locale("it_IT"); qui était préconisé par JCBowman.

Code: Tout sélectionner
usepackage("icomma");
locale("it_IT");
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Asymptote passation de paramètre

Messagepar GMaths » Mercredi 24 Février 2010, 16:28

GMaths a écrit:... mais j'ai le souvenir que si cela fonctionnait sur mon serveur linux, il y avait des problèmes sous windows (du moins sur ma config)
même en rajoutant locale("it_IT"); qui était préconisé par JCBowman.

Code: Tout sélectionner
usepackage("icomma");
locale("it_IT");


après une petite recherche, je réalise que j'avais même signalé le problème dans un exemple.

Peut-être qu'un autre utilisateur d'Asymptote sous windows pourra nous dire s'il est capable d'avoir des décimaux écrit avec une virgule (et non un point) pour les valeurs associées aux graduations d'un axe... par exemple pour l'exemple suivant :
Code: Tout sélectionner
usepackage("icomma");
locale("it_IT");

size(8cm,5cm,IgnoreAspect);
import graph;

xaxis(xmin=-1,xmax=1,Ticks(Step=.4));
yaxis(ymin=0,ymax=1,Ticks(NoZero,Step=.25));
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Asymptote passation de paramètre

Messagepar GMaths » Mercredi 24 Février 2010, 17:16

Apparemment, icomma ne fait pas ce que je croyais...

On utilisera alors siunitx et sa commande \num{...} :

Code: Tout sélectionner
usepackage("siunitx", "locale=DE");

size(8cm,5cm,IgnoreAspect);
import graph;

xaxis(xmin=-1,xmax=1,Ticks(Label("\num{%.2f}"),Step=.4));
yaxis(ymin=0,ymax=1,Ticks(Label("\num{%.2f}"),NoZero,Step=.25));
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Asymptote passation de paramètre

Messagepar Zaf11000 » Mercredi 24 Février 2010, 18:54

Voici ce que j'obtiens :
latex.exe: Couldn't connect to server
C:\Program Files\Asymptote/graph.asy: 1240.17: runtime: ======================================================================

! LaTeX Error: File `siunitx.sty' not found.
il manque peut-être siunitx.sty ?
Zaf11000
Kilo-utilisateur
 
Messages: 126
Inscription: Jeudi 18 Février 2010, 22:52
Statut actuel: Actif et salarié | Enseignant

Re: Asymptote passation de paramètre

Messagepar GMaths » Mercredi 24 Février 2010, 19:05

GMaths a écrit:Dans le menu Démarrer/MikTeX 2.8/Maintenance (admin)/Package Manager (admin)... fais une recherche sur : was

et maintenant une sur siunitx...

S'il n'est pas installé, installe le ;-).

miktex_package_manager.png
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: Asymptote passation de paramètre

Messagepar Zaf11000 » Mercredi 24 Février 2010, 20:38

A plusieurs reprises j'ai eu le message :
Couldn't connect to server
J'attends un peu et je recommencerai un peu plus tard.
Merci.
Zaf11000
Kilo-utilisateur
 
Messages: 126
Inscription: Jeudi 18 Février 2010, 22:52
Statut actuel: Actif et salarié | Enseignant


Retourner vers Asymptote

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité