TeXgraph
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-15%
Le deal à ne pas rater :
(Adhérents Fnac) LEGO® Star Wars™ 75367 Le croiseur d’assaut de ...
552.49 € 649.99 €
Voir le deal

Reunion et intersection d'ensemble

2 participants

Aller en bas

Reunion et intersection d'ensemble Empty Reunion et intersection d'ensemble

Message  Joffrey Jeu 9 Oct - 20:28

Salut,

Je me suis préparé un schéma sur les ensembles et je me suis heurté a un problème avec ellipseArc
J'ai défini, les points d'intersections de mes deux ellipses et je voulais colorer et hachurer l'intérieur avec une troisième couleur. Le problème : une ligne se formait entre mes deux points de l'ellipse; j'ai donc été obligé de ruser et de dessiner deux fois mes arcs d'ellipse.

Tout ça pour demander s'il n'existait pas une petite macro qui gère l'intersection et la réunion de deux (trois ou plus...) ensembles ?

Voici quand même ce que j'ai obtenu :
Reunion et intersection d'ensemble Ensemble1

Avec le code, à insérer dans une fenêtre utilisateur :
Code:

[
Width:=8,
Color:=orange, FillStyle:=fdiag, FillColor:=orange,
ellipse(0,2.5,1,-30),
Seg(2.5*exp(150*i*pi/180), 3.5*exp(150*i*pi/180)),
LabelDot(3.5*exp(150*i*pi/180),"$\text{A}$","NO"),
Color:=forestgreen, FillStyle:=bdiag, FillColor:=forestgreen,
ellipse(0.5+0.5*i,2.25,1,60),
Seg(2.25*exp(-2*i*pi/3)+0.5+0.5*i, 3.25*exp(-2*i*pi/3)+0.5+0.5*i),
LabelDot(3.25*exp(-2*i*pi/3)+0.5+0.5*i,"$\text{B}$","SO"),

L:=Get(ellipse(0,2.5,1,-30)) InterL Get(ellipse(0.5+0.5*i,2.25,1,60)),

Color:=gray, FillStyle:=diagcross, FillColor:=gray,
LineStyle:=noline,
Path([L[1],L[2],L[3],L[4],line],1),
ellipseArc(L[1],0,L[2],2.5,1,1,-30),
ellipseArc(L[3],0,L[4],2.5,1,1,-30),
ellipseArc(L[4],0.5+0.5*i,L[1],2.25,1,1,60),
ellipseArc(L[2],0.5+0.5*i,L[3],2.25,1,1,60),

FillStyle:=none, FillColor:=gray, LineStyle:=solid,
ellipseArc(L[1],0,L[2],2.5,1,1,-30),
ellipseArc(L[3],0,L[4],2.5,1,1,-30),
ellipseArc(L[4],0.5+0.5*i,L[1],2.25,1,1,60),
ellipseArc(L[2],0.5+0.5*i,L[3],2.25,1,1,60),

Seg(L[1],L[1]+1),
LabelDot(L[1]+1,"$\text{A}\cap\text{B}$","E")
]

Deuxième chose, comme je ne compte pas ouvrir un nouveau fil, je pose toute mes question :
est-il possible d'adapter la macro markseg à l'espace ?

Bonne soirée

Joffrey

Joffrey

Nombre de messages : 179
Age : 42
Localisation : Vichy(03) / Clermont-Ferrand(63)
Date d'inscription : 13/06/2008

http://mathex.servhome.org

Revenir en haut Aller en bas

Reunion et intersection d'ensemble Empty Re: Reunion et intersection d'ensemble

Message  P.Fradin Jeu 9 Oct - 21:33

Bonsoir Joffrey,

Si tu utilises la dernière version test 1.94, tu as les macros cap et cup qui sont prédéfinies, leur syntaxe est: cap( contour1, contour2) et cup( contour1, contour2), elles renvoient le contour de l'intersection et de la réunion. Dans ton exemple cela donne:

Code:

