Je sais qu'avec la commande \pscurve (du package pstricks) on peut faire
une courbe bien lisse qui passe par des points donnés. Cette commande
est bien pratique. Mais je voulais savoir s'il existe une commande qui
permet :
1) de tracer une courbe bien lisse passant par des points donnés (comme
\pscurve)
2) et en plus de le faire suivant une pente (ou coefficient directeur)
donnée.
Je sais qu'avec la commande \psbezier on peut faire quelque chose dans
ce genre. Mais il faut bricoler et c'est assez lourd. Pour l'instant
j'utilise geogebra pour faire ma courbe visuellement, puis il y a moyen
de faire un export en pstricks. Mais ça aussi c'est un peu pénible.
J'aimerais vraiment trouver une commande pstricks (soit qui existe soit
qui est définie).
Merci d'avance.
François
\usepackage{ifthen}
\usepackage{fp}
\usepackage{pstricks-add}
%% macro trace tangente
\def\traceTangente(#1,#2,#3,#4){%
\ifthenelse{\lengthtest{#4pt>0pt}}{\FPeval\DemiTangenteV{(#3)*(#4)}
\FPeval\TangentXa{(#1)-(#4)}
\FPeval\TangentXb{(#1)+(#4)}
\FPeval\TangentYa{(#2)-(\DemiTangenteV)}
\FPround\TangentYa\TangentYa{3}
\FPeval\TangentYb{(#2)+(\DemiTangenteV)}
\FPround\TangentYb\TangentYb{3}
\psline{<->}(\TangentXa,\TangentYa)(\TangentXb,\TangentYb)}{}}
\makeatletter
%% macro interpolation
\def\Interpolation(#1,#2,#3)(#4,#5,#6){%
\edef\PolyInterp{(x+(-1)*(#4))^2*((1+(-2)*(x+(-1)*(#1))*(#1+(-1)*
(#4))/((#1+(-1)*(#4))^2))*#2+(x+(-1)*(#1))*#3)/((#1+(-1)*(#4))^2)+(x+
(-1)*(#1))^2*((1+(-2)*(x+(-1)*(#4))*(#4+(-1)*(#1))/((#1+(-1)*(#4))^2))
*#5+(x+(-1)*(#4))*#6)/((#1+(-1)*(#4))^2)}%
\psplot[algebraic=true]{#1}{#4}{\PolyInterp}}
%% la macro principale
\def\HermiteDDL(#1,#2,#3,#4){\def\Hermite@xa{#1}\def\Hermite@ya{#2}\def
\Hermite@za{#3}
\psdot(#1,#2)
\traceTangente(#1,#2,#3,#4)\Hermite@next}
\def\Hermite@next{\@ifnextchar ({\Hermite@job}{\Hermite@end}}
\def\Hermite@job(#1,#2,#3,#4){%
\psdot(#1,#2)
\Interpolation(\Hermite@xa,\Hermite@ya,\Hermite@za)(#1,#2,#3)
\def\Hermite@xa{#1}\def\Hermite@ya{#2}\def\Hermite@za{#3}
\traceTangente(#1,#2,#3,#4)\Hermite@next}
\def\Hermite@end{}
\makeatother
on l'utilise en faisant
\HermiteDDL(x1,y1,p1,l1)(x2,y2,p2,l2) etc.
(xi,yi) sont les coordonnées du i-ème point, pi le coefficient
directeur en ce point et li l'"étendue" en abscisse de la tangente
(faire 0 pour ne pas l'afficher)
ps : les xi doivent être par ordre croissant!
en espérant que ça puisse servir
davantage d'explications ici:
http://mathsaulyceeddl.free.fr/spip.php?rubrique63
Oh oui merci beaucoup. J'en déduis donc qu'il n'existe pas de commande
qui fasse cela dans les package pstricks et compagnie. C'est dommage,
car ce genre de macro est très pratique pour un prof du secondaire.
(petit signal pour les concepteurs de packages ;-)).
Merci à vous Pascal.
Si quelqu'un veut proposer sa macro, qu'il n'hésite pas. Je me demande
si il n'est pas possible de faire en sorte de ne pas utiliser le package
"fp". Faire une macro dans l'esprit pstricks, où les calculs sont faits
par postscript.
A bientôt.
François
PS : Pascal, je trouve votre site super classe. Bravo.