Étoiles¶
J’avais besoin d’une étoile à cinq branches pour illustrer un projet. J’ai écrit la fonction \etoile{rayon}{sommets}{décalage}
:
rayon
: rayon du cercle dans lequel est inscrit l’étoile ;sommets
: nombre de pointes de l’étoile (en fait, il s’agit du nombre de sommets du polygone régulier utilisé pour construire l’étoile) ;décalage
: deux pointes de l’étoile sont reliées par un segment (tronqué) ; cet argument donne le nombre de pointes situées entre deux sommets (dans le sens direct).
Voici quelques exemples.
|
|
|
|
|
|
|
|
|
|
|
% Copyright 2023 Louis Paternault
%
% This work may be distributed and/or modified under the following licences.
%
% LaTeX Project Public Licence
% ----------------------------
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% Creative Commons by-sa 4.0
% --------------------------
%
% This work may be distributed and/or modified under the
% conditions of the Creative Commons Attribution-ShareAlike 4.0 International
% (CC BY-SA 4.0). The full text of this license is in
% https://creativecommons.org/licenses/by-sa/4.0/
% Compile using LuaLaTeX
%$ lualatex $basename
\documentclass[tikz]{standalone}
\newcommand{\etoile}[3]{
% \etoile{radius}{number of edges}{gap}
\begin{tikzpicture}
\draw[
rounded corners=1pt,
fill=yellow,
draw=yellow!50!black,
line width=4pt,
]
(
{0}
:
{#1}
) -- (
{(180/(#2)}
:
{(#1)/(cos(180/(#2))*(1+tan(180/(#2))/tan(90*(#2-2*#3)/(#2))))}
)
\foreach \i in {0, ..., {#2}}{
-- (
{(360*\i)/(#2)}
:
{#1}
) -- (
{((2*\i+1)*180)/(#2)}
:
{(#1)/(cos(180/(#2))*(1+tan(180/(#2))/tan(90*(#2-2*#3)/(#2))))}
)
}
-- cycle;
\end{tikzpicture}
}
\begin{document}
\etoile{1}{5}{2}
\etoile{1}{6}{2}
\etoile{1}{7}{2}
\etoile{1}{7}{3}
\etoile{1}{8}{2}
\etoile{1}{8}{3}
\end{document}
Quelques explications pour l’étoile¶
Voici comment sont construites les étoiles suivantes : .
Prenons d’abord le cercle trigonométrie, et plaçons les septs sommets d’un polygone régulier à sept branches (en prenant les points de coordonnées polaires \((1 ; 360k/7)\) (pour \(k\) allant de 0 à 6).
À partir de là, pour l’étoile avec un décalage de 2 (
\etoile{1}{7}{2}
), chaque sommet est relié au deuxième sommet dans le sens horaire.Et pour l’étoile avec un décalage de 3 (
\etoile{1}{7}{3}
), chaque sommet est relié au troisième dans le sens horaire.Il ne reste plus qu’à calculer les positions des intersections de ces segments, pour ne pas tracer les segments intérieurs, et le tour est joué.
J’ai écrit ce code il y a plusieurs années, donc je ne me souviens plus des détails de calcul, et j’ai la flemme de refaire les calculs (et les figures qui vont avec). Bon courage !