\documentclass[10pt,a4paper]{article}
%%% taille 10 points et format de papier A4
%%% classe article

%%% Codage en unicode
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} 

\usepackage{multicol,multirow}%%%         multicolonnes multilignes
\usepackage[normalem]{ulem}%%%   pour texte barré \sout{}
\usepackage[french]{babel}%%%    écriture en français
\DecimalMathComma%%%             évite l'espace après la virgule en mode math
%\usepackage{multido}%%%          pour faire des boucles
\usepackage{pst-all,pst-eucl,pst-func}%%% PsTricks etc.
\usepackage{pst-bezier}
\usepackage{graphicx}%%%         pour graphiques et couleurs	
\usepackage{amsmath,amsfonts,amssymb}%%% outils AMS
\usepackage{mathrsfs}%%%         police script \mathscr{}
\usepackage{tabularx}%%%         tableaux
\usepackage{fancybox}%%%         divers boîtes
\usepackage{lscape}%%%           mode paysage
\usepackage[np]{numprint}%%%     pour formater les nombres de plus de 3 chiffres
\usepackage{colortbl}%%%         pour griser des cases dans un tableau
\usepackage{makeidx}%%%          pour créer un index
\makeindex%%%                    indispensable après l'appel du package makeidx
\usepackage{lettrine}%%%         pour créer des lettrines
\usepackage{eurosym}%%%          sigle euro
\usepackage{xcolor}
\usepackage{upgreek}%%% pour lettres greques en romain comme $\upbeta$


%\usepackage{bez123}%%%     courbes de Bézier

\usepackage{vmargin}%%%          réglage des marges
\setmarginsrb{3cm}{2cm}{3cm}{2cm}{1cm}{1cm}{1cm}{1cm}
% 1 est la marge gauche
% 2 est la marge en haut
% 3 est la marge droite
% 4 est la marge en bas
% 5 fixe la hauteur de l'entête
% 6 fixe la distance entre l'entête et le texte
% 7 fixe la hauteur du pied de page
% 8 fixe la distance entre le texte et le pied de page

\setlength{\parindent}{0pt}%%% règle l'indentation en début de paragraphe 
\setlength{\parskip}{3pt}%%% espacement entre 2 paragraphes

%%%  Commandes perso FH

%%% Pour intégrale, somme et produit, etc.
\newcommand{\ds}{\displaystyle}%%% raccourci pour \displaystyle

%%% ensembles de nombres
%%% On réservera le style "double barre" à l'écriture au tableau
\newcommand{\N}{\textbf{N}}
\newcommand{\Z}{\textbf{Z}}
\newcommand{\D}{\textbf{D}}
\newcommand{\Q}{\textbf{Q}}
\newcommand{\R}{\textbf{R}}
\newcommand{\K}{\textbf{K}}

%%% différents repères
\newcommand{\Oij}{(\text{O}\,;\,\vec{\imath}\,,\,\vec{\jmath})}
\newcommand{\rep}{(\text{O},\text{I},\text{J})}
\newcommand{\Ouv}{(\text{O}\,;\,\vec{u}\,,\,\vec{v})}
%\newcommand{\Oijk}{(\text{O}\,;\,\vec{\imath}\,,\,\vec{\jmath}\,,\,\vec{k})}

