vardef CourbeEnPolaires(suffix r)(expr ti,tf,n) =
save fpas,t;
fpas := (tf-ti)/n;
- r(ti)*(cos(ti),sin(ti))
+ r(ti)*(cos(ti),sin(ti))
for i=1 upto n: hide(t:=ti+i*fpas) .. r(t)*(cos(t),sin(t)) endfor
enddef;
endfor
for i = 0 upto (repXmax - x)/px:
for j = 0 upto (y - repYmin)/py:
- drawarrow
+ drawarrow
(((0,0)--dx*unitvector((1,f(x+i*px,y-j*py))))
shifted (x+i*px,y-j*px)) gddEnPlace
withcolor couleur;
endfor
for j = 0 upto (repYmax - y)/py:
- drawarrow
+ drawarrow
(((0,0)--dx*unitvector((1,f(x+i*px,y+j*py))))
shifted (x+i*px,y+j*py)) gddEnPlace
withcolor couleur;
endfor
enddef;
-endinput;
\ No newline at end of file
+
+%
+% Champs de vecteurs f R^2 -> R^2
+% ------------------------------------------------------------------------------
+vardef ChampVecteursDD(suffix f)(expr x,y,px,py,dx,couleur) =
+ for i = 0 upto (x - repXmin)/px:
+ for j = 0 upto (y - repYmin)/py:
+ drawarrow
+ (((0,0)--dx*unitvector(f(x-i*px,y-j*py)))
+ shifted (x-i*px,y-j*py)) gddEnPlace
+ withcolor couleur;
+ endfor
+ for j = 0 upto (repYmax - y)/py:
+ drawarrow
+ (((0,0)--dx*unitvector(f(x-i*px,y+j*py)))
+ shifted (x-i*px,y+j*py)) gddEnPlace
+ withcolor couleur;
+ endfor
+ endfor
+ for i = 0 upto (repXmax - x)/px:
+ for j = 0 upto (y - repYmin)/py:
+ drawarrow
+ (((0,0)--dx*unitvector(f(x+i*px,y-j*py)))
+ shifted (x+i*px,y-j*px)) gddEnPlace
+ withcolor couleur;
+ endfor
+ for j = 0 upto (repYmax - y)/py:
+ drawarrow
+ (((0,0)--dx*unitvector(f(x+i*px,y+j*py)))
+ shifted (x+i*px,y+j*py)) gddEnPlace
+ withcolor couleur;
+ endfor
+ endfor
+enddef;
+
+endinput;
picture repSavePict;
string repSaveW;
+% x and y labels
+string gddXlabel;
+gddXlabel := "$x$";
+string gddYlabel;
+gddYlabel := "$y$";
+
def Repere(expr l,h,ox,oy,ux,uy) =
repLargeur := l; repHauteur := h;
repOX := ox ; repOY := oy;
def Axes =
drawarrow ((repXmin,0)--(repXmax,0)) gddEnPlace;
drawarrow ((0,repYmin)--(0,repYmax)) gddEnPlace;
- label.lrt(TEX("$x$"),(repXmax,0) gddEnPlace);
- label.ulft(TEX("$y$"),(0,repYmax) gddEnPlace);
+ label.lrt(TEX(gddXlabel),(repXmax,0) gddEnPlace);
+ label.ulft(TEX(gddYlabel),(0,repYmax) gddEnPlace);
enddef;
vardef Graduations =
%%% ----------------------------------------------------------------------------
%%% CadreRepere
%%% ----------------------------------------------------------------------------
-def CadreRepere =
+def CadreRepere =
(repXmin,repYmin)--(repXmin,repYmax)--(repXmax,repYmax)--(repXmax,repYmin)--cycle
enddef;
-endinput
\ No newline at end of file
+endinput
enddef;
% Courbe -----------------------------------------------------------------------
-vardef Courbe (expr s) =
+vardef CourbeDat (expr s) =
gddT[incr gddO] = "courbe"; gddS[gddO] = s; gddO
enddef;
elseif gddT[o] = "chemin":
gddP[o]
elseif gddT[o] = "courbe":
- gddTraceCourbe (gddS[o] & ".dta")
+ %message "This is a debug message.";
+ gddTraceCourbe (gddS[o] & ".dat")
fi
enddef;
def gddPointe(expr p) =
- fill (fullcircle scaled gddTaillePoint) shifted (p gddEnPlace)
+ fill (fullcircle scaled gddTaillePoint) shifted (p gddEnPlace)
withcolor gddCouleurPoint;
draw (fullcircle scaled gddTaillePoint) shifted (p gddEnPlace)
enddef;
label.@#(gddL[p] scaled gddTailleLabel,PointTOPair(p) gddEnPlace);
enddef;
-vardef m_a_rque.@# expr p =
+vardef m_a_rque.@# expr p =
pointe(scantokens p);
label.@#(lTEX(p),PointTOPair(scantokens p) gddEnPlace);
enddef;
%%% --------------------------------------------------------------------------
def SigneOrtho(expr a,b,c,x) =
(_point_(b) + x * unitvector(_point_(a)-_point_(b)))
- -- (_point_(b) + x * unitvector(_point_(a) - _point_(b))
+ -- (_point_(b) + x * unitvector(_point_(a) - _point_(b))
+ x * unitvector(_point_(c) - _point_(b)))
-- (_point_(b) + x * unitvector(_point_(c) - _point_(b)))
enddef;
gddEnPlace withpen pencircle scaled 1 withcolor white;
enddef;
-endinput
\ No newline at end of file
+endinput