Commande dot (FillDraw) et épaisseur de trait

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.

Commande dot (FillDraw) et épaisseur de trait

Messagepar cerise » Mardi 05 Avril 2011, 10:10

Bonjour,

Dans un document, je marque des points à l'aide d'un petit cercle blanc entouré d'un trait noir. J'utilise pour cela la commande :

Code: Tout sélectionner
dot((0,0),filltype=FillDraw(white,black));

J'obtiens quelque chose de bien, mais j'aimerais que l'épaisseur du trait noir autour du point soit un peu plus fine. J'ai essayé des commandes du style :

Code: Tout sélectionner
dot((0,0),filltype=FillDraw(white,black+0.1bp));

en essayant également d'autres valeurs à la place de 0.1bp, ça compile mais ça ne modifie absolument pas la taille du trait. J'ai également essayé des choses du genre

Code: Tout sélectionner
dot((0,0),filltype=FillDraw(white+2bp,black));

sans plus de succès.

Quelqu'un sait-il comment faire ?

EDIT : je me rends compte qu'en réalité, je n'arrive pas non plus à changer la couleur : si je mets

Code: Tout sélectionner
dot((0,0),filltype=FillDraw(white,blue));
ou même
Code: Tout sélectionner
dot((0,0),filltype=FillDraw(white,drawpen=blue));

le point est toujours cerclé de noir...
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry
cerise
Méga-utilisateur
 
Messages: 448
Inscription: Mercredi 08 Juin 2005, 17:03
Statut actuel: Actif et salarié

Publicité

Re: dot "FillDraw" et épaisseur de trait

Messagepar GMaths » Mardi 05 Avril 2011, 11:15

Bonjour,

cerise a écrit:je marque des points à l'aide d'un petit cercle blanc entouré d'un trait noir.


Je ne suis pas chez moi, pour tester...

... mais je suggère une autre piste, qui peut être permettre la même chose : la définition d'un "marker".

Une autre utilisation de "marker".
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: dot "FillDraw" et épaisseur de trait

Messagepar maurice » Mardi 05 Avril 2011, 11:21

Bonjour, quelques exemples :

Code: Tout sélectionner
unitsize(0.5cm);

dot((0,0));
dot((0,-1), NoFill);
dot((1,0), UnFill);
dot((1,-1), red, UnFill);
dot((2,0), Fill(blue));
dot((2,-1), red, Fill(blue));
dot((3,0), FillDraw(blue, 0.75bp+red));
dot((3,-1),blue, FillDraw(red));


Capture.png
Capture.png (8.67 Kio) Vu 741 fois


Quant à l'épaisseur des traits ?...

Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: dot "FillDraw" et épaisseur de trait

Messagepar maurice » Mardi 05 Avril 2011, 12:09

Dans l'idée de Gaétan, il a peut être un exemple qui peut intéresser sur le site de Philippe Ivaldi :

3f944ed7f1d63b17d3c9ca76275c1385.png

Code: Tout sélectionner
import graph_pi;

unitsize(x=3cm,y=3cm);
// All marks will have this size. Default=sqrt(2)*dotsize(currentpen);
graphmarksize=4mm;

real f(real x){return sin(x);};
path Cf=graph(f, .5, 2);
transform T=shift((0,-.5));
// ---------------------------------
// * definition of ArcMarkerExtrem *
// marker ArcMarkerExtrem(real radius=graphmarksize(), real angle=180,
// bool begin=true, bool end=true,
// pen p=currentpen, bool put=Above)

draw(Cf, ArcMarkerExtrem());
draw(T*Cf, red, ArcMarkerExtrem(angle=270, begin=false));
draw(T^2*Cf, blue, ArcMarkerExtrem(radius=-graphmarksize, blue));

// ----------------------------------
// * Definition of Hookmarkerextrem *
// marker HookMarkerExtrem(real height=graphmarksize(), real width=height/2,
// bool begin=true, bool end=true,
// pen p=currentpen, bool put=Above)

draw(T^3*Cf,HookMarkerExtrem);//Without brackets values returns to default
draw(T^4*Cf, green, HookMarkerExtrem(height=2*graphmarksize, width=-graphmarksize*2,green));

// ------------------------------------
// * Definition of CircleMarkerExtrem *
// marker CircleMarkerExtrem(real radius=graphmarksize(), real angle=90,
// bool begin=true, bool end=true,
// pen p=currentpen, filltype filltype=NoFill,
// bool put=Above)

draw(T^5*Cf, green, CircleMarkerExtrem(green));
draw(T^6*Cf, green+blue, CircleMarkerExtrem(radius=graphmarksize,filltype=FillDraw(blue),p=2mm+green+blue));


Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: dot "FillDraw" et épaisseur de trait

Messagepar cerise » Mardi 05 Avril 2011, 12:40

Bonjour,

Merci beaucoup pour les exemples qui règlent le problème des couleurs.

Les marqueurs me conviennent moins car mes points sont isolés et ne sont pas des extrémités de segments.
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry
cerise
Méga-utilisateur
 
Messages: 448
Inscription: Mercredi 08 Juin 2005, 17:03
Statut actuel: Actif et salarié

Re: dot "FillDraw" et épaisseur de trait

Messagepar maurice » Mardi 05 Avril 2011, 14:34

Bonjour, toujours dans la même idée ...

b6380a9b6efe41db237045e50a7bfba2.png

Code: Tout sélectionner
frame dot2;
filldraw(dot2,scale(4mm)*unitcircle,green,1bp+blue);

frame dot3;
filldraw(dot3,scale(4mm)*unitcircle, green,2bp+blue);

frame dot4;
filldraw(dot4, scale(4mm)*unitcircle, green, 3bp+blue);

frame dot5;
filldraw(dot5, scale(4mm)*unitcircle, green, 4bp+blue);


add(dot2, (0,0));
add(dot3, (40,0));
add(dot4, (80,0));
add(dot5, (120,0));


Tu peux dessiner ton propre point, et le placer où tu veux.

Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
maurice
Méga-utilisateur
 
Messages: 399
Inscription: Jeudi 25 Mars 2010, 13:49
Statut actuel: Actif et salarié | Enseignant

Re: dot "FillDraw" et épaisseur de trait

Messagepar cerise » Mardi 05 Avril 2011, 15:47

Bonjour,

Merci pour la proposition. Bien sûr, je sais que je peux dessiner les points moi-même. Mais, ne voulant pas réinventer la roue, je voulais savoir si l'on pouvait changer directement l'épaisseur du trait avec dot.
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry
cerise
Méga-utilisateur
 
Messages: 448
Inscription: Mercredi 08 Juin 2005, 17:03
Statut actuel: Actif et salarié

Re: dot "FillDraw" et épaisseur de trait

Messagepar chellier » Mardi 05 Avril 2011, 21:28

Bonsoir,

Une solution (qui ne présente pas que des avantages...) est d'utiliser le stylo "invisible" afin de cacher le tracé du point et de n'utiliser que FillDraw pour le dessiner :

Code: Tout sélectionner
unitsize(0.5cm);

dot((0,0));
dot((1,0), UnFill);
dot((2,0), invisible, FillDraw(white,.1bp+red));
dot((3,0), invisible, FillDraw(fillpen=green,drawpen=.1bp+blue));

shipout(bbox(1mm,invisible));

dots.png
dots.png (7.36 Kio) Vu 709 fois


Christophe
chellier
Modérateur
 
Messages: 355
Inscription: Samedi 25 Juillet 2009, 11:25
Localisation: Le Creusot
Statut actuel: Actif et salarié | Enseignant

Re: dot "FillDraw" et épaisseur de trait

Messagepar cerise » Mercredi 06 Avril 2011, 09:02

Merci pour cette proposition ! Je teste ça.
chellier a écrit:Une solution (qui ne présente pas que des avantages...)

Quels sont les inconvénients ?
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry
cerise
Méga-utilisateur
 
Messages: 448
Inscription: Mercredi 08 Juin 2005, 17:03
Statut actuel: Actif et salarié

Re: dot "FillDraw" et épaisseur de trait

Messagepar chellier » Mercredi 06 Avril 2011, 13:14

Il y a des inconvénients pour les labels par exemple qui seront invisibles ($C$), mais ça peut se contourner ($D$) :

2f71bb8dbe02042f6b06d11f3a15e531.png

Code: Tout sélectionner
unitsize(1cm);

draw((0,0)--(3,0));
dot("$A$",(0,0),N);
dot("$B$",(1,0),N,blue, UnFill);
dot("$C$",(2,0),N, invisible, FillDraw(white,.1bp+red));
dot(Label("$D$",purple),(3,0),N, invisible, FillDraw(drawpen=.1bp+blue,fillpen=green));

shipout(bbox(1mm,invisible));

Christophe
chellier
Modérateur
 
Messages: 355
Inscription: Samedi 25 Juillet 2009, 11:25
Localisation: Le Creusot
Statut actuel: Actif et salarié | Enseignant

Re: dot "FillDraw" et épaisseur de trait

Messagepar cerise » Mercredi 06 Avril 2011, 15:31

D'accord.

Si c'est le seul inconvénient, ça ne me dérange pas pour ce que je suis en train de faire, car je n'ai pas besoin de labels sur mes points. Mais, je retiens ce souci pour une éventuelle prochaine fois.

Encore merci !
Il fallait être Newton pour apercevoir que la Lune tombe quand tout le monde voit bien qu'elle ne tombe pas.
Paul Valéry
cerise
Méga-utilisateur
 
Messages: 448
Inscription: Mercredi 08 Juin 2005, 17:03
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 1 invité