[
Width:=8,
Color:=orange, FillStyle:=fdiag, FillColor:=orange,
ellipse(0,2.5,1,-30),
Seg(2.5*exp(150*i*pi/180), 3.5*exp(150*i*pi/180)),
LabelDot(3.5*exp(150*i*pi/180),"$\text{A}$","NO"),
Color:=forestgreen, FillStyle:=bdiag, FillColor:=forestgreen,
ellipse(0.5+0.5*i,2.25,1,60),
Seg(2.25*exp(-2*i*pi/3)+0.5+0.5*i, 3.25*exp(-2*i*pi/3)+0.5+0.5*i),
LabelDot(3.25*exp(-2*i*pi/3)+0.5+0.5*i,"$\text{B}$","SO"),
{calcul des contours}
L1:=Get(ellipse(0,2.5,1,-30)), L2:=Get(ellipse(0.5+0.5*i,2.25,1,60)),
FillStyle:=diagcross, FillColor:=gray, Color:=gray,
{calcul et dessin de l'intersection}
Ligne( cap(L1,L2), 1),
A:= Copy(L1 InterL L2,1,1),Seg(A,A+1), LabelDot(A+1,"$\text{A}\cap\text{B}$","E")
]

C'est plus simple que ta méthode mais par contre on perd l'aspect vectoriel car le contour renvoyé par cap et cup ne sont plus des courbes de Bézier mais des listes de points (ce qui se voit si on zoom fortement).

Pour dessiner des ensembles j'avais proposé un exemple mais pas dans se forum, voici la macro:
set("nom", centre, [options]) avec les options:
scale:= facteur d'échelle (1 par défaut)
angle:= inclinaison en degrés (0 par defaut)
label:= 0/1 (affichage du nom, 1 par défaut)

Code:

{ set(nom, centre, [options])
options:
        scale:= facteur d'échelle (1 par défaut)
        angle:= inclinaison en degrés (0 par defaut)
        label:= 0/1 (affichage du nom, 1 par défaut)
}
[$scale:=1, $angle:=0, $label:=1,
{$a:=i, $d:=0.75-i/4, $c:=-i, $b:=-0.75-i/4, $v:=-1.25,}
$a:=4*i, $b:=-3-i/2, $d:=-bar(b), $c:=-a,  $v:=-5,
SaveAttr(),
$x:=Eval(String(%3)),
M:=matrix(exp(i*angle*deg)*scale*z+%2),
ComposeMatrix(M),
Spline(v,a,b,c,d,a,v),
mtransform(Get(Spline(v,a,b,c,d,a,v),0),GetMatrix()), {on renvoie la liste des points}
if label then
  LabelStyle:=0,
  Label(a+0.45*i/Abs(i), ["$",%1,"$"]),
fi,
RestoreAttr()
]

cette macro fait le dessin de l'ensemble et renvoit en même temps la liste des points du contour, par exemple, dans un élément Utilisateur:

Code:

[
background(full,beige),Width:=8,
{définition et dessin des ensembles}
A:=set("A",0,[scale:=0.75]),
B:=set("B",1.5-i,[angle:=-30]),
C:=set("C",-1-i*1.5,[scale:=0.75,angle:=40]),
D:=set("D",2-3*i,[angle:=-135]),

FillOpacity:=0.6, Color:=red, FillColor:=Rgb(0.74,0.71,1), FillStyle:=full, Width:=16,

{calcul et dessin de la réunion}
 Ligne( cup(D,cup(A,cup(C,B))), 1),

{pour la légende}
Drectangle(M(-7,6),M(-6,6),M(-6,7)),

Color:=blue,FillColor:=Rgb(0.74,1,0.71),

{calcul et dessin de (C cap D) cup (A cap B)}
Ligne( cup(cap(C,D),cap(A,B)), 1),

{pour la légende}
Drectangle(M(-7,4),M(-6,4),M(-6,5)),

{Labels de la légende}
Color:=black, LabelStyle:=left,
Label(M(-5.75,6.5),"$A\cup B \cup C\cup D$"),
Label(M(-5.75,4.5),"$(A\cap B) \cup (C\cap D)$")
]

donnera: Reunion et intersection d'ensemble 081009083508579607
P.Fradin
P.Fradin
Admin

Nombre de messages : 1133
Age : 62
Date d'inscription : 19/01/2008

http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Reunion et intersection d'ensemble Empty Re: Reunion et intersection d'ensemble

Message  P.Fradin Ven 10 Oct - 0:43

Pour l'autre question, tu pourrais ouvrir un fil dans la rubrique Macros/Propositions?
P.Fradin
P.Fradin
Admin

Nombre de messages : 1133
Age : 62
Date d'inscription : 19/01/2008

http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Reunion et intersection d'ensemble Empty Re: Reunion et intersection d'ensemble

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser