%Traçage de la courbe y=(x^2)/6 Utilisation du package pst-func
\psset{unit=0.5cm}
\def\xmin{-5} \def\xmax{8} %dimensions en x
\def\ymin{-2} \def\ymax{7} %dimensions en y
\def\fde#1{#1 2 exp 6 div} \def\f{\fde{x}} \def\flabel{$f(x)=
\dfrac{x^2}{6}$}
\def\Idde#1{#1} \def\Id{\Idde{x}} \def\Idlabel{$y=x$} %Identité
\begin{pspicture}(\xmin,\ymin)(\xmax,\ymax)
% Dessin des axes
\psaxes[labelFontSize=\tiny, ticksize=-.1 .1,subticks=2]{->}(0,0)
(\xmin,\ymin)(\xmax,\ymax)
[$x$,-90][$y$,180] % labels des axes (package pstricks-add à
travers pst-func)
% Traçage de la fonction
\psclip %Pour que les fonctions ne débordent pas de l'image
{\psframe[linestyle=none](\xmin,\ymin)(\xmax,\ymax)} % limites
\psplot[linecolor=red,linewidth=1.5\pslinewidth]{\xmin}{\xmax}{\f}
%on trace f(x)
\endpsclip
% Ecriture de la légende
\uput{0.05}[ur](!-5 \fde{-5}){\textcolor{red}
{\footnotesize{\flabel}}}
% Positionnement d'un point
\def\xp{4} \def\couleur{blue} %/fdexp{\fde{\xp}}def
\psline[linestyle=dashed,linecolor=\couleur](\xp,0)(!\Idde{\xp}
\fde{\xp})(!0 \fde{\xp})
\uput*{0.3}[d](\xp,0){\textcolor{\couleur}{\footnotesize{\xp}}}
\uput*{0.3}[l](!0 \fde{\xp}){\textcolor{\couleur}
{\footnotesize{$f(\xp)$}}}
\end{pspicture}
Voilà l'idée, récupérer la valeur de f(4) pour l'écrire à la place de
f(4)... Je doute que cela soit possible mais je demande au cas où.
Merci d'avance.
P.S. Je suis nouveau sur ce forum et dans le monde de LaTeX et j'ai un
peu honte de demander... Heu ça veut dire quoi ECM ?
> P.S. Je suis nouveau sur ce forum et dans le monde de LaTeX et j'ai un
> peu honte de demander... Heu ça veut dire quoi ECM ?
Je laisse le PStricks aux experts, mais ça je peux répondre. Ça veut dire
exemple complet minimal. La dénomination devrait être assez explicite par
elle-même, mais pour plus de détails, voir par exemple les conseils
d'utilisation publiés le 2 et le 17 de chaque moi ici-même, ou, en
anglais :
http://www.tex.ac.uk/cgi-bin/texfaq2html?label=minxampl
Manuel.
thibault.lieb...@yahoo.fr a écrit :
> Bonjour � tous. Voil� mon probl�me, sur une courbe, je voudrais
> rep�rer un point par ses coordonn�es sans avoir � calculer le f(x) �
> la main.
Youpie, je crois que je peux répondre : je viens de faire ça ce week-
end !!
Voici mon hack qui place un point sur une fonction (tout commentaire
est bienvenu) sans calculer de valeurs à la main. C'est FP qui s'en
charge. C'est vrai quoi à la fin, si on ne peut même plus demander à
un ordinateur de calculer, dans quel monde vivons nous ?
+++++++++++++++++ EC(M?) ++++++++++++++++++++
% La macro ValeurFonction
% #1 est le nom de la fonction à calculer. Cette dernière doit être
une macro à un argument du genre 3*#1+5/#1
% #2 est la valeur de la variable en laquelle on veut calculer la
fonction
% #3 est le nom de la variable FP dans laquelle le résultat sera
écrit.
\newcommand{\ValeurFonction}[3]{\FPeval{#3}
{#1{#2}}} [2]
% La macro pstPointSurCourbe
% #1 est le nom de la fonction
% #2 est le x où l'on veut le point
% #3 est le nom du point pstricks qui sera en x sur la courbe.
\newcommand{\pstPointSurCourbe}[3]{%
\ValeurFonction{#1}{#2}{inter}
\pstGeonode(#2,\inter){#3}
}
% \Fn est la fonction au sens où \Fn{a} donne l'expression de la
fonction avec a.
%Pour calculer la valeur de la fonction en 4, il faut donner \Fn{4} à
FPeval.
%C'est ce que fait la macro \ValeurFonction.
\newcommand{\Fn}[1]{((0-3)/(#1))+5} %-3/x + 5 [1]
% \psFn est la fonction à donner à \psplot. \psFn est l'expression de
Fn donnée avec x.
\newcommand{\psFn}{\Fn{x}}
\begin{document}
\begin{pspicture}(-0.9,-1,1)(11,5)
\psset{algebraic=true} % Ceci est le secret pour que FP et
pstricks utilisent la même syntaxe.
\psplot[linecolor=cyan]{0.5}{8}{\psFn}
\pstPointSurCourbe{\Fn}{1}{P}
\end{pspicture}
\end{document}
+++++++++++++++++++++++++++++++++++++++++++
Est-ce que cela répond à la question ?
Bonne soirée
Laurent
[1] By the way, c'est à cette ligne-ci que j'ai le problème dont je
parle dans un autre fil à propos de donner des valeurs négatives à FP
[2] Je trouve impressionant qu'on puisse faire #1{#2} où #1 est le nom
d'une macro ! J'avais fait ça au hasard, mais je ne croyais pas que ça
allait fonctionner. Je suppose que c'est une histoire d'ordre de
dévolopement des macros par LaTeX.
> Voilà l'idée, récupérer la valeur de f(4) pour l'écrire à la place de
> f(4)...
Bon, j'avais mal lu la question avant de répondre (pour une fois que
je connais une réponse pour fctt). Quoi qu'il en soit, la macro
\newcommand{\ValeurFonction}[3]{%
\FPeval{#3}{#1{#2}}
}
donnée dans mon EC(pas M, au vu de la vraie question)(et pas C non
plus parce que dans mon emportement j'ai oublié de mettre le
préambulle) répond à ta question, je crois.
+++++++ Exemple +++++++++++++
\renewcommand{\Fn}[1]{#1^2}
\ValeurFonction{\Fn}{3}{inter}
Je sais la valeur de
$f(3)=\inter$,
et arrondie ça donne \FPround{\rond}{\inter}{3} $f(3)\sim\rond$.
+++++++++++ fin d'exemple ++++++
Si mes souvenirs sont bons en cours de tests pour pondre cette macro,
créer \Fn avec un \def ne fonctionne pas. Il faut vraiment lui faire
un \newcommand, et donc \renewcomand les fois suivantes.
Au passage :
\usepackage{fp}
dans le préambule, ainsi que tous les paquets pstricks dont tu as
besoin.
> Je doute que cela soit possible mais je demande au cas où.
Est-ce que quand le génie de la lampe te demande tes voeux, tu doutes
de son pouvoir ? mmm ? Eh bien quand tu postes sur fctt, tu ne doutes
pas non plus ! Il y a des gens ici dont le pouvoir est sans limite que
ça fait parfois peur.
Bonne nuit
Laurent
Merci beaucoup moky pour ces info qui m'ont permis de résoudre mon
problème.
Et quelques commentaires (si je puis me permettre) sur ce que tu
m'as expliqué :
> Si mes souvenirs sont bons en cours de tests pour pondre cette macro,
> créer \Fn avec un \def ne fonctionne pas. Il faut vraiment lui faire
> un \newcommand, et donc \renewcomand les fois suivantes.
Pour ma part j'ai essayé avec des \def et cela fonctionne
parfaitement.
> \psset{algebraic=true}
> % Ceci est le secret pour que FP et pstricks utilisent la même syntaxe.
Après avoir décortiqué la notice de FP, la fonction FPeval fonctionne
avec le mode algebraic mais on peut aussi travailler en mode notation
polonaise inversée avec la fonction FPupn.
Pour ma part j'ai préféré la notation polonaise inversée car il n'y a
plus de souci avec les nombres négatifs (je vais poster une réponse à
ta demande sur les valeurs négatives dans FP). Par contre FP n'utilise
pas exactement les commandes postscript (par exemple 2^3 s'écrit 2 3
exp en ps et 2 3 pow en FP) donc j'ai défini deux fois la fonction
(une fois avec les commande ps et une fois avec celles de FP - dans
beaucoup de cas ce ne sera pas la peine)
Voilà... En tout cas un gros merci à mocky et je joins ci-dessous le
petit exemple sur lequel j'ai travaillé au cas où cela intéresserait
quelqu'un :
% ################################################
% ################### Préambule ###################
% ################################################
\documentclass [a4paper,10pt] {article}
\usepackage [latin1]{inputenc}
\usepackage [T1]{fontenc}
\usepackage [francais]{babel}
% ############### Paquets maths ###############
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{fp}
% ############### Paquets graphiques ###############
\usepackage[x11names]{pstricks}
\usepackage{pst-func}
% ################################################
% ################### Document ###################
% ################################################
\begin{document}
%Traçage de la courbe y=(x^2)/6 Utilisation des package pst-func et
fp
\psset{unit=0.5cm}
\def\xmin{-5} \def\xmax{8} %dimensions en x
\def\ymin{-2} \def\ymax{7} %dimensions en y
\def\f#1{#1 2 exp 6 div} \def\flabel{$f(x)=\dfrac{x^2}{6}$}
\def\FPf#1{#1 2 pow 6 div} %fonction utilisable par FP
\begin{pspicture}(\xmin,\ymin)(\xmax,\ymax)
% Dessin des axes
\psaxes[labelFontSize=\tiny, ticksize=-.1 .1,subticks=2]{->}(0,0)
(\xmin,\ymin)(\xmax,\ymax)
[$x$,-90][$y$,180] % labels des axes (package pstricks-add à
travers pst-func)
% Traçage de la fonction
\psclip %Pour que les fonctions ne débordent pas de l'image
{\psframe[linestyle=none](\xmin,\ymin)(\xmax,\ymax)} % limites
\psplot[linecolor=red,linewidth=1.5\pslinewidth]{\xmin}{\xmax}
{\f{x}} %on trace f(x)
\endpsclip
% Ecriture de la légende
\def\xl{-5} % abscisse du point où est placée la légende
\uput{0.05}[ur](!\xl\space \f{\xl}){\textcolor{red}
{\footnotesize{\flabel}}}
% Positionnement d'un point
\def\xp{4} \def\couleur{blue}
\FPupn\fdexp{\FPf{\xp} 2 round} %Calcul de f(4) arrondi à 0.01 près
\psline[linestyle=dashed,linecolor=\couleur](\xp,0)(!\xp\space
\f{\xp})(!0 \f{\xp})
\uput*{0.3}[d](\xp,0){\textcolor{\couleur}{\footnotesize{\xp}}}
\uput*{0.3}[l](!0 \f{\xp}){\textcolor{\couleur}{\footnotesize{$f(\xp)
\simeq\fdexp$}}}
\end{pspicture}
\end{document}
Bonjour,
Oui, cet exemple m'intéresse, hélas(1) il donne de droles de
résultats, par exemple avec \def\xp{0} et hélas(2) je ne vois pas où est
l'erreur.
Voici un second exemple repris à partir de l'exemple précédent, si
quelqu'un peut m'expliquer pourquoi les valeurs de f en 2 et 4 sont
justes et pas les autres :
% ################################################
% ################### Préambule ###################
% ################################################
\documentclass [a4paper,10pt] {article}
\usepackage [latin1]{inputenc}
\usepackage [T1]{fontenc}
\usepackage [francais]{babel}
% ############### Paquets maths ###############
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{fp}
% ############### Paquets graphiques ###############
\usepackage[x11names]{pstricks}
\usepackage{pst-func}
% ################################################
% ################### Document ###################
% ################################################
\begin{document}
\def\f#1{#1 2 exp 6 div} % définition utilisable par PSTricks
\def\FPf#1{#1 2 pow 6 div} % définition utilisable par FP
\begin{pspicture}(-5,-2)(8,7)
\psaxes{->}(0,0)(-5,-2)(8,7)[$x$,-90][$y$,180]
\psplot[linecolor=red,linewidth=1.5\pslinewidth]{-5}{8}{\f{x}}
\multido{\i=-4+2}{6}{
\FPeval\fdexp{\FPf{\i} 2 round} %f(\i) arrondi à 0.01 près
\uput*[90](!\i \space \f{\i}){\footnotesize{$f(\i)\simeq\fdexp$}}
\psdots(!\i \space \f{\i})
}
\end{pspicture}
\end{document}
--
Nicolas Poulain
Merci Nicolas de t'être penché dessus.
Bon après un rapide coup d'oeil à mon exemple, la solution est de
mettre pour définir la fonction :
\def\FPf#1{2 #1 pow 6 div} %fonction utilisable par FP
(en fait 2^3 s'écrit avec les fonctions FP et en notation pol.
inversée 3 2 pow)
Une fois cette modification faite, cela fonctionne bien, même en 0 :)
Pour ce qui est de ton exemple, il faut tout d'abord que tu modifies
la définition de FPf comme indiqué ci-dessus.
Ensuite un autre problème est qu'il me semble que fp utilise les
logarithmes pour calculer les puissances donc il ne faut pas que ton i
soit négatif.
Ecris donc plutôt \multido{\i=0+2}{6}{ etc. et cela fonctionne.
Si quelqu'un a une idée pour contourner le problème de ce pow qui
n'accepte pas les négatifs, je suis preneur.
Dans l'exemple de Nicolas, en le modifiant de la façon suivante cela
fonctionne parfaitement :
% ################################################
% ################### Préambule ###################
% ################################################
\documentclass [a4paper,10pt] {article}
\usepackage [latin1]{inputenc}
\usepackage [T1]{fontenc}
\usepackage [francais]{babel}
% ############### Paquets maths ###############
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{fp}
% ############### Paquets graphiques ###############
\usepackage[x11names]{pstricks}
\usepackage{pst-func}
% ################################################
% ################### Document ###################
% ################################################
\begin{document}
\def\f#1{#1 2 exp 6 div} % définition utilisable par PSTricks
\def\FPf#1{#1 #1 mul 6 div} % définition utilisable par FP
\begin{pspicture}(-5,-2)(8,7)
\psaxes{->}(0,0)(-5,-2)(8,7)[$x$,-90][$y$,180]
\psplot[linecolor=red,linewidth=1.5\pslinewidth]{-5}{8}{\f{x}}
\multido{\i=-4+2}{6}{
\FPeval\fdexp{\FPf{\i} 2 round} %f(\i) arrondi à 0.01 près
\uput*[90](!\i \space \f{\i}){\footnotesize{$f(\i)\simeq\fdexp
$}}
\psdots(!\i \space \f{\i})
}
\end{pspicture}
\end{document}
-----------------------
Thibault
c'est troublant ...
\def \f#1{#1 2 exp 6 div} % définition utilisable par PSTricks
\def\FPf#1{2 #1 pow 6 div} % définition utilisable par FP
d'autant plus troublant que sur ma HP48, pour faire 2^3, je tape bien :
2 3 [y^x]
> Pour ce qui est de ton exemple, il faut tout d'abord que tu modifies
> la définition de FPf comme indiqué ci-dessus.
Ok, je viens de le trouver dans la doc, merci.
> Ensuite un autre problème est qu'il me semble que fp utilise les
> logarithmes pour calculer les puissances donc il ne faut pas que ton i
> soit négatif.
> Ecris donc plutôt \multido{\i=0+2}{6}{ etc. et cela fonctionne.
... oui mais ce n'est pas très satisfaisant !
> Si quelqu'un a une idée pour contourner le problème de ce pow qui
> n'accepte pas les négatifs, je suis preneur.
+1
--
Nicolas Poulain
Tout à fait d'accord avec toi pour la fonction f:x->(x^2)/6 mais je
suis moins sûr pour g:x->(x^18)/6. ;-)
--
Nicolas Poulain
> Tout à fait d'accord avec toi pour la fonction f:x->(x^2)/6 mais je
> suis moins sûr pour g:x->(x^18)/6. ;-)
+1 yek yek en espérant qu'un gourou du postscript aura une autre
solution :)=)
Ce serait tellement plus simple de pouvoir récupérer une valeur
calculée avec du code postscript du genre :
\def\resultat{!12 18 exp 6 div} %pour obtenir resultat:=(12^18)/6
P.S. Comment je fais pour que ce soit uniquement mon pseudo qui
s'affiche en haut de mes messages au lieu de mon adresse e-mail ?
Ah oui ! C'est rigolo ! Note qu'on peut toujours utiliser un exch en
PostScript. À la limite, on se réinvente un opérateur pow en PostScript
dont la définition serait "exch exp" et hop ! Ce sera 2 #1 pow 6 div
pour tout le monde.
Pour le problème du moins unaire, on peut toujours l'éviter avec un
(0-<ce qu'on veut>) au lieu de -<ce qu'on veut> mais j'admets que c'est
un poil lourdingue.
> d'autant plus troublant que sur ma HP48, pour faire 2^3, je tape bien :
> 2 3 [y^x]
>
>> Pour ce qui est de ton exemple, il faut tout d'abord que tu modifies
>> la définition de FPf comme indiqué ci-dessus.
>
> Ok, je viens de le trouver dans la doc, merci.
>
>> Ensuite un autre problème est qu'il me semble que fp utilise les
>> logarithmes pour calculer les puissances donc il ne faut pas que ton i
>> soit négatif.
>> Ecris donc plutôt \multido{\i=0+2}{6}{ etc. et cela fonctionne.
>
> ... oui mais ce n'est pas très satisfaisant !
>
>> Si quelqu'un a une idée pour contourner le problème de ce pow qui
>> n'accepte pas les négatifs, je suis preneur.
>
> +1
OPERATOR POW (a, b) IS
IF b < 0 THEN
IF a == 0 THEN
Gueule un coup
ELSE
a <- 1/a
b <- -b
END IF
END IF
a b pow (ou b a pow)
END OPERATOR
2
0 3 SUB % pour avoir un -3 :-)
POW
Jean-Côme Charpentier
--
(tiens j'ai acheté "Number of the Beast" y'a pas longtemps, tout le
monde s'en fout mais ça m'a fait penser à ça).
-+- JKr in fr.comp.text.tex -+-
Ouaip, mais je trouvais plus intuitif l'ordre #1 2 pour élever un
nombre #1 au carré, c'est à dire comme dans PSTricks. Cette syntaxe dans
fp, c'est intentionnel ?
> Pour le problème du moins unaire, on peut toujours l'éviter avec un
> (0-<ce qu'on veut>) au lieu de -<ce qu'on veut> mais j'admets que c'est
> un poil lourdingue.
oui... ;-)
>>> Si quelqu'un a une idée pour contourner le problème de ce pow qui
>>> n'accepte pas les négatifs, je suis preneur.
>> +1
>
> OPERATOR POW (a, b) IS
> IF b < 0 THEN
> IF a == 0 THEN
> Gueule un coup
> ELSE
> a <- 1/a
> b <- -b
> END IF
> END IF
> a b pow (ou b a pow)
> END OPERATOR
>
> 2
> 0 3 SUB % pour avoir un -3 :-)
> POW
et dans la définition de la commande FPpow de fp-exp.sty, ça ne
vaudrait pas le coup de faire quelques tests sur les arguments (entier
ou non, notamment) pour permettre le calcul de (-3)^2 pour lequel on a
un plantage qui vient du fait que fp cherche à calculer e^(2ln(-3)) ?
\def\FP@pow#1#2#3{
% #1 macro, which gets the result
% #2 base
% #3 exponent
%
\FP@beginmessage{POW}%
%
{\def\FP@beginmessage##1{}%
\def\FP@endmessage##1{}%
%
\FPifzero{#2}%
\FP@pow@zero{#3}%
\else%
\FPln\FP@tmpd{#2}%
\FPmul\FP@tmpd\FP@tmpd{#3}%
\FPexp\FP@tmp\FP@tmpd%
\fi%
%
\global\let\FP@tmp\FP@tmp%
}%
%
\FP@endmessage{}%
%
\let#1\FP@tmp%
}
--
Nicolas Poulain
> > Pour le problème du moins unaire, on peut toujours l'éviter avec un
> > (0-<ce qu'on veut>) au lieu de -<ce qu'on veut> mais j'admets que c'est
> > un poil lourdingue.
Pour ce qui est du moins unaire, j'ai mis un petit post sur le
message de mocky qui posait le problème des valeurs négatives dans FP.
Pour travailler avec un nombre négatif, il faut soit utiliser la
fonction neg soit mettre le nombre entre parenthèses et cela
fonctionne :
Pour faire \FPeval{calcul}{-3*2^5},
il suffit de faire soit \FPeval{calcul}{(-3)*2^5} soit \FPeval{calcul}
{neg(3)*2^5}.
Pour ce qui est de faire un petit tour dans la définition de la
fonction pow de FP, je vous laisse la main, je n'y comprends rien avec
tous ces @ :) mais je suis fortement intéressé (gniark gniark).
------------------
Thibault
Je me suis souvenu que c'est un point sur lequel j'avais déjà planché
pour afficher les racines d'une équation :
http://pageperso.aol.fr/manuelluque4/dichotomie/dichotomie.html
Et je crois que ça a été repris par H.Voss dans \pst-func.
Pour le point particulier qui t'intéresse, je pense que le bout de
code suivant suffira, attention il faut la version 2008 de pstricks !
La fonction s'écrit en notation algébrique.
\documentclass[a4paper]{article}
\usepackage{pst-node}
\SpecialCoor
\makeatletter
%
\def\psValeur#1#2{%
\pnode(! %
/rpn {tx@AlgToPs begin AlgToPs end cvx exec} def
/fonction {(#2) rpn } def
/MG 72 def
/LigneSuivante
{ currentpoint 16 sub
exch pop
MG exch
moveto } def
/Times-Roman findfont
10 scalefont
setfont
/chaine 15 string def
/imprime {chaine cvs show } def
/x #1 def
fonction imprime
0 0){taratata}
}
\makeatother
\begin{document}
%\psset{algebraic=true}
la valeur de $f(4)$ est \psValeur{4}{3*x^3/(2+x)}
\end{document}
La taille de la fonte en pts se changeà cette ligne :
10 scalefont
Cordialement,
Manuel
Oui. J'avais oublié que cela fonctionnait avec les parenthèses. Merci
pour la piqûre de rappel.
> Pour travailler avec un nombre négatif, il faut soit utiliser la
> fonction neg soit mettre le nombre entre parenthèses et cela
> fonctionne :
> Pour faire \FPeval{calcul}{-3*2^5},
> il suffit de faire soit \FPeval{calcul}{(-3)*2^5} soit \FPeval{calcul}
> {neg(3)*2^5}.
>
> Pour ce qui est de faire un petit tour dans la définition de la
> fonction pow de FP, je vous laisse la main, je n'y comprends rien avec
> tous ces @ :) mais je suis fortement intéressé (gniark gniark).
J'ai le projet (lointain) de reprendre la maintenance de fp^1. Le
moins unaire est sur la liste des erreurs à corriger (pour moi, c'est
bien une erreur). D'ailleurs, il me semble bien que c'est sur pow qu'il
y avait également une merde avec une espace parasite. J'ai bon ?
Le souhait de pouvoir faire des puissances négatives est louable... et
sans doute pas si compliqué à programmer. Je le mets sur la liste^2.
Jean-Côme Charpentier
1. En fait, c'est un projet lié à xlop version 0.3. J'ai la
bénédiction de Michael Mehlich qui a totalement quitté le monde TeX et
qui était tout étonné qu'on se serve encore de son extension. Cela dit,
si d'autres personnes veulent le faire avant moi, il n'y a aucun problème.
2. Dans la todo list figurait également le fait de faire un dtx digne
de ce nom et donc une documentation moins minimaliste que l'actuelle.
--
Il fait comme tout le monde sur fct^W abUsenet, il doit choisir entre
lire et répondre. Dans une journée tu n'as pas le temps de faire les
deux, et essayer quand-même mène rapidement à l'asile.
En utilisant la remarque de Manuel Luque, j'ai repris le petit
exemple qui marche désormais très bien... sans utiliser fp et sa syntaxe
RPN différente de celle de PSTricks :
%---------------------------------------
\documentclass [a4paper,10pt] {article}
\usepackage [latin1]{inputenc}
\usepackage [T1]{fontenc}
\usepackage [francais]{babel}
\usepackage{pstricks-add}
\usepackage{pst-func}
\begin{document}
\def\f#1{#1 2 exp 6 div} % f(x)=(x^2)/6
\begin{pspicture}(-5,-2)(8,7)
\psaxes{->}(0,0)(-5,-2)(8,7)
\psplot[linecolor=red]{-5}{7}{\f{x}}
\multido{\i=-4+2}{6}{
\psdots(!\i \space \f{\i})
\uput[90](!\i \space \f{\i}){\psPrintValue{\f{\i}}}
}
\end{pspicture}
\end{document}
%---------------------------------------
--
Nicolas Poulain
> %---------------------------------------
> \documentclass [a4paper,10pt] {article}
> \usepackage [latin1]{inputenc}
> \usepackage [T1]{fontenc}
> \usepackage [francais]{babel}
> \usepackage{pstricks-add}
> \usepackage{pst-func}
>
> \begin{document}
>
> \def\f#1{#1 2 exp 6 div} % f(x)=(x^2)/6
>
> \begin{pspicture}(-5,-2)(8,7)
> \psaxes{->}(0,0)(-5,-2)(8,7)
> \psplot[linecolor=red]{-5}{7}{\f{x}}
> \multido{\i=-4+2}{6}{
> \psdots(!\i \space \f{\i})
> \uput[90](!\i \space \f{\i}){\psPrintValue{\f{\i}}}
> }
> \end{pspicture}
>
> \end{document}
> %---------------------------------------
Au fait, à propos de \psPrintValue, c'est dans la doc de pst-func :
http://www.ctan.org/get/graphics/pstricks/contrib/pst-func/pst-func-doc.pdf
--
Nicolas Poulain
> J'ai le projet (lointain)
Lointain, lointain, si on te laisse faire. Mais si on se met à te harceler à
chaque fil ? ;-)
> 1. En fait, c'est un projet lié à xlop version 0.3. J'ai la
> bénédiction de Michael Mehlich qui a totalement quitté le monde TeX et
> qui était tout étonné qu'on se serve encore de son extension. Cela dit,
> si d'autres personnes veulent le faire avant moi, il n'y a aucun problème.
Je t'ai déjà parlé de bigintcalc ? Comme je ne sais pas trop comment
fonctionne fp, je ne sais pas si ça peut aider un pas (représenter les
décimaux comme de grands multiples d'un tout petit truc et tout laisser
faire par bigintcalc par exemple)...
> 2. Dans la todo list figurait également le fait de faire un dtx digne
> de ce nom et donc une documentation moins minimaliste que l'actuelle.
>
Je vote pour ! :-)
Manuel.
PS : récemment, dans un document, je mentionnais xlop et, comme je m'étais
donné pour règle de toujours indiquer la doc de chaque extension, j'ai
vérifié : il n'y a un seul document sur tout le CTAN qui s'appelle
fr-user.pdf...
> > J'ai le projet (lointain)
>
> Lointain, lointain, si on te laisse faire. Mais si on se met à te
> harceler à chaque fil ? ;-)
>
> [...]
>
> > 2. Dans la todo list figurait également le fait de faire un dtx
> > digne de ce nom et donc une documentation moins minimaliste que
> > l'actuelle.
> Je vote pour ! :-)
Hep, hep, hep ! Désolé les gars, mais j'étais preum's : Jean-Côme a un
travail¹ urgent, qu'il doit entamer pendant les prochaines vacances de
Pâques, à rendre pour il y a un an et demi...
------------
1. Une sombre histoire d'index.
--
Denis
Je... heuu... non rien.
Nom de K... Si j'arrive à commencer xlop pendant les grandes vacances,
j'aurai de la chance.
Jean-Côme Charpentier
--
Il faut dire que les extensions publiques que je fabrique doivent
fonctionner en Plain TeX sauf impossibilité stricte ou non sens : une
lubie personnelle non négociable :-)
-+- Jean-Côme in fr.comp.text.tex -+-
En tout cas je me rends compte qu'on ne m'avait pas menti en disant
que sur fctt il y avait toujours qqu'un de compétant pour te
renseigner.
Un très très gros merci à vous tous qui m'ont permis de résoudre ce
petit problème et j'ai un peu de honte de n'avoir pas vu dans la doc
de pst-func qu'il y avait directement ce que je cherchais :)
Et aussi un grand bravo (sincère) à tous ceux qui consacrent leur
temps à développer toutes ces extensions qui nous simplifient la vie.
-------------
Thibault
%------------------------------------------------------------------
\documentclass [a4paper,10pt] {article}
\usepackage [latin1]{inputenc}
\usepackage [T1]{fontenc}
\usepackage [francais]{babel}
\usepackage{pstricks}
\usepackage{pst-func}
\begin{document}
%Traçage de la courbe y=(x^2)/6 - Utilisation du package pst-func
\psset{unit=0.5cm}
\def\f#1{#1 2 exp 6 div} \def\flabel{$f(x)=\dfrac{x^2}{6}$}
\begin{pspicture}(-5,-2)(8,7)
% Dessin des axes
\psaxes[labelFontSize=\tiny, ticksize=-.1 .1,subticks=2]{->}(0,0)
(-5,-2)(8,7)
[$x$,-90][$y$,180]
% Traçage de la fonction
\psplot[linecolor=red,linewidth=1.5\pslinewidth]{-4}{6}{\f{x}} %on
trace f(x)
% Positionnement d'un point
\def\xp{4}
\psline[linestyle=dashed,linecolor=blue](\xp,0)(!\xp\space \f{\xp})(!
0 \f{\xp})
\uput*{0.3}[d](\xp,0){\textcolor{blue}{\footnotesize{\xp}}}
\uput*{0.3}[l](!0 \f{\xp}){\textcolor{blue}%
{\footnotesize{$f(\xp)\simeq\psPrintValue{\f{\xp}}$}}}
\end{pspicture}
\end{document}
%---------------------------------------------------------
J'ai quand-même un petit problème (euh non en fait 3 problèmes) :
- Tout d'abord comment faire pour arrondir le nombre à 2 ou 3
chiffres après la virgule ?
- Ensuite, la couleur n'est pas prise en compte.
- Et enfin j'ai un petit souci d'alignement car je voudrais que ce
soit à gauche de mon axe des ordonnées (sans bidouiller avec le uput).
Si tu as une idée... Merci d'avance.
Ceci règle deux problèmes :
l'arrondi et la couleur mais pas le placement car psPrintValue ne
réserve pas l'espace et je ne sais pas comment en récupérer la largeur.
Donc bidouille à tâtons sur la distance du uput :-(
Si quelqu'un sait comment s'y prendre...
%-----------------------------------------------
\documentclass [a4paper,10pt] {article}
\usepackage [latin1]{inputenc}
\usepackage [T1]{fontenc}
\usepackage [francais]{babel}
\usepackage{pstricks}
\usepackage{pst-func}
\begin{document}
%Traçage de la courbe y=(x2)/6 - Utilisation du package pst-func
\psset{unit=0.5cm}
\def\f#1{#1 2 exp 6 div} \def\flabel{$f(x)=\dfrac{x2}{6}$}
\begin{pspicture}(-5,-2)(8,7)
% Dessin des axes
\psaxes[labelFontSize=\tiny, ticksize=-.1 .1,subticks=2]%
{->}(0,0)(-5,-2)(8,7)
[$x$,-90][$y$,180]
% Traçage de la fonction
\psplot[linecolor=red,linewidth=1.5\pslinewidth]{-4}{6}{\f{x}} %on
trace f(x)
% Positionnement d'un point
\def\xp{4}
\psline[linestyle=dashed,linecolor=blue](\xp,0)(!\xp\space \f{\xp})(!0
\f{\xp})
\uput*{0.3}[d](\xp,0){\textcolor{blue}{\footnotesize{\xp}}}
\uput*{1.6}[180](!0 \f{\xp}){\textcolor{blue}%
{\footnotesize{$f(\xp)\simeq$ \psPrintValue[linecolor=blue]%
{\f{\xp} 100 mul round 100 div }}}}
% on calcule f(\xp) puis on prend l’arrondi de ce nombre multiplié
% par 100 qu’on divise ensuite par 100 afin d’obtenir une
% approximation à deux chiffres après la virgule
\end{pspicture}
\end{document}
%-----------------------------------------------
--
Nicolas Poulain
Oui, merci bcp. Je suis vraiment bête de ne pas y a voir pensé pour
l'arrondi :-)
> mais pas le placement car psPrintValue ne
> réserve pas l'espace et je ne sais pas comment en récupérer la largeur.
> Donc bidouille à tâtons sur la distance du uput :-(
Oui, c'est bien triste...
Par contre il y a encore un souci (arghhh), le séparateur décimal est
un point ! Cela m'embête un peu quand même ;-)
On ne va pas s'en sortir (gniark gniark) mais bon, c'est comme cela
qu'on apprend.
Bah non, je ne sais pô faire. Je sentais bien le \psset{comma=true}
mais non.
--
Nicolas Poulain
> Bah non, je ne sais pô faire. Je sentais bien le \psset{comma=true}
> mais non.
Bon ben c'est pas grave... Merci en tout cas d'avoir fait avancer le
problème. On a déjà quelque chose de bien avec cela :-)
Bonne continuation et à plus tard.
---------------------------------
Thibault