aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/svg/attribute/fill-rule/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'files/fr/web/svg/attribute/fill-rule/index.md')
-rw-r--r--files/fr/web/svg/attribute/fill-rule/index.md160
1 files changed, 160 insertions, 0 deletions
diff --git a/files/fr/web/svg/attribute/fill-rule/index.md b/files/fr/web/svg/attribute/fill-rule/index.md
new file mode 100644
index 0000000000..04872838d2
--- /dev/null
+++ b/files/fr/web/svg/attribute/fill-rule/index.md
@@ -0,0 +1,160 @@
+---
+title: fill-rule
+slug: Web/SVG/Attribute/fill-rule
+tags:
+ - SVG
+ - SVG Attribute
+translation_of: Web/SVG/Attribute/fill-rule
+---
+<div>{{SVGRef}}</div>
+
+<p>L'attribut <strong><code>fill-rule</code></strong> définit l'algorithme à utiliser pour déterminer les parties qui sont considérées <em>à l'intérieur</em> de la forme.</p>
+
+<div class="note">
+ <p><strong>Note :</strong> <code>fill-rule</code> est un attribut de présentation et peut donc être utilisé comme propriété CSS.</p>
+</div>
+
+<p>Cet attribut peut être appliqué à n'importe quel élément mais n'aura d'effet que sur les éléments suivants: {{SVGElement('altGlyph')}}, {{SVGElement('path')}}, {{SVGElement('polygon')}}, {{SVGElement('polyline')}}, {{SVGElement('text')}}, {{SVGElement('textPath')}}, {{SVGElement('tref')}}, et {{SVGElement('tspan')}}</p>
+
+<h2>Exemple</h2>
+
+<pre class="brush: css hidden">html,body,svg { height:100% }</pre>
+
+<pre class="brush: html">&lt;svg viewBox="-10 -10 220 120" xmlns="http://www.w3.org/2000/svg"&gt;
+ &lt;!-- Valeur par défaut pour fill-rule --&gt;
+  &lt;polygon fill-rule="nonzero" stroke="red"
+   points="50,0 21,90 98,35 2,35 79,90"/&gt;
+
+ &lt;!--
+ Les points au centre de la forme ont 2
+ segments (matérialisés par le trait rouge)
+ Avec la règle evenodd, ils sont considérés en
+ dehors de la forme, et l'intérieur de l'étoile
+ est donc vide.
+ --&gt;
+  &lt;polygon fill-rule="evenodd" stroke="red"
+   points="150,0 121,90 198,35 102,35 179,90"/&gt;
+&lt;/svg&gt;</pre>
+
+<p>{{EmbedLiveSample('exemple', '100%', 200)}}</p>
+
+<h2 id="Usage">Usage</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="row">Valeur</th>
+ <td><code>nonzero</code> | <code>evenodd</code></td>
+ </tr>
+ <tr>
+ <th scope="row">Valeur par défaut</th>
+ <td><code>nonzero</code></td>
+ </tr>
+ <tr>
+ <th scope="row">Animation</th>
+ <td>Yes</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>L'attribut <code>fill-rule</code> peut prendre deux valeurs:</p>
+
+<h3 id="nonzero">nonzero</h3>
+
+<p>La valeur <code>nonzero</code> détermine si un point est à l'intérieur d'une forme en dessinant un rayon à partir de ce point vers l'infini dans toutes les directions, puis examine les endroits où un segment de la forme traverse le rayon.</p>
+
+<p>À chaque fois qu'un segment traverse le rayon de gauche à droite, on ajoute un. À chaque fois qu'un segment traverse le rayon de droite à gauche, on soustrait un. Si au final, le compte est égal à zéro, le point est l'extérieur. Dans le cas contraire, il est à l'intérieur.</p>
+
+<h4 id="Exemple">Exemple</h4>
+
+<pre class="brush: css hidden">html,body,svg { height:100% }</pre>
+
+<pre class="brush: html">&lt;svg viewBox="-10 -10 320 120" xmlns="http://www.w3.org/2000/svg"&gt;
+  &lt;!-- Effet de la règle de remplissage sur les segments qui se croisent --&gt;
+  &lt;polygon fill-rule="nonzero" stroke="red"
+           points="50,0 21,90 98,35 2,35 79,90"/&gt;
+
+  &lt;!--
+  Effet sur une forme dans une forme
+  lorsque le segment va dans la même direction
+  (vers la droite)
+  --&gt;
+  &lt;path fill-rule="nonzero" stroke="red"
+        d="M110,0  h90 v90 h-90 z
+           M130,20 h50 v50 h-50 z"/&gt;
+
+  &lt;!--
+  Effet sur une forme dans une forme
+  lorsque le segment va dans la direction opposée
+  (vers la gauche contre vers la droite)
+  --&gt;
+  &lt;path fill-rule="nonzero" stroke="red"
+        d="M210,0  h90 v90 h-90 z
+           M230,20 v50 h50 v-50 z"/&gt;
+&lt;/svg&gt;</pre>
+
+<p>{{EmbedLiveSample('nonzero', '100%', 200)}}</p>
+
+<h3 id="evenodd">evenodd</h3>
+
+<p>La valeur <code>evenodd</code> détermine si un point est à l'intérieur d'une forme en dessinant un rayon de à partir de ce point vers l'infini dans toutes les directions, et compte le nombre de segments de la forme qui traversent ce rayon. Si ce nombre est impair (<em>odd</em> en anglais), alors le point est à l'intérieur. Si le nombre est pair (<em>even</em> en anglais), alors le point est à l'extérieur.</p>
+
+<h4 id="Exemple_2">Exemple</h4>
+
+<pre class="brush: css hidden">html,body,svg { height:100% }</pre>
+
+<pre class="brush: html">&lt;svg viewBox="-10 -10 320 120" xmlns="http://www.w3.org/2000/svg"&gt;
+  &lt;!-- Effet de la règle de remplissage sur les segments qui se croisent --&gt;
+  &lt;polygon fill-rule="evenodd" stroke="red"
+           points="50,0 21,90 98,35 2,35 79,90"/&gt;
+
+  &lt;!--
+  Effet sur une forme dans une forme
+  lorsque le segment va dans la même direction
+  (vers la droite)
+  --&gt;
+  &lt;path fill-rule="evenodd" stroke="red"
+        d="M110,0  h90 v90 h-90 z
+           M130,20 h50 v50 h-50 z"/&gt;
+
+  &lt;!--
+  Effet sur une forme dans une forme
+  lorsque le segment va dans la direction opposée
+  (vers la gauche contre vers la droite)
+  --&gt;
+  &lt;path fill-rule="evenodd" stroke="red"
+        d="M210,0  h90 v90 h-90 z
+           M230,20 v50 h50 v-50 z"/&gt;
+&lt;/svg&gt;</pre>
+
+<p>{{EmbedLiveSample('evenodd', '100%', 200)}}</p>
+
+<h2 id="Browser_Compatibility">Compatibilité des navigateurs</h2>
+
+<p>{{Compat("svg.attributes.presentation.fill-rule")}}</p>
+
+<h2 id="Spécification">Spécification</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Spécification</th>
+ <th scope="col">Statut</th>
+ <th scope="col">Commentaire</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName("SVG2", "painting.html#FillRuleProperty", "fill-rule")}}</td>
+ <td>{{Spec2("SVG2")}}</td>
+ <td>Définition pour les formes et le texte</td>
+ </tr>
+ <tr>
+ <td>{{SpecName("SVG1.1", "painting.html#FillRuleProperty", "fill-rule")}}</td>
+ <td>{{Spec2("SVG1.1")}}</td>
+ <td>Définition initiale pour les formes et le texte</td>
+ </tr>
+ </tbody>
+</table>
+
+<p> </p>