Nouvelles flèches

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.

Nouvelles flèches

Messagepar Ph. Ivaldi » Mardi 01 Janvier 2008, 16:10

Bonjour et bonne année 2478,

Comme vous avez pu le constater les flèches par défaut de 'Asymptote' ne sont pas très "sexy" :?
J'ai récemment proposé un patch à John (qui l'a amélioré) qui implémente deux nouveaux types de flèche accessibles via un nouveau type de tête de flèche: arrowheadT.
Les nouvelles têtes se nomment SimpleHead et HookHead mais, une fois n'est pas coutume, elles ne sont pas (encore) documentées.
HookHead admet deux paramètres:
* real barb qui est la longueur de l'ardillon; sa valeur par défaut est arrowbarb=3.
* real dir qui est l'angle en degrés de la pointe; sa valeur par défaut est arrowdir=5.

Des exemples d'utilisations se trouvent ICI (figure 0030 et +).
Pour ceux qui n'utilisent pas la version SVN mais veulent toutefois profiter de cette -- exceptionnelle ;-) -- fonctionnalité, il suffit de remplacer le fichier plain_arrows.asy par celui-là.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Publicité

Re: [asymptote] Nouvelles flèches

Messagepar pg » Mardi 01 Janvier 2008, 17:11

Ph. Ivaldi a écrit:Comme vous avez pu le constater les flèches par défaut de 'Asymptote' ne sont pas très "sexy"

C'est d'ailleurs quelque chose qui m'a toujours choqué : alors que la flèche est l'un des objets graphiques les plus utilisés, comment se fait-il que la plupart des "logiciels" de dessin aient par défaut des flèches aussi moches ?

Je pense qu'il serait bon pour asymptote de suivre le modèle de TikZ et de mettre par défaut des flèches ressemblant à celles de TeX : $\to$. Non seulement c'est plus élégant (elles ne sont pas trop grasses tout en gardant une bonne lisibilité), mais cela permet aussi d'assurer une cohérence parfaite avec le reste du document (indispensable notamment si on s'en sert pour faire des diagrammes commutatifs, ce que je ne sais pas si asymptote fait).
pg
Modérateur
 
Messages: 2597
Inscription: Jeudi 14 Juin 2007, 23:31

Re: [Asymptote] Nouvelles flèches

Messagepar OG » Mardi 01 Janvier 2008, 18:35

Merci Philippe pour ces magnifiques flèches !
L'inspiration vient elle d'une extension Metapost ?

A+
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] Nouvelles flèches

Messagepar Ph. Ivaldi » Mardi 01 Janvier 2008, 20:37

Bonjour Olivier,
OG a écrit:L'inspiration vient elle d'une extension Metapost ?

Non, l'extension cmarrows.mp récupère directement des données dans des fichiers de fontes; cela va bien au delà de mes compétences.
Je suis d'accord avec 'PG', la flèche est un élément graphique important et il faudrait qu'Asymptote fournisse les mêmes flèches que TeX; malheureusement je ne sais pas comment l'implémenter.
Si quelqu'un a une idée...
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Nouvelles flèches

Messagepar MB » Mardi 01 Janvier 2008, 23:37

Merci pour cette nouvelle fonctionnalité Philippe. :D
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: 6891
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Nouvelles flèches

Messagepar pg » Mercredi 02 Janvier 2008, 01:04

Ph. Ivaldi a écrit:la flèche est un élément graphique important et il faudrait qu'Asymptote fournisse les mêmes flèches que TeX; malheureusement je ne sais pas comment l'implémenter.
Si quelqu'un a une idée...

N'est-il pas possible d'adapter la façon de faire de Tikz ? (qui revient à traiter la pointe comme un simple trait)

Il y a une description relativement détaillée de comment les flèches sont gérées dans le manuel de TikZ (page 316 et suivantes) et on trouve dans le fichier pgfcorearrows.code.tex les instructions utilisées pour la flèche "to" :

Code: Tout sélectionner
\pgfarrowsdeclare{to}{to}
{
  \pgfutil@tempdima=-0.84pt%
  \advance\pgfutil@tempdima by-1.3\pgflinewidth%
  \pgfutil@tempdimb=0.21pt%
  \advance\pgfutil@tempdimb by.625\pgflinewidth%
  \pgfarrowsleftextend{+\pgfutil@tempdima}
  \pgfarrowsrightextend{+\pgfutil@tempdimb}
}
{
  \pgfutil@tempdima=0.28pt%
  \advance\pgfutil@tempdima by.3\pgflinewidth%
  \pgfsetlinewidth{0.8\pgflinewidth}
  \pgfsetdash{}{+0pt}
  \pgfsetroundcap
  \pgfsetroundjoin
  \pgfpathmoveto{\pgfqpoint{-3\pgfutil@tempdima}{4\pgfutil@tempdima}}
  \pgfpathcurveto
  {\pgfqpoint{-2.75\pgfutil@tempdima}{2.5\pgfutil@tempdima}}
  {\pgfqpoint{0pt}{0.25\pgfutil@tempdima}}
  {\pgfqpoint{0.75\pgfutil@tempdima}{0pt}}
  \pgfpathcurveto
  {\pgfqpoint{0pt}{-0.25\pgfutil@tempdima}}
  {\pgfqpoint{-2.75\pgfutil@tempdima}{-2.5\pgfutil@tempdima}}
  {\pgfqpoint{-3\pgfutil@tempdima}{-4\pgfutil@tempdima}}
  \pgfusepathqstroke
}


