Retour

Source de manuel_geoplan_rappels.tex

Fichier TeX
\documentclass[10pt]{article}

% Use this form to include eps (latex) or pdf (pdflatex) files:
\usepackage{asymptote}
\usepackage[latin1]{inputenc}
\usepackage[francais]{babel}
\usepackage[T1]{fontenc}
\usepackage{eurosym}
\usepackage{pstricks}
\usepackage{graphicx}
\usepackage{multicol}
\usepackage{frcursive}
\usepackage{lmodern} 
\usepackage{fichexo} %package personnel
\usepackage{amsfonts,amssymb,amsmath,amsthm}
\usepackage{mathrsfs}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{anysize}
\usepackage{calc}
\usepackage{stmaryrd}
\usepackage{picins}
\usepackage{geometry}
\geometry%
   {%
   margin=1cm,%
   %landscape=true,%
   }%
\usepackage{lscape}

\usepackage{lscape}
\newcommand{\asym}{ \texttt{Asymptote} }
\newcommand{\com}{$\blacktriangleright$}
\newcommand{\comm}[1]{$\blacktriangleright$ \texttt{#1} }
% Use this form with latex or pdflatex to include inline LaTeX code:
%\usepackage[inline]{asymptote}

% Enable this line to produce pdf hyperlinks with latex:
%\usepackage[hypertex]{hyperref}

% Enable this line to produce pdf hyperlinks with pdflatex:
%\usepackage[pdftex]{hyperref}


\author{}
\date{}
\begin{document}
\begin{landscape}

\pagestyle{empty}
\setlength{\columnsep}{6mm}
\setlength{\columnseprule}{0.4pt}
\begin{multicols}{3}
\begin{center}
	\begin{large}Macros de géométrie  plane avec \asym	\end{large}
\end{center}
\begin{asydef}
// Global Asymptote définitions can be put here.
usepackage("bm");
defaultpen(fontsize(10));
\end{asydef}

\def\A{A}
\def\B{\bm{B}}
\section{Préambule.}
\subsection{Les dimensions.}
\texttt{figure(pair basgauche,pair hautdroit)} permet de fixer le cadre. Il n'est, par défaut, pas tracé.

La constante \texttt{croix} définit la taille des points tracés à l'écran, les dimensions de la croix en fait.

la constante \texttt{mainlevee} de type \texttt{bool} à la valeur \texttt{true} permet d'avoir un dessin <<à main levée>>.
\section{Les points}
\subsection{Tracé}

$\blacktriangleright$ \texttt{pointe(pair A,pen p=currentpen)} trace une croix en A sans nommer le point.

$\blacktriangleright$ \texttt{nomme(Label L, pair position,pen p=currentpen)} trace le point sur le pair <<position>> et place le texte contenu dans le <<label>> L.




\subsection{Construction}

$\blacktriangleright$ \texttt{pointdistant(pair A,real distance, real angle)} crée un <<pair>> situé à une certaine distance de A, (AB) faisant un angle donné avec l'horizontale. 

$\blacktriangleright$ \texttt{compas(pair A,pair B, real a, real b)} crée un <<pair>> situé à distances données de A et B.

$\blacktriangleright$ \texttt{point\_angle\_dist(pair O,pair A, real a, real d)} place le point situé à d cm de O et faisant un angle d avec (OA). 

$\blacktriangleright$ \texttt{milieu(pair A, pair B)},bon là, ça va aller.

$\blacktriangleright$ \texttt{pointsur(path chemin, real r)} renvoie un <<pair>> situé sur la chemin en fonction de $r\in[0..1]$: 0 correspond à l'origine et 1 à l'extrémité. 

\subsection{Points particuliers}
$\blacktriangleright$ \texttt{orthocentre(pair C, pair A, pair B)} renvoie l'orthocentre du triangle ABC.

$\blacktriangleright$ \texttt{circonscrit(pair C, pair A, pair B)} renvoie le centre du cercle circonscrit à ABC.

\comm{inscrit{pair A, pair B, pair C}} renvoie le centre du cercle inscrit dans ABC.

$\blacktriangleright$ \texttt{projortho(pair M, pair A,pair B)} renvoie le projeté orthogonal de M sur (AB).

\section{Mesure et codage}
\subsection{Cotation}
$\blacktriangleright$ \texttt{cotemilieu(pair A,pair B, string texte, real d,pen sty=black)} trace une flèche de A à B à d mm au dessus de (AB), le texte est au milieu.

$\blacktriangleright$ \texttt{cote(pair A,pair B, string texte, real d,pen sty=black)} trace une flèche de A à B à d mm au dessus de (AB), le texte est au dessus.

$\blacktriangleright$ \texttt{etiquette(pair A, pair B, string txt,bool dessus=true,pen sty=currentpen)} place le texte txt le long de [AB].

$\blacktriangleright$ \texttt{hachurage(path p,real  espace, real angle, pen pen=currentpen)} remplit avec des hachures espacées de "espace" mm, avec un angle de "angle" \degre le chemin fermé p.

\subsection{Codage des longeurs et des angles}
$\blacktriangleright$ \texttt{code(int trait,pair[] K)}code une série de segments dont les extrémités sont contenues dans une matrice de type <<pair[]>>. Le paramètre "trait" précise le codage :
\begin{description}
 \item[Si "trait" vaut 1, 2 ou 3] le segment est codé par des traits ...
\item[Si "trait" vaut 4] le segment est codé par un tilde.
\item[Si "trait" vaut 5] le segment est codé par un cercle.
 \end{description}

$\blacktriangleright$ \texttt{codemilieu(pair A, pair B, int trait)} est similaire à \verb+code+ mais plus simple syntaxiquement. 

$\blacktriangleright$ \texttt{codeangle(pair A,pair B, pair C, int trait,int nbarc=1)} marque l'angle $\ang{ABC}$ par des traits et un ou plusieurs arcs de cercle. 

$\blacktriangleright$ \texttt{angledroit(pair A,pair C,pair B,real taille=3mm, pen p=black)} code l'angle droit $\ang{ACB}$.

\section{Quadrillages}

$\blacktriangleright$ \texttt{ millimetre(pen sty=orange)} trace du papier millimétré dans les limites du \texttt{cadre}. La couleur par defaut est "orange".

$\blacktriangleright$ \texttt{carreau(real cote=0.5, pen sty=orange)} trace un quadrillage \mbox{5 mm $\times$ 5mm} par défaut.

$\blacktriangleright$ \texttt{seyes()} trace un morceau de cahier d'écolier.

\section{triangle et quadrilatères}

Pour les triangles, la longueur $a$ est située en face du point $A$, $b$ et $c$ sont placés ensuite dans le sens trigonométrique.
L'angle $\ang{alpha}$ est l'angle en $A$, $\ang{beta}$ en $B$.

\com \texttt{triangle3c(pair A, real a, real b, real c, bool dessus=true,real angle=0)} renvoie un path, le triangle dont les côtés sont a b et c en cm. 

\com \texttt{triangle1c(pair A, real c, real alpha, real beta,bool dessus=true,real angle=0)} renvoie un path, le triangle de côté c en cm.et d'angles adjacents alpha et beta  

\com \texttt{triangle2c(pair A, real c, real b, real alpha, bool dessus=true,real angle=0)} renvoie un path, le triangle de côtés adjacents c et b en cm.et formant un angle alpha.

\com \texttt{rectangle(pair A, real a, real b,bool diagonale=false,real angle=0)} renvoie un path, le rectangle de côtés adjacents a et b en cm. Si diagonale=true, b est la diagonale.

\com \texttt{parallelogramme(pair A, real a, real b,real alpha, bool diagonale=false,real angle=0)} renvoie un path, le parallelogramme de côtés adjacents a et b en cm formant un angle alpha. 

Si diagonale vaut true, alpha est la diagonale en cm.

\section{Droites et segments}

$\blacktriangleright$ La commande \texttt{segment(pair A, pair B,real a=0) }renvoie le chemin [AB] et permet de faire dépasser le trait de $a$ cm de part et d'autre des extrémités.

$\blacktriangleright$ \texttt{ droite(pair A, pair B)} définit un <<path>> passant par A et B mais contenu dans le \verb+cadre+, le résultat est plus élégant -- à mon sens -- que \verb+drawline+.

$\blacktriangleright$ La fonction \texttt{perpendiculaire(pair A, pair B, pair M) }
(\emph{resp.} \verb+parallele+) retourne la droite perpendicualire (\emph{resp.} parallèle) à (AB) et passant par M.

On dispose aussi des fonctions suivantes qui renvoient toutes des droites :

$\blacktriangleright$ \verb+hauteur(pair C, pair A, pair B)+: la hauteur issue de C de ABC.

$\blacktriangleright$ \verb+mediatrice(pair A, pair B)+: la médiatrice de [AB]

$\blacktriangleright$ \verb+bissectrice(pair A, pair B, pair C)+:la bissectrice de l'angle ABC.

\section{Les cercles}

$\blacktriangleright$ \verb+arc(pair B, pair A, real s, real t)+ renvoie un chemin qui est l'arc de centre B, passant par A et avec un angle autour de A, le 0 étant sur A.

$\blacktriangleright$ \verb+cercle(pair O, pair A)+ renvoie le cercle de centre O et de rayon A.

$\blacktriangleright$ \verb+cercleR(pair O, real R)+ définit le cercle de centre O et de rayon R.

$\blacktriangleright$ \verb+cercleD(pair A, pair B)+ donne le cercle de diamètre [AB].

\section{Repérage}
\subsection{Axes gradués}

\comm{void inequation(string txt="", real valeur, real crochet, real zone,pen pen=currentpen)} trace l'axe gradué, hachuré à partir de \texttt{valeur} dans la direction définie par \texttt{zone}:
\begin{description}
	\item[si \texttt{zone} = $-1$]; la partie vers les abscisses négatifs est hachurée.
	\item[si \texttt{zone} = $1$]; la partie vers les abscisses positifs est hachurée.
 \end{description}

\texttt{crochet} fonctionne de la même façon.

\comm{void graduation(pair origine, pair unite, real debut, real fin, string
originetxt="$O$", string unitetxt="1", real intermediaire=0,pen sty=currentpen)} trace un axe gradué, les valeurs \texttt{début} et \texttt{fin} sont exprimés en fonction du vecteur unité, \texttt{intermediaire} est une fraction du vecteur unité.

\comm{void abscisse(string txtdessous, string txtdessus="",pair origine, pair unite,real x,bool croix=false,pen sty=currentpen)} trace un point qui correspond à une abscisse particulière sur un axe



\subsection{Repères}

Le type \texttt{repere} contient les informations nécéssaires à un repère du plan :
\begin{verbatim}
struct repere {
pair origine ;
pair abscisse;
pair ordonnee;
string originetxt ;
string abscissetxt;
string ordonneetxt;
}	
\end{verbatim}

\begin{description}
	\item[\texttt{origine}] contient les coordonnées de l'origine.
	\item[\texttt{abscisse}] contient les coordonnées du vecteur de l'axe des abscisses.
	\item[\texttt{ordonnee}] contient les coordonnées du vecteur de l'axe des ordonnées.
	\item[\texttt{originetxt }] contient le nom de l'origine.
	\item[\texttt{abscissetxt}] contient le nom de du vecteur de l'axe des abscisses.
	\item[\texttt{ordonneetxt}] contient le nom de du vecteur de l'axe des ordonnées.
 \end{description}

Le repère par défaut est définit par \verb+reperecourant+, une constante de type \texttt{repere}. C'est, sauf définition de l'utilisateur, le repère << canonique >> de \mbox{\asym.}

\begin{verbatim}
repere canonique;
canonique.origine=(0,0);
canonique.abscisse=(1,0);
canonique.ordonnee=(0,1);
canonique.originetxt="$O$";
canonique.abscissetxt="$\vec{i}$";
canonique.ordonneetxt="$\vec{j}$";
\end{verbatim}


\comm{axes(repere rep,int graduation=1,pen sty=currentpen)} trace les axes si graduation=1, gradué toutes les unités, 2 toutes les demi-unités, 3 tous les dixièmes.

\comm{base(repere rep,bool vecteur=true,pen sty=currentpen)} trace une base avec les vecteurs. Si \texttt{vecteur} est \texttt{true}, le nom des vecteurs apparaissent.


\subsection{Les points}

\comm{pair place(string nom,real x, real y,pair direction, repere rep=reperecourant, bool trait=false, pen sty=currentpen)} renvoie et place un pair avec les coordonnées (x;y) dans le repère rep mais dont les coordonnées pour \asym peuvent être différentes.

\comm{pair position(real x, real y,repere rep=reperecourant)} renvoie un pair avec les coordonnées (x;y) dans le repère rep mais dont les coordonnées pour \asym peuvent être différentes.

\section{Les courbes et fonctions}

\subsection{Courbes}


\comm{tracepara (real f(real),real g(real),real a, real b,repere rep=reperecourant,int precision=500 ,pen sty=currentpen+linewidth(0.5)) } trace des courbes paramètrées.

\comm{tracepolaire (real r(real),real a, real b,repere rep=reperecourant,int precision=500 ,pen sty=currentpen+linewidth(0.5))} trace des courbes polaires.

\subsection{Fonctions}

\comm{tracefonction (real f(real),real a, real b,repere rep=reperecourant,int precision=500 ,pen sty=currentpen+linewidth(0.5))} trace des fonctions.

\comm{path tangente(real a, real f(real), real h=0.01, repere rep=reperecourant)} trace la tangente en a à f.

\comm{path morceau (real f(real),real a, real b,repere rep=reperecourant,int precision=500)} renvoie un morceau de courbe si tout le tracé est contenu dans le cadre. Cette fonction est pratique pour hachurer des zones ou calculer des intersections de courbes.
%\vfill
\end{multicols}
	
\end{landscape}
\end{document}