pCloud Premium

UnFill et rotated Label

Tout ce qui concerne l'utilisation ou l'installation d'Asymptote.
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.

UnFill et rotated Label

Messagepar MB » Mardi 21 Avril 2020, 14:28

Bonjour, en effectuant quelques recherches je suis tombé sur ce sujet, dans lequel Olivier propose la solution suivante.

5f91c2549a2720600182eae06480f86e.png

Code: Tout sélectionner
size(8cm);
filldraw(scale(10)*unitcircle);
frame f;
label(f,"Test",Fill(white));
add(rotate(40)*f,(1,1),UnFill);
add(rotate(-45)*f,(-4,-4));


Je cherche à faire en sorte que le fond ne soit pas blanc, comme c'est le cas avec Fill(white), mais transparent comme c'est le cas avec UnFill. Des idées ?
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: 6906
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: UnFill et rotated Label

Messagepar OG » Dimanche 26 Avril 2020, 22:50

Bonsoir

J'ai un petit souci avec la transparence (plus de transparence sauf en format svg).
Aurais-tu un exemple plus parlant car si c'est transparent on ne verra pas les étiquettes ?
Sinon on peut toujours ajuster la transparence avec opacity(entre 0 et 1).

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

Re: UnFill et rotated Label

Messagepar MB » Mercredi 29 Avril 2020, 22:31

Par exemple, avec la figure suivante, j'ai un label option 'UnFill' mais dont le fond est transparent (et non blanc).

8b9b29836abfbe5d7cfbdfe54eeab3c0.png

Code: Tout sélectionner
size(5cm);
filldraw(scale(10)*unitcircle);
label(scale(4)*"Test",(0,0),UnFill);


L'objectif serait donc d'adapter la version frame afin d'obtenir un fond transparent au lieu d'un fond blanc.
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: 6906
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: UnFill et rotated Label

Messagepar OG » Mardi 05 Mai 2020, 09:52

Ok j'ai compris la question !

Mettre `Unfill` dans la définition du label ne va pas te satisfaire à mon avis. Car j'imagine que tu voudrais qu'avec une rotation on obtienne un joli rectangle transparent (qui a subi la rotation) et là ça ne marche pas.
Il y a une solution avec la routine unfill(path), mais il faut récupérer la taille et position du rectangle, ce qui prendra un peu de temps.

f260028841c3030d01a4b920196e4d8e.png

Code: Tout sélectionner
size(10cm);
filldraw(scale(10)*unitcircle);
frame f;
label(f,"Test",red,UnFill);
add(rotate(40)*f,(1.4,1.4),UnFill);

add(rotate(-45)*f,(-4,-4));
OG
Modérateur
 
Messages: 2289
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: UnFill et rotated Label

Messagepar OG » Mardi 05 Mai 2020, 17:42

Voilà, il y a peut-être plus simple. La difficulté est de récupérer le rectangle qui fait le cadre. Attention si tu ajoutes après un élément qui sort du cadre, cela change l'échelle, donc met à terre la solution proposée.


7858b770e3828f843e25b20e2f5d6359.png

Code: Tout sélectionner
size(10cm);
filldraw(scale(10)*unitcircle);
frame f;
label(f,"Test",blue,UnFill);

add(rotate(40)*f,(1,1),UnFill);

path rh=scale(size(f).x,size(f).y)*shift(-.5,-.5)*unitsquare;
real sx=size(currentpicture,true).x/size(currentpicture,false).x;
real sy=size(currentpicture,true).y/size(currentpicture,false).y;
path rhe=scale(sx,sy)*rh;
unfill(shift(-4,-4)*rotate(-45)*rhe);
add(rotate(-45)*f,(-4,-4));
OG
Modérateur
 
Messages: 2289
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: UnFill et rotated Label

Messagepar MB » Mardi 05 Mai 2020, 23:56

Merci Olivier, c'est exactement ça.

En ce qui concerne la figure suivante, je me demandais d'où venait la marge entre le texte et la boite du label. J'ai pas vraiment pu déterminer si cette marge est gérée par latex ou par asymptote. J'ai tenté de mettre labelmargin=0 mais ça ne change pas grand chose, je ne suis pas parvenu à supprimer cette marge.

8b9b29836abfbe5d7cfbdfe54eeab3c0.png

Code: Tout sélectionner
size(5cm);
filldraw(scale(10)*unitcircle);
label(scale(4)*"Test",(0,0),UnFill);
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: 6906
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
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 1 invité

pCloud Premium