C'est un peu incompréhensible, mais on peut traduire (approximativement) en terme de courbes de béziers :

Code: Tout sélectionner
\begin{tikzpicture}[scale=0.5]
\draw (-0.8,0)--(0,0);
\draw[cap=round,rounded corners=0.1pt,xshift=-0.75pt]
                 (-3pt,4pt) .. controls (-2.75pt,2.5pt) and (0pt,0.25pt) ..
                 (0.75pt,0pt) .. controls (0pt,-0.25pt) and (-2.75pt,-2.5pt) ..
                 (-3pt,-4pt);
\end{tikzpicture}


Voici un pdf comparant cette méthode à la flèche "to" de TeX et à celle de TikZ. Avec peut-être quelques ajustements, ce genre de définition doit être transposable facilement à Asymptote, non ?
pg
Modérateur
 
Messages: 2597
Inscription: Jeudi 14 Juin 2007, 23:31

Re: [Asymptote] Nouvelles flèches

Messagepar Ph. Ivaldi » Mercredi 02 Janvier 2008, 11:40

pg a écrit:Voici un pdf comparant cette méthode à la flèche "to" de TeX et à celle de TikZ. Avec peut-être quelques ajustements, ce genre de définition doit être transposable facilement à Asymptote, non ?

Merci pour toutes ces précisions que j'étudie avec soins.
J'essaye encore un peu de récupérer le chemin exact de la tête de flèche de \rightarrow avec cette méthode.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Nouvelles flèches

Messagepar Ph. Ivaldi » Mercredi 02 Janvier 2008, 23:43

J'ai enfin réussi...
Du coup j'ai sorti un petit comparatif (Tkiz, Pstricks, Asy) de flèche brut de décoffrage (le titre de la figure est donné par \rightarrow).
Fichiers joints
essai.pdf
(4.68 Kio) Téléchargé 281 fois
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Nouvelles flèches

Messagepar pg » Mercredi 02 Janvier 2008, 23:58

Eh bien, bravo !

Il ne reste maintenant plus qu'à convaincre celui qui s'occupe d'Asymptote de faire en sorte qu'Asymptote utilise cette flèche par défaut.
pg
Modérateur
 
Messages: 2597
Inscription: Jeudi 14 Juin 2007, 23:31

Re: [Asymptote] Nouvelles flèches

Messagepar MB » Jeudi 03 Janvier 2008, 00:32

En effet, la flèche Asymptote est maintenant très proche de celle de LaTeX. :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: 6891
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Nouvelles flèches

Messagepar kib2 » Jeudi 03 Janvier 2008, 01:41

Beau boulot Philippe, c'est moi ou on dirait que ta flèche n'est pas alignée avec les autres (plus haute on dirait) ?
kib2
Hecto-utilisateur
 
Messages: 80
Inscription: Samedi 25 Novembre 2006, 22:44

Re: [Asymptote] Nouvelles flèches

Messagepar Ph. Ivaldi » Jeudi 03 Janvier 2008, 02:12

kib2 a écrit:Beau boulot Philippe


Merci, ça parait rien mais ces histoires de flèches ne sont pas si simples.
Par exemple la flèche que je viens de faire n'est strictement la même que \rightarrow seulement si elle est remplie (Fill) alors que le paramètre par défaut pour les flèches est FillDraw. Je ne sais pas encore comment on va faire...

kib2 a écrit:c'est moi ou on dirait que ta flèche n'est pas alignée avec les autres (plus haute on dirait) ?


Bonne remarque !
Il semble y avoir un problème de "bounding box" quand Asymptote crée une image ne contenant pas à la fois une vraie composante verticale et une vraie composante horizontale (un label ou une tête de flèche ne sont pas des composantes comme les autres).
Si tu compiles le bête code draw((0,0)--(10,0)); la ligne n'est pas centrée chez moi.
Je le signale si tu confirmes.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Nouvelles flèches

Messagepar Ph. Ivaldi » Jeudi 03 Janvier 2008, 17:54

MB a écrit:En effet, la flèche Asymptote est maintenant très proche de celle de LaTeX.


Non seulement elle est très proche mais en plus elle est mieux.
Si tu grossis 1600 le caractère \rightarrow tu pourras constater que la pointe de la flèche est mal faite.
Avec Acrobat on peut grossir 16 fois le caractère déjà grossi 100 fois:

Code: Tout sélectionner
label(scale(100)*"$\rightarrow$");
shipout(format="pdf");


La nouvelle version de plain_arrows.asy fournit un reproduction exacte de rightarrow le défaut en moins.

pg a écrit:Il ne reste maintenant plus qu'à convaincre celui qui s'occupe d'Asymptote de faire en sorte qu'Asymptote utilise cette flèche par défaut.


Ce n'est pas possible dans l'immédiat car la tête fournit par TeXHead ne s'adapte pas au chemin:

Code: Tout sélectionner
size(5cm);
draw(unitcircle,linewidth(2mm),Arrow(TeXHead,Relative(0.5)));


donne un résultat très moche.
Il faut entièrement revoir la façon dont Asymptote dessine les flèches mais là je pars deux jours en vacances; on en reparlera surement...
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié


Retourner vers Asymptote

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

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

cron