%%%  Courbe représentative
%\newcommand{\Cr}[1]{\mathscr{C}_{#1}}

%%% crochets gauche et droit
\newcommand{\cg}{\texttt{]}}
\newcommand{\cd}{\texttt{[}}

%%% crochet d'entiers
\newcommand{\cde}{\texttt{[}\!\!\texttt{[}}
\newcommand{\cge}{\texttt{]}\!\!\texttt{]}}

%%% inférieur ou égal, supérieur ou égal
\newcommand{\pg}{\geqslant}
\newcommand{\pp}{\leqslant}

\usepackage{fancyhdr}%%%       En-têtes et pieds de pages
\pagestyle{fancy}
\renewcommand\headrulewidth{1pt}%%% filet haut de page
\renewcommand\footrulewidth{0pt}%%% filet bas de page
\renewcommand{\headwidth}{\textwidth}
%%% head pour haut de page
%%% L C et R pour Left Center et Right
\fancyhead[L]{\url{http://latexetmath.canalblog.com}}
\fancyhead[R]{\today} %%% \today = date du jour
\fancyhead[C]{}
%%% foot pour pied de page
\fancyfoot[C]{\begin{small}-- \thepage\  --\end{small}}  
\fancyfoot[R]{}%%%     {\jobname}%%% nom du fichier tex
\fancyfoot[L]{\href{mailto:francois.hache@free.fr}{FH}}

%%% Pour les énumérations
%%% premier niveau 
\renewcommand{\theenumi}{\textbf{\arabic{enumi}}}
\renewcommand{\labelenumi}{\textbf{\theenumi.}}
%%% deuxième niveau
\renewcommand{\theenumii}{\textbf{\alph{enumii}}}
\renewcommand{\labelenumii}{\textbf{\theenumii.}}
%%% troisième niveau
\renewcommand{\theenumiii}{\textbf{\arabic{enumiii}}}
\renewcommand{\labelenumiii}{\textbf{\theenumiii)}}
%%% permet d'avoir a. au lieu de (a) dans une énumération de niveau 2
%%% voir : http://cahiers.gutenberg.eu.org/cg-bin/article/CG_1994___17_32_0.pdf

\newenvironment{changemargin}[2]
{\begin{list}{}{%
\setlength{\topsep}{0pt}%
\setlength{\leftmargin}{0pt}%
\setlength{\rightmargin}{0pt}%
\setlength{\listparindent}{\parindent}%
\setlength{\itemindent}{\parindent}%
\setlength{\parsep}{0pt plus 1pt}%
\addtolength{\leftmargin}{#1}%
\addtolength{\rightmargin}{#2}%
}\item }{\end{list}}
%%%% pour changer les marges gauche et droite sur un paragraphe
%%%% \begin{changemargin}{marge gauche}{marge droite}
%%%% ...
%%%% \end{changemargin}

\usepackage{hyperref}%%% pour les références

%%% paramètres des pdf
\hypersetup{
pdfauthor = {F. Hache},
pdftitle = {Fonctions},
pdfstartview = FitH,
pdfcreator = {LaTeX vers PDF}
allbordercolors = white,
colorlinks=true,
linkcolor=red,
urlcolor=red,
unicode=true}

%%% Autres commandes qui doivent être définies après hyperref
\newcommand{\e}{\,\text{e\,}}%%%               le e de l'exponentielle
\renewcommand{\d}{\,\text d}%%%              le d de l'intégration
\renewcommand{\i}{\,\text{i}\,}%%%           le i des complexes
\renewcommand{\v}[1]{\,\overrightarrow{\,\text{#1}\,}}%%% vecteur
\renewcommand{\C}{\textbf{C}}

%%% définitions de nouvelles couleurs
\newrgbcolor{rb}{0.804 0 0}
\newrgbcolor{vb}{0 0.545 0}

%\usepackage{listings}

\begin{document}

\part*{\centering \rb Courbe régulière - encore}

Remettez-vous en mémoire les documents  
\href{http://latexetmath.canalblog.com/archives/2022/02/13/39345898.html}{Courbe régulière}
et
\href{http://latexetmath.canalblog.com/archives/2022/04/15/39436177.html}{Courbe régulière ; compléments}
avant de vous lancer dans la lecture de celui-ci.

\section{L'instruction \textbackslash{}pscspline}

Dans les deux chroniques citées plus haut, je disais tout le bien que je pensais de l'instruction \verb!\psbcurve! pour tracer des courbes passant par des points fixés.

Denis \textsc{Vergès}, rédacteur  de tous les sujets en \LaTeX{} proposés sur le site de
\href{https://www.apmep.fr/-Annales-Bac-Brevet-BTS-}{l'APMEP}, 
m'a parlé de l'instruction \verb!\pscspline! (créée par Christoph \textsc{Bersch}) qui permet, elle aussi, de tracer des courbes passant par des points fixés.
La (brève!) description de \verb!\pscspline! se trouve dans le document
\href{https://mirrors.rit.edu/CTAN/graphics/pstricks/base/doc/pst-news14.pdf}{pst-news14}
dont j'ai déjà parlé dans la
\href{https://p8.storage.canalblog.com/89/17/1082582/130901543.pdf}{chronique 14}
de la saison 5.
On peut télécharger les autres bulletins de Herbert Vo$\upbeta$ à partir de ce
\href{https://mirrors.rit.edu/CTAN/graphics/pstricks/base/doc/}{répertoire.}

\section{Utilisation de \textbackslash{}pscspline}

L'utilisation de \verb!\pscspline! est très simple; on entre par exemple:

\hfill{}\verb!\pscspline(-1,-2)(1,5)(3,2)(6,3)!\hfill{}

pour tracer une courbe passant par les 4 points dont on a donné les coordonnées.

Comme dans les chroniques précédentes, je préfère définir les points avec \verb!\Cnode*!

\hfill{}\verb!\Cnode*(-1,-2){A} \Cnode*(1,5){B} \Cnode*(3,2){C} \Cnode*(6,3){D}!,\hfill{}

pour écrire: \hfill{}\verb!\pscspline(A)(B)(C)(D)!.\hfill\hfill{}

Voici un tracé de courbe avec \verb!\pscspline! et, en tirets, la courbe passant par les mêmes points tracée avec \verb!\psbcurve!.

\begin{center}
\psset{unit=1cm,radius=2pt,arrowsize=3pt 3}
\def\xmin {-2}   \def\xmax {7}
\def\ymin {-3}   \def\ymax {6}
\begin{pspicture}(\xmin,\ymin)(\xmax,\ymax)
\psgrid[subgriddiv=1,  gridlabels=0, gridcolor=lightgray] 
\psaxes[ticksize=-2pt 2pt, labels=none]{->}(0,0)(\xmin,\ymin)(\xmax,\ymax) 
\uput[dl](0,0){O} \uput[d](1,0){I}  \uput[r](0,1){J} 
\Cnode*(-1,-2){A} \Cnode*(1,5){B} \Cnode*(3,2){C} \Cnode*(6,3){D}
\uput[dl](A){A}  \uput[dl](C){C} 
\uput[ul](B){B}  \uput[ur](D){D}
%\psset{showpoints}
\psbcurve[linecolor=blue,linestyle=dashed](A)(B)(C)(D)
\pscspline(A)(B)(C)(D)
%\pscustom[fillcolor=red!20, fillstyle=solid]{%
%\pscspline(A)(B)(C)(D)
%%\lineto(0,0)
%\psplot{6}{-1}{0}
%\closepath}
\end{pspicture}
\end{center}

Comment est tracée la courbe avec \verb!\pscspline!? Je l'ignore.

\section{Aire sous la courbe}

Le document 
\href{https://mirrors.rit.edu/CTAN/graphics/pstricks/base/doc/pst-news14.pdf}{pst-news14}
donne cet exemple d'aire sous une courbe tracée avec \verb!\pscspline!:

\bigskip

\begin{center}
\begin{pspicture}[showgrid](5,4)
\pscustom[fillcolor=red!20, fillstyle=solid]{%
\pscspline(0,3)(4,2)(5,0)
\lineto(0,0)
\closepath}
\end{pspicture}
\end{center}

\bigskip

En voici le code:

\begin{changemargin}{1cm}{0cm}
\begin{verbatim}
\begin{pspicture}[showgrid](5,4)
\pscustom[fillcolor=red!20, fillstyle=solid]{%
\pscspline(0,3)(4,2)(5,0)
\lineto(0,0)
\closepath}%
\end{pspicture}
\end{verbatim}
\end{changemargin}

En modifiant les points et en tapant \texttt{\textbackslash{}pscspline({\red{}1},3)(4,2)(5,{\red{}1})} au lieu de \verb!\pscspline(0,3)(4,2)(5,0)!, voici ce que l'on obtient:

\bigskip

\begin{center}
\begin{pspicture}[showgrid](5,4)
\pscustom[fillcolor=red!20, fillstyle=solid]{%
\pscspline(1,3)(4,2)(5,1)
\lineto(0,0)
\closepath}
\end{pspicture}
\end{center}

\bigskip

Bizarre! Pire encore si on rajoute le point de coordonnées (7,3):

\bigskip

\begin{center}
\begin{pspicture}[showgrid](8,4)
\pscustom[fillcolor=red!20, fillstyle=solid]{%
\pscspline(1,3)(4,2)(5,1)(7,3)
\lineto(0,0)
\closepath}
\end{pspicture}
\end{center}

C'est l'instruction \verb!\lineto(0,0)! qui n'est pas adaptée; il faut la remplacer par \verb!\psplot{7}{1}{0}!, où 7 est l'abscisse du dernier point,  1 l'abscisse du premier et 0 correspond à la fonction nulle.

\bigskip

\begin{center}
\begin{pspicture}[showgrid](8,4)
\pscustom[fillcolor=red!20, fillstyle=solid]{%
\pscspline(1,3)(4,2)(5,1)(7,3)
%\lineto(0,0)
\psplot{7}{1}{0}
\closepath}
\end{pspicture}
\end{center}

\bigskip

Tout est rentré dans l'ordre!

\bigskip

Alors, \verb!\psbcurve! ou \verb!\pscspline!?

Pour maitriser le tracé d'une courbe, il vaut mieux  utiliser \verb!\psbcurve!; mais si on veut tracer une aire sous une courbe, il faut utiliser  \verb!\pscspline! car je ne suis pas arrivé à le faire avec  \verb!\psbcurve!!
\end{document}