Page 1 sur 1

Intersection de deux (ou plus de deux) chemins

MessagePublié: 25 Août 2012 11:36
par Raoul n k
Bonjour à tous, puis-je récupérer et hachurer l'intersection de deux chemins, avec TeXgraph ?
Merci pour vos contributions.

Re: Intersection de deux (ou plus de deux) chemins

MessagePublié: 25 Août 2012 12:19
par P.Fradin
Bonjour,

Oui c'est possible lorsque les deux formes fermées sont relativement simples. Il y a deux situations possibles:

1) Les deux chemins sont des (successions de) courbes de Bézier, exemple:
Code: Tout sélectionner
[
view(0,4.5,0,4),Marges(0,0,0,0), size(9),
a:=[2.5+3.5*i,2+3*i,1+2.5*i,2+1.5*i,3+2*i], //points du path 1
b:=[4+1.5*i,3.5+2.5*i,2+2*i,2+0.25*i,3+i], //points du path 2
C1:=GetSpline(-1,a,a[1],-1),// définition path 1 (courbes de Bezier)
C2:=GetSpline(i,b,b[1],i),// définition path 2 (courbes de Bezier)
C3:=capB(C1,C2),// définition intersection (courbes de Bezier)
Width:=8, Bezier(C1), Bezier(C2), //dessin des path 1 et 2
Color:=red, FillStyle:=full, FillColor:=pink,
Bezier(C3) //dessin du path 3
]

capB.png
capB.png (11.82 Kio) Consulté 10325 fois


2) Les deux chemins sont des lignes polygonales (successions de points), exemple:
Code: Tout sélectionner
[
view(0,4.5,0,4),Marges(0,0,0,0), size(9),
a:=[2.5+3.5*i,2+3*i,1+2.5*i,2+1.5*i,3+2*i], //points du path 1
b:=[4+1.5*i,3.5+2.5*i,2+2*i,2+0.25*i,3+i], //points du path 2
C1:=Get(Spline(-1,a,a[1],-1)),// définition path 1 (ligne polybonale)
C2:=Get(Spline(i,b,b[1],i)),// définition path 2 (ligne polybonale)
C3:=cap(C1,C2),// définition intersection (ligne polygonale)
Width:=8, Ligne(C1,1),Ligne(C2,1), //dessin des path 1 et 2
Color:=red, FillStyle:=full, FillColor:=pink,
Ligne(C3,1) //dessin du path 3
]


La différence est visible lorsqu'on zoome fortement sur le dessin, dans le cas 1 le dessin reste vectoriel. Dans le cas 2, on finit par voir les petits segments.