diff options
Diffstat (limited to 'manuals/chickadee/Matrices.html')
-rw-r--r-- | manuals/chickadee/Matrices.html | 63 |
1 files changed, 25 insertions, 38 deletions
diff --git a/manuals/chickadee/Matrices.html b/manuals/chickadee/Matrices.html index c5a0098..5f1e6fe 100644 --- a/manuals/chickadee/Matrices.html +++ b/manuals/chickadee/Matrices.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> -<!-- Copyright (C) 2017, 2018, 2019 David Thompson davet@gnu.org +<!-- Copyright (C) 2017-2020 David Thompson davet@gnu.org Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 @@ -18,7 +18,7 @@ Foundation Web site at http://www.gnu.org/licenses/fdl.html. The document was typeset with http://www.texinfo.org/ (GNU Texinfo). --> -<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ --> +<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Matrices (The Chickadee Game Toolkit)</title> @@ -38,23 +38,14 @@ http://www.texinfo.org/ (GNU Texinfo). <!-- a.summary-letter {text-decoration: none} blockquote.indentedblock {margin-right: 0em} -blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} -blockquote.smallquotation {font-size: smaller} div.display {margin-left: 3.2em} div.example {margin-left: 3.2em} div.lisp {margin-left: 3.2em} -div.smalldisplay {margin-left: 3.2em} -div.smallexample {margin-left: 3.2em} -div.smalllisp {margin-left: 3.2em} kbd {font-style: oblique} pre.display {font-family: inherit} pre.format {font-family: inherit} pre.menu-comment {font-family: serif} pre.menu-preformatted {font-family: serif} -pre.smalldisplay {font-family: inherit; font-size: smaller} -pre.smallexample {font-size: smaller} -pre.smallformat {font-family: inherit; font-size: smaller} -pre.smalllisp {font-size: smaller} span.nolinebreak {white-space: nowrap} span.roman {font-family: initial; font-weight: normal} span.sansserif {font-family: sans-serif; font-weight: normal} @@ -89,21 +80,18 @@ ul.no-bullet {list-style: none} </head> <body lang="en"> -<a name="Matrices"></a> -<div class="header"> +<span id="Matrices"></span><div class="header"> <p> Next: <a href="Quaternions.html#Quaternions" accesskey="n" rel="next">Quaternions</a>, Previous: <a href="Grid.html#Grid" accesskey="p" rel="prev">Grid</a>, Up: <a href="Math.html#Math" accesskey="u" rel="up">Math</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> </div> <hr> -<a name="Matrices-1"></a> -<h4 class="subsection">2.2.5 Matrices</h4> +<span id="Matrices-1"></span><h4 class="subsection">2.2.5 Matrices</h4> <p>The <code>(chickadee math matrix)</code> module provides an interface for working with the most common type of matrices in game development: 4x4 transformation matrices. </p> -<a name="Another-Note-About-Performance"></a> -<h4 class="subsubsection">2.2.5.1 Another Note About Performance</h4> +<span id="Another-Note-About-Performance"></span><h4 class="subsubsection">2.2.5.1 Another Note About Performance</h4> <p>Much like the vector API, the matrix API is commonly used in performance critical code paths. In order to reduce the amount of @@ -111,23 +99,22 @@ garbage generated and improve matrix multiplication performance, there are many procedures that perform in-place modifications of matrix objects. </p> -<a name="Matrix-Operations"></a> -<h4 class="subsubsection">2.2.5.2 Matrix Operations</h4> +<span id="Matrix-Operations"></span><h4 class="subsubsection">2.2.5.2 Matrix Operations</h4> <dl> -<dt><a name="index-make_002dmatrix4"></a>Procedure: <strong>make-matrix4</strong> <em>aa ab ac ad ba bb bc bd ca cb cc cd da db dc dd</em></dt> +<dt id="index-make_002dmatrix4">Procedure: <strong>make-matrix4</strong> <em>aa ab ac ad ba bb bc bd ca cb cc cd da db dc dd</em></dt> <dd> <p>Return a new 4x4 matrix initialized with the given 16 values in column-major format. </p></dd></dl> <dl> -<dt><a name="index-make_002dnull_002dmatrix4"></a>Procedure: <strong>make-null-matrix4</strong></dt> +<dt id="index-make_002dnull_002dmatrix4">Procedure: <strong>make-null-matrix4</strong></dt> <dd><p>Return a new 4x4 matrix with all values initialized to 0. </p></dd></dl> <dl> -<dt><a name="index-make_002didentity_002dmatrix4"></a>Procedure: <strong>make-identity-matrix4</strong></dt> +<dt id="index-make_002didentity_002dmatrix4">Procedure: <strong>make-identity-matrix4</strong></dt> <dd><p>Return a new 4x4 identity matrix. Any matrix multiplied by the identity matrix yields the original matrix. This procedure is equivalent to the following code: @@ -142,12 +129,12 @@ equivalent to the following code: </dd></dl> <dl> -<dt><a name="index-matrix4_003f"></a>Procedure: <strong>matrix4?</strong> <em>obj</em></dt> +<dt id="index-matrix4_003f">Procedure: <strong>matrix4?</strong> <em>obj</em></dt> <dd><p>Return <code>#t</code> if <var>obj</var> is a 4x4 matrix. </p></dd></dl> <dl> -<dt><a name="index-matrix4_002a"></a>Procedure: <strong>matrix4*</strong> <em>. matrices</em></dt> +<dt id="index-matrix4_002a">Procedure: <strong>matrix4*</strong> <em>. matrices</em></dt> <dd><p>Return a new 4x4 matrix containing the product of multiplying all of the given <var>matrices</var>. </p> @@ -155,7 +142,7 @@ the given <var>matrices</var>. </p></dd></dl> <dl> -<dt><a name="index-orthographic_002dprojection"></a>Procedure: <strong>orthographic-projection</strong> <em>left right top bottom near far</em></dt> +<dt id="index-orthographic_002dprojection">Procedure: <strong>orthographic-projection</strong> <em>left right top bottom near far</em></dt> <dd> <p>Return a new 4x4 matrix that represents an orthographic (2D) projection for the horizontal clipping plane <var>top</var> and @@ -164,7 +151,7 @@ and the depth clipping plane <var>near</var> and <var>far</var>. </p></dd></dl> <dl> -<dt><a name="index-perspective_002dprojection"></a>Procedure: <strong>perspective-projection</strong> <em>fov aspect-ratio near far</em></dt> +<dt id="index-perspective_002dprojection">Procedure: <strong>perspective-projection</strong> <em>fov aspect-ratio near far</em></dt> <dd> <p>Return a new 4x4 matrix that represents a perspective (3D) projection with a field of vision of <var>fov</var> radians, an aspect ratio of @@ -173,68 +160,68 @@ and <var>far</var>. </p></dd></dl> <dl> -<dt><a name="index-matrix4_002dtranslate"></a>Procedure: <strong>matrix4-translate</strong> <em>x</em></dt> +<dt id="index-matrix4_002dtranslate">Procedure: <strong>matrix4-translate</strong> <em>x</em></dt> <dd><p>Return a new 4x4 matrix that represents a translation by <var>x</var>, a 2D vector, a 3D vector, or a rectangle (in which case the bottom-left corner of the rectangle is used). </p></dd></dl> <dl> -<dt><a name="index-matrix4_002dscale"></a>Procedure: <strong>matrix4-scale</strong> <em>s</em></dt> +<dt id="index-matrix4_002dscale">Procedure: <strong>matrix4-scale</strong> <em>s</em></dt> <dd><p>Return a new 4x4 matrix that represents a scaling along the X, Y, and Z axes by the scaling factor <var>s</var>, a real number. </p></dd></dl> <dl> -<dt><a name="index-matrix4_002drotate"></a>Procedure: <strong>matrix4-rotate</strong> <em>q</em></dt> +<dt id="index-matrix4_002drotate">Procedure: <strong>matrix4-rotate</strong> <em>q</em></dt> <dd><p>Return a new 4x4 matrix that represents a rotation about an arbitrary axis defined by the quaternion <var>q</var>. </p></dd></dl> <dl> -<dt><a name="index-matrix4_002drotate_002dz"></a>Procedure: <strong>matrix4-rotate-z</strong> <em>theta</em></dt> +<dt id="index-matrix4_002drotate_002dz">Procedure: <strong>matrix4-rotate-z</strong> <em>theta</em></dt> <dd><p>Return a new 4x4 matrix that represents a rotation about the Z axis by <var>theta</var> radians. </p></dd></dl> <dl> -<dt><a name="index-matrix4_002didentity_0021"></a>Procedure: <strong>matrix4-identity!</strong> <em>matrix</em></dt> +<dt id="index-matrix4_002didentity_0021">Procedure: <strong>matrix4-identity!</strong> <em>matrix</em></dt> <dd><p>Modify <var>matrix</var> in-place to contain the identity matrix. </p></dd></dl> <dl> -<dt><a name="index-matrix4_002dmult_0021"></a>Procedure: <strong>matrix4-mult!</strong> <em>dest a b</em></dt> +<dt id="index-matrix4_002dmult_0021">Procedure: <strong>matrix4-mult!</strong> <em>dest a b</em></dt> <dd><p>Multiply the 4x4 matrix <var>a</var> by the 4x4 matrix <var>b</var> and store the result in the 4x4 matrix <var>dest</var>. </p></dd></dl> <dl> -<dt><a name="index-matrix4_002dtranslate_0021"></a>Procedure: <strong>matrix4-translate!</strong> <em>matrix x</em></dt> +<dt id="index-matrix4_002dtranslate_0021">Procedure: <strong>matrix4-translate!</strong> <em>matrix x</em></dt> <dd><p>Modify <var>matrix</var> in-place to contain a translation by <var>x</var>, a 2D vector, a 3D vector, or a rectangle (in which case the bottom-left corner of the rectangle is used). </p></dd></dl> <dl> -<dt><a name="index-matrix4_002dscale_0021"></a>Procedure: <strong>matrix4-scale!</strong> <em>matrix s</em></dt> +<dt id="index-matrix4_002dscale_0021">Procedure: <strong>matrix4-scale!</strong> <em>matrix s</em></dt> <dd><p>Modify <var>matrix</var> in-place to contain a scaling along the X, Y, and Z axes by the scaling factor <var>s</var>, a real number. </p></dd></dl> <dl> -<dt><a name="index-matrix4_002drotate_0021"></a>Procedure: <strong>matrix4-rotate!</strong> <em>matrix q</em></dt> +<dt id="index-matrix4_002drotate_0021">Procedure: <strong>matrix4-rotate!</strong> <em>matrix q</em></dt> <dd><p>Modify <var>matrix</var> in-place to contain a rotation about an arbitrary axis defined by the quaternion <var>q</var>. </p></dd></dl> <dl> -<dt><a name="index-matrix4_002drotate_002dz_0021"></a>Procedure: <strong>matrix4-rotate-z!</strong> <em>matrix theta</em></dt> +<dt id="index-matrix4_002drotate_002dz_0021">Procedure: <strong>matrix4-rotate-z!</strong> <em>matrix theta</em></dt> <dd><p>Modify <var>matrix</var> in-place to contain a rotation about the Z axis by <var>theta</var> radians. </p></dd></dl> <dl> -<dt><a name="index-matrix4_002d2d_002dtransform_0021"></a>Procedure: <strong>matrix4-2d-transform!</strong> <em>matrix [#:origin] [#:position] [#:rotation] [#:scale] [#:skew]</em></dt> +<dt id="index-matrix4_002d2d_002dtransform_0021">Procedure: <strong>matrix4-2d-transform!</strong> <em>matrix [#:origin] [#:position] [#:rotation] [#:scale] [#:skew]</em></dt> <dd> <p>Modify <var>matrix</var> in-place to contain the transformation described by <var>position</var>, a 2D vector or rectangle, <var>rotation</var>, a scalar @@ -245,7 +232,7 @@ particular transformation will not be included in the result. </p></dd></dl> <dl> -<dt><a name="index-transform_0021"></a>Procedure: <strong>transform!</strong> <em>matrix v</em></dt> +<dt id="index-transform_0021">Procedure: <strong>transform!</strong> <em>matrix v</em></dt> <dd><p>Modify the 2D vector <var>v</var> in-place by multiplying it by the 4x4 matrix <var>matrix</var>. </p></dd></dl> |