aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/css/transform-function/matrix3d()/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/fr/web/css/transform-function/matrix3d()/index.html')
-rw-r--r--files/fr/web/css/transform-function/matrix3d()/index.html182
1 files changed, 182 insertions, 0 deletions
diff --git a/files/fr/web/css/transform-function/matrix3d()/index.html b/files/fr/web/css/transform-function/matrix3d()/index.html
new file mode 100644
index 0000000000..0f638286b7
--- /dev/null
+++ b/files/fr/web/css/transform-function/matrix3d()/index.html
@@ -0,0 +1,182 @@
+---
+title: matrix3d()
+slug: Web/CSS/transform-function/matrix3d()
+tags:
+ - CSS
+ - Reference
+ - Transformations CSS
+translation_of: Web/CSS/transform-function/matrix3d()
+---
+<div>{{CSSRef}}</div>
+
+<p>La fonction <strong><code>matrix3d()</code></strong> décrit une transformation en trois dimensions sous la forme d'une matrice homogène (4x4). Les 16 paramètres passés à la fonction sont listés par ligne puis par colonne. Le résultat de cette fonction est une valeur de type {{cssxref("&lt;transform-function&gt;")}}.</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<pre class="syntaxbox notranslate">matrix3d(<var>a1</var>, <var>b1</var>, <var>c1</var>, <var>d1</var>, <var>a2</var>, <var>b2</var>, <var>c2</var>, <var>d2</var>, <var>a3</var>, <var>b3</var>, <var>c3</var>, <var>d3</var>, <var>a4</var>, <var>b4</var>, <var>c4</var>, <var>d4</var>)</pre>
+
+<h3 id="Valeurs">Valeurs</h3>
+
+<dl>
+ <dt><var>a1</var> <var>b1</var> <var>c1</var> <var>d1</var> <var>a2</var> <var>b2</var> <var>c2</var> <var>d2</var> <var>a3</var> <var>b3</var> <var>c3</var> <var>d3</var> <var>d4</var></dt>
+ <dd>Des valeurs de type {{cssxref("&lt;number&gt;")}} qui sont les coefficients de la matrice définissant la transformation linéaire.</dd>
+ <dt><code>a4</code> <code>b4<em> </em>c4</code></dt>
+ <dd>Les coefficients de type {{cssxref("&lt;number&gt;")}} qui définissent la translation à appliquer.</dd>
+</dl>
+
+<div class="note"><strong>Note :</strong> Jusqu'à Firefox 16, Gecko permettait d'utiliser des valeurs {{cssxref("&lt;length&gt;")}} pour les coefficients <code>a4</code>, <code>b4</code> et <code>c4</code>.</div>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Coordonnées cartésiennes sur ℝ<sup>2</sup></th>
+ <th scope="col">Coordonnées homogènes sur ℝℙ<sup>2</sup></th>
+ <th scope="col">Coordonnées cartésiennes sur ℝ<sup>3</sup></th>
+ <th scope="col">Coordonnées homogènes sur ℝℙ<sup>3</sup></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td colspan="2" rowspan="2">Cette transformation s'applique dans l'espace (3D) et ne peut pas être représentée en deux dimensions.</td>
+ <td colspan="1" rowspan="2">Les matrices exprimées avec des coordonnées cartésiennes ne permettent pas de représenter des transformations 3D affines car les translations ne sont pas des transformations linéaires.</td>
+ <td colspan="1" rowspan="2"><math><mfenced><mtable><mtr><mtd>a1</mtd><mtd>a2</mtd><mtd>a3</mtd><mtd>a4</mtd></mtr><mtr><mtd>b1</mtd><mtd>b2</mtd><mtd>b3</mtd><mtd>b4</mtd></mtr><mtr><mtd>c1</mtd><mtd>c2</mtd><mtd>c3</mtd><mtd>c4</mtd></mtr><mtr><mtd>d1</mtd><mtd>d2</mtd><mtd>d3</mtd><mtd>d4</mtd></mtr></mtable> </mfenced> </math></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Exemples">Exemples</h2>
+
+<h3 id="Exemple_simple">Exemple simple</h3>
+
+<h4 id="HTML">HTML</h4>
+
+<pre class="brush: html notranslate">&lt;p&gt;toto&lt;/p&gt;
+&lt;p class="transformation"&gt;truc&lt;/p&gt;</pre>
+
+<h4 id="CSS">CSS</h4>
+
+<pre class="brush: css notranslate">p {
+ width: 50px;
+ height: 50px;
+ background-color: teal;
+}
+
+.transformation{
+ transform: matrix3d(0.87,-0.5,0.00,0,0.50,0.87,0.00,0,0,0,1,0,0,0,0,1);
+ background-color: blue;
+}
+</pre>
+
+<h4 id="Résultat">Résultat</h4>
+
+<p>{{EmbedLiveSample("Exemple_simple","100%","200")}}</p>
+
+<h3 id="Translation_et_homothétie_matricielle">Translation et homothétie matricielle</h3>
+
+<h4 id="HTML_2">HTML</h4>
+
+<pre class="brush: html notranslate">&lt;div class="foo"&gt;
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit.
+ Quos quaerat sit soluta, quisquam exercitationem delectus qui unde in facere
+ necessitatibus aut quia porro dolorem nesciunt enim, at consequuntur aliquam esse?
+&lt;/div&gt;
+</pre>
+
+<h4 id="CSS_2">CSS</h4>
+
+<pre class="brush: css notranslate">html {
+ width: 100%;
+}
+body {
+ height: 100vh;
+ /* Centering content */
+ display: flex;
+ flex-flow: row wrap;
+ justify-content: center;
+ align-content: center;
+
+}
+.foo {
+ width: 50%;
+ padding: 1em;
+ color: white;
+ background: #ff8c66;
+ border: 2px dashed black;
+ text-align: center;
+ font-family: system-ui, sans-serif;
+ font-size: 14px;
+ /* Setting up animation for better demonstration */
+ animation: MotionScale 2s alternate linear infinite;
+}
+
+@keyframes MotionScale {
+ from {
+ /*
+ Identity matrix is used as basis here.
+ The matrix below describes the
+ following transformations:
+ Translates every X point by -50px
+ Translates every Y point by -100px
+ Translates every Z point by 0
+ Scales down by 10%
+ */
+ transform: matrix3d(
+ 1,0,0,0,
+ 0,1,0,0,
+ 0,0,1,0,
+ -50,-100,0,1.1
+ );
+
+ }
+ 50% {
+ transform: matrix3d(
+ 1,0,0,0,
+ 0,1,0,0,
+ 0,0,1,0,
+ 0,0,0,0.9
+ );
+ }
+ to {
+ transform: matrix3d(
+ 1,0,0,0,
+ 0,1,0,0,
+ 0,0,1,0,
+ 50,100,0,1.1
+ )
+ }
+}</pre>
+
+<h4 id="Résultat_2">Résultat</h4>
+
+<p>{{EmbedLiveSample('Translation_et_homothétie_matricielle', '100%', '400px')}}</p>
+
+<h2 id="Spécifications">Spécifications</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Spécification</th>
+ <th scope="col">État</th>
+ <th scope="col">Commentaires</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName("CSS Transforms 2", "#funcdef-matrix3d", "matrix3d()")}}</td>
+ <td>{{Spec2("CSS Transforms 2")}}</td>
+ <td>Définition initiale.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
+
+<p>Voir la page sur le type de donnée <code><a href="/fr/docs/Web/CSS/transform-function#Compatibilité_des_navigateurs">&lt;transform-function&gt;</a></code> pour les informations de compatibilité associées.</p>
+
+<h2 id="Voir_aussi">Voir aussi</h2>
+
+<ul>
+ <li>{{cssxref("transform")}}</li>
+ <li>{{cssxref("&lt;transform-function&gt;")}}</li>
+ <li><a href="https://dev.opera.com/articles/understanding-the-css-transforms-matrix/">Comprendre les matrices de transformations CSS (en anglais)</a></li>
+</ul>