Pour toute demande d'aide sur des exemples non finalisés, c'est ici.
Les exemples aboutis et intéressants seront ajoutés aux sous-forums qui suivent.
Règles du forum
Pour toute demande d'aide pour la conception (ou la confirmation d'un code) d'une figure Asymptote, c'est ici.
J'invite ceux qui ont régulièrement des questions à poser à aller dans leur panneau de l'utilisateur pour indiquer dans la signature de leurs messages :
- Nom du système d'exploitation (W7 ou Ubuntu 12.04 ou ...)
- Version d'Asymptote et éditeur utilisé pour les figures Asymptote
- Distribution LaTeX et éditeur utilisé pour les tex.
On va gagner du temps dans les réponses !
-
malaka
- Messages : 14
- Enregistré le : ven. 14 juil. 2017, 11:37
Message non lu
par malaka » lun. 24 avr. 2023, 12:53
Bonjour j'ai écrit ce programme qui me permet de créer un triangle rectangle à partir des deux sommets de l'hypoténuse.
J'aimerais récupérer le chemin T une fois le programme lancé pour le réutiliser par la suite. Je ne vois pas comment faire.
Code : Tout sélectionner
void TRH(pair a, pair b, bool direction=true){ // Construire un triangle rectangle par les 2 sommets de l'hypoténuse
pair c=(a+b)/2; // milieu de l'hypoténuse
path DC; /// demi-cercle
if(direction==true){DC=arc(c,a,b);}
else {DC=arc(c,a,b,CW);}
pair d=relpoint(DC,0.3); // Le sommet de l'angle droit.
fill(a--d--b--cycle,lightgrey);
path T=a--d--b--cycle;
}
Asymptote me renvoie "no matching variable 'T' ". En gros le triangle n'existe pas à l'extérieur de TRH.
Merci d'avance.
Window 11 - TeX live 2023
TeXmaker 5.1.3 -Asymptote 2.79
-
GM
- Administrateur du site
![Administrateur du site Administrateur du site](./images/ranks/admin.gif)
- Messages : 1512
- Enregistré le : dim. 7 mars 2010, 14:50
Message non lu
par GM » lun. 24 avr. 2023, 13:01
Bonjour,
sur cette page
https://asy.marris.fr/asymptote/Prog_Fo ... index.html,
on trouve deux exemples pour tenter d'expliquer la différence entre
1. une procédure (qui correspond au type void) qui est une fonction qui exécute une action mais ne renvoie pas de donnée(s) ;
2. une fonction typée (real[] dans l'exemple, mais on peut avoir tous les types que l'on connait dans asymptote) qui permet de retourner quelque chose via la commande return.
GM
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' :
http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :
Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 :
Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur :
Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
-
GM
- Administrateur du site
![Administrateur du site Administrateur du site](./images/ranks/admin.gif)
- Messages : 1512
- Enregistré le : dim. 7 mars 2010, 14:50
Message non lu
par GM » lun. 24 avr. 2023, 13:07
Si je donne un coup de pouce supplémentaire, cela donne cela :
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- CODE ASYMPTOTE de la figure ci-dessus :
Tout sélectionner
unitsize(1cm);
path TRH(pair a, pair b, bool direction=true){ // Construire un triangle rectangle par les 2 sommets de l'hypoténuse
pair c=(a+b)/2; // milieu de l'hypoténuse
path DC; /// demi-cercle
if(direction==true){DC=arc(c,a,b);}
else {DC=arc(c,a,b,CW);}
pair d=relpoint(DC,0.3); // Le sommet de l'angle droit.
fill(a--d--b--cycle,lightgrey);
return a--d--b--cycle;
}
draw(TRH((0,0),(4,3)),green);
draw(TRH((0,0),(-4,3)),red);
NB : j'ai changé le void et modifié la dernière ligne pour l'ajout du return mais je n'ai pas cherché à regarder le reste du code pour voir si j'aurais fait (ou pas) de la même manière.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' :
http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :
Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 :
Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur :
Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
-
GM
- Administrateur du site
![Administrateur du site Administrateur du site](./images/ranks/admin.gif)
- Messages : 1512
- Enregistré le : dim. 7 mars 2010, 14:50
Message non lu
par GM » lun. 24 avr. 2023, 13:18
A propos de triangle dans Asymptote, je rappelle que l'extension geometry de Philippe Ivaldi qui a été intégrée dans Asymptote, définit le type triangle :
https://asy.marris.fr/asymptote/Triangl ... 8_triangle
L'avantage de définir un triangle comme un objet de type triangle et non de type path, c'est que l'on peut ensuite obtenir des points et des droites particuliers relatifs au triangle, sans calcul, uniquement en utilisant les fonctions que Philippe a défini pour les objets de type triangle.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' :
http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :
Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 :
Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur :
Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
-
malaka
- Messages : 14
- Enregistré le : ven. 14 juil. 2017, 11:37
Message non lu
par malaka » lun. 24 avr. 2023, 13:54
Merci.
Dans les triangles de Philippe Ivaldi je n'ai pas trouvé la structure triangleABc (on donne deux angles et le côté entre eux) ni celui que je voulais pour ce cas précis.
Pour le VOID j'ai tout simplement recopié l'un de tes programmes en changeant ce que je comprenais et laissant le reste
Je ne trouvais pas la fonction return dans l'index d'ASymptote mais je crois comprendre à peu près ce qu'elle fait avec tes deux exemples et du coup je peux même retirer la ligne
fill(a--d--b--cycle,lightgrey);
C'est exactement ce que je cherchais à faire. Merci beaucoup.
Window 11 - TeX live 2023
TeXmaker 5.1.3 -Asymptote 2.79
-
GM
- Administrateur du site
![Administrateur du site Administrateur du site](./images/ranks/admin.gif)
- Messages : 1512
- Enregistré le : dim. 7 mars 2010, 14:50
Message non lu
par GM » lun. 24 avr. 2023, 13:56
Je n'ai répondu ci-dessus que du point de vue "technique de programmation avec Asymptote"
mais je viens de réfléchir au point de vue Mathématiques de la question posée :
Des triangles rectangles dont A(0;0) et B(4;3) sont les extrémités de l'hypothénuse, il y en a une infinité
donc c'est bizarre de définir une fonction qui ne peut renvoyer que le triangle dans les deux cas particuliers où le point C a pour "abscisse curviligne" 0.3 sur le demi-cercle. Ne faut-il pas ajouter un paramètre avec une valeur par défaut pour définir le troisième point ? Et ce paramètre ne peut-il pas être plutôt, l'angle en A plutôt qu'une abscisse curviligne par rapport au demi-cercle ?
Je dis cela mais je ne sais pas quel sera l'usage de cette fonction, donc je ferais mieux de me taire.
![Très content :D](./images/smilies/icon_e_biggrin.gif)
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' :
http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :
Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 :
Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur :
Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
-
GM
- Administrateur du site
![Administrateur du site Administrateur du site](./images/ranks/admin.gif)
- Messages : 1512
- Enregistré le : dim. 7 mars 2010, 14:50
Message non lu
par GM » lun. 24 avr. 2023, 14:03
malaka a écrit : ↑lun. 24 avr. 2023, 13:54
et du coup je peux même retirer la ligne
fill(a--d--b--cycle,lightgrey);
oui et utiliser filldraw si tu veux colorer l'un des triangles :
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- CODE ASYMPTOTE de la figure ci-dessus :
Tout sélectionner
unitsize(1cm);
path TRH(pair a, pair b, bool direction=true){ // Construire un triangle rectangle par les 2 sommets de l'hypoténuse
pair c=(a+b)/2; // milieu de l'hypoténuse
path DC; /// demi-cercle
if(direction==true){DC=arc(c,a,b);}
else {DC=arc(c,a,b,CW);}
pair d=relpoint(DC,0.3); // Le sommet de l'angle droit.
return a--d--b--cycle;
}
filldraw(TRH((0,0),(4,3)),lightgrey,red);
draw(TRH((-4,3),(0,0),false),green);
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' :
http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :
Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 :
Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur :
Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
-
malaka
- Messages : 14
- Enregistré le : ven. 14 juil. 2017, 11:37
Message non lu
par malaka » lun. 24 avr. 2023, 15:05
GM a écrit : ↑lun. 24 avr. 2023, 13:56
Je n'ai répondu ci-dessus que du point de vue "technique de programmation avec Asymptote"
mais je viens de réfléchir au point de vue Mathématiques de la question posée :
Des triangles rectangles dont A(0;0) et B(4;3) sont les extrémités de l'hypothénuse, il y en a une infinité
donc c'est bizarre de définir une fonction qui ne peut renvoyer que le triangle dans les deux cas particuliers où le point C a pour "abscisse curviligne" 0.3 sur le demi-cercle. Ne faut-il pas ajouter un paramètre avec une valeur par défaut pour définir le troisième point ? Et ce paramètre ne peut-il pas être plutôt, l'angle en A plutôt qu'une abscisse curviligne par rapport au demi-cercle ?
Je dis cela mais je ne sais pas quel sera l'usage de cette fonction, donc je ferais mieux de me taire.
Sur le fond mathématiques tu as raison mais pour mon usage les 2 cas (CW et CCW) me suffisent. Si j'arrive à obtenir la figure finale que je veux (une succession de triangles rectangles et des 3 carrés attachés aux côtés) je le posterais et je verrais pour affiner.
Window 11 - TeX live 2023
TeXmaker 5.1.3 -Asymptote 2.79
-
GM
- Administrateur du site
![Administrateur du site Administrateur du site](./images/ranks/admin.gif)
- Messages : 1512
- Enregistré le : dim. 7 mars 2010, 14:50
Message non lu
par GM » lun. 24 avr. 2023, 19:15
J'ai cru voir passer la tentative suivante.
Je suis alerté des tentatives de codes sur le forum !
J'ai mis size(100) et une couleur plus foncée pour que cela passe sur le forum.
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***
- CODE ASYMPTOTE de la figure ci-dessus :
Tout sélectionner
import geometry;
size(100);
path TRH(pair a, pair b, bool direction=true){ // Construire un triangle rectangle par les 2 sommets de l'hypoténuse
pair c=(a+b)/2; // milieu de l'hypoténuse
path DC; /// demi-cercle
if(direction==true){DC=arc(c,a,b);}// Sens de construction (in)direct
else {DC=arc(c,a,b,CW);}
pair d=relpoint(DC,0.3); // Le sommet de l'angle droit.
return a--d--b--cycle;
}
path[] carres(path t){// Construire les carrés sur les trois côtés d'un triangle
path[] carres;
for(int i=0; i<3; ++i){
carres.push(square(point(t,i+1),point(t,i))); // Rajoute chaque carré dans le tableau
}
return carres;
}
pair A=(0,0), B=(1,0), C=B+3dir(90);
path t1=A--B--C--cycle;
fill(t1,grey);
fill(TRH(point(carres(t1)[2],2),point(carres(t1)[2],3)),grey);
fill(TRH(point(carres(t1)[0],2),point(carres(t1)[0],3)),grey);
fill(TRH(point(carres(t1)[1],2),point(carres(t1)[1],3)),grey);
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' :
http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 24/02/21) :
PC n°1 :
Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 :
Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur :
Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !
-
malaka
- Messages : 14
- Enregistré le : ven. 14 juil. 2017, 11:37
Message non lu
par malaka » mar. 25 avr. 2023, 09:21
Big brother is watching
J'arrive pas à poster d'image ni de code comme tu le fais dans ton message précédent
![Question :?:](./images/smilies/icon_question.gif)
. Dommage ! Ma construction fonctionne et donne exactement ce que je voulais.
J'essaie de fignoler aujourd'hui pour le plaisir.
Window 11 - TeX live 2023
TeXmaker 5.1.3 -Asymptote 2.79