Jason McKesson avatar Jason McKesson committed 18bc807

Images finished for Tuts 00-11.

Comments (0)

Files changed (13)

Documents/Basics/Tutorial 02.xml

                         sizeof(float))]</literal>. And so on.</para>
                 <para>The data flow from the buffer object to the vertex shaders looks like this
                     now:</para>
-                <!--TODO: show two data chunks from the buffer becoming a single set of attribute data. Then show these
-data sets going to vertex shader invocations. Show at least 3 vertex shaders.-->
+                <figure>
+                    <title>Multiple Vertex Attributes</title>
+                    <mediaobject>
+                        <imageobject>
+                            <imagedata fileref="VertexShaderTwoAttributes.svg" format="SVG"/>
+                        </imageobject>
+                    </mediaobject>
+                </figure>
                 <para>As before, every 3 vertices process is transformed into a triangle.</para>
             </section>
         </section>
Add a comment to this file

Documents/Basics/VertexShaderDataFlow.svg

Old
Old image
New
New image
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="1920"
-     inkscape:window-height="1138"
+     inkscape:window-width="1768"
+     inkscape:window-height="1050"
      id="namedview32"
      showgrid="false"
      inkscape:zoom="1"
-     inkscape:cx="530.00943"
-     inkscape:cy="121.49248"
-     inkscape:window-x="-4"
+     inkscape:cx="238.00943"
+     inkscape:cy="235.49248"
+     inkscape:window-x="148"
      inkscape:window-y="-4"
      inkscape:window-maximized="1"
-     inkscape:current-layer="layer1"
+     inkscape:current-layer="layer2"
      showguides="true"
      inkscape:guide-bbox="true">
     <sodipodi:guide
            id="tspan4028">Index 2</tspan></tspan></text>
     <text
        xml:space="preserve"
-       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#00745e;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"
        x="260.72702"
        y="70.344383"
        id="text4060"
          id="tspan4062"><tspan
            x="260.72702"
            y="70.344383"
-           id="tspan4064">in vec3 position</tspan></tspan></text>
+           id="tspan4064"
+           style="fill:#00745e;fill-opacity:1">in vec4 position</tspan></tspan></text>
     <text
        xml:space="preserve"
-       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#00745e;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"
        x="260.72702"
        y="169.97955"
        id="text4054"
          id="tspan4056"><tspan
            x="260.72702"
            y="169.97955"
-           id="tspan4058">in vec3 position</tspan></tspan></text>
+           id="tspan4058"
+           style="fill:#00745e;fill-opacity:1">in vec4 position</tspan></tspan></text>
     <text
        xml:space="preserve"
-       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#00745e;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"
        x="260.72702"
        y="265.97955"
        id="text4048"
          id="tspan4050"><tspan
            x="260.72702"
            y="265.97955"
-           id="tspan4052">in vec3 position</tspan></tspan></text>
+           id="tspan4052"
+           style="fill:#00745e;fill-opacity:1">in vec4 position</tspan></tspan></text>
     <path
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       style="fill:none;stroke:#00745e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
        d="m 106,68 c 20.53861,0 28.07937,-13.597416 41.30057,-13.597416 18.59259,0.516592 46.78578,7.078799 65.43463,7.362217 C 231.83848,62.055125 239.29894,65 258,65"
        id="path3912"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="ccsc" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       style="fill:none;stroke:#00745e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
        d="m 106.5,102.5 c 29.39782,0 58.60756,14.24592 77.6668,30.75 34.14983,29.57157 30.02055,31.10355 73.8332,30.75"
        id="path3914"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="csc" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       style="fill:none;stroke:#00745e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
        d="m 106.06602,138.47278 c 38.18376,-1.06066 49.49747,12.72792 64.34672,51.97235 14.84924,39.24442 40.9774,70.71068 85.91347,70.71068"
        id="path3916"
        inkscape:connector-curvature="0"
Add a comment to this file

Documents/Basics/VertexShaderTwoAttributes.svg

Added
New image
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   version="1.2"
+   width="475"
+   height="375"
+   id="svg2"
+   style="fill:none;stroke:none">
+  <metadata
+     id="metadata36">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs34" />
+  <g
+     id="layer1">
+    <path
+       d="m 247,60.87021 0,0 c 0,-7.98065 6.4696,-14.45026 14.45026,-14.45026 l 170.56406,0 c 3.8324,0 7.50787,1.52243 10.2178,4.23238 2.71,2.70996 4.23245,6.38544 4.23245,10.21788 l 0,52.98923 c 0,7.98068 -6.46961,14.45028 -14.45025,14.45028 l -170.56406,0 C 253.4696,128.30972 247,121.84012 247,113.85944 z"
+       id="path4"
+       style="fill:#efecfd;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none" />
+    <path
+       d="m 247,160.50538 0,0 c 0,-7.98066 6.46961,-14.45027 14.45027,-14.45027 l 170.56405,0 c 3.83241,0 7.50787,1.52243 10.21781,4.23238 2.70999,2.70996 4.23245,6.38544 4.23245,10.21789 l 0,52.98922 c 0,7.98069 -6.46961,14.45028 -14.45026,14.45028 l -170.56405,0 C 253.46961,227.94488 247,221.47528 247,213.4946 z"
+       id="path4-4"
+       style="fill:#efecfd;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none" />
+    <path
+       d="m 247,256.50538 0,0 c 0,-7.98066 6.46961,-14.45027 14.45027,-14.45027 l 170.56405,0 c 3.83241,0 7.50787,1.52243 10.21781,4.23238 2.70999,2.70996 4.23245,6.38544 4.23245,10.21789 l 0,52.98922 c 0,7.98068 -6.46961,14.45028 -14.45026,14.45028 l -170.56406,0 C 253.46961,323.94488 247,317.47528 247,309.4946 z"
+       id="path4-2"
+       style="fill:#efecfd;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none" />
+    <path
+       d="m 23,49.204746 83.40157,0 0,35.795254 L 23,85 z"
+       id="path16"
+       style="fill:#d2fff1;fill-opacity:1;stroke:#000000;stroke-width:0.73229474;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none" />
+    <path
+       d="m 23,85 83.40158,0 0,35.79526 -83.40158,0 z"
+       id="path16-0"
+       style="fill:#d2fff1;fill-opacity:1;stroke:#000000;stroke-width:0.73229474;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none" />
+    <path
+       d="m 23,121.10237 83.40158,0 0,35.79526 -83.40158,0 z"
+       id="path16-0-1"
+       style="fill:#d2fff1;fill-opacity:1;stroke:#000000;stroke-width:0.73229474;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none" />
+    <path
+       d="m 23,157.10479 83.40157,0 0,35.79525 -83.40157,0 z"
+       id="path16-1"
+       style="fill:#ffa975;fill-opacity:1;stroke:#000000;stroke-width:0.73229474;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none" />
+    <path
+       d="m 23,192.90004 83.40158,0 0,35.79526 -83.40158,0 z"
+       id="path16-0-7"
+       style="fill:#ffa975;fill-opacity:1;stroke:#000000;stroke-width:0.73229474;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none" />
+    <path
+       d="m 23,229.00241 83.40158,0 0,35.79526 -83.40158,0 z"
+       id="path16-0-1-4"
+       style="fill:#ffa975;fill-opacity:1;stroke:#000000;stroke-width:0.73229474;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none" />
+  </g>
+  <g
+     id="layer2">
+    <text
+       x="13"
+       y="39"
+       id="text4042"
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"><tspan
+         x="13"
+         y="39"
+         id="tspan4044"><tspan
+           x="13"
+           y="39"
+           id="tspan4046">Buffer Object</tspan></tspan></text>
+    <text
+       x="284"
+       y="39.000004"
+       id="text4066"
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"><tspan
+         x="284"
+         y="39.000004"
+         id="tspan4068"><tspan
+           x="284"
+           y="39.000004"
+           id="tspan4070">Vertex Shaders</tspan></tspan></text>
+    <text
+       x="35.826771"
+       y="73.420509"
+       id="text4036"
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"><tspan
+         x="35.826771"
+         y="73.420509"
+         id="tspan4038"><tspan
+           x="35.826771"
+           y="73.420509"
+           id="tspan4040">Index 0</tspan></tspan></text>
+    <text
+       x="35.826771"
+       y="109.21577"
+       id="text4030"
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"><tspan
+         x="35.826771"
+         y="109.21577"
+         id="tspan4032"><tspan
+           x="35.826771"
+           y="109.21577"
+           id="tspan4034">Index 1</tspan></tspan></text>
+    <text
+       x="35.826771"
+       y="145.31813"
+       id="text4024"
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"><tspan
+         x="35.826771"
+         y="145.31813"
+         id="tspan4026"><tspan
+           x="35.826771"
+           y="145.31813"
+           id="tspan4028">Index 2</tspan></tspan></text>
+    <text
+       x="260.75"
+       y="70.344383"
+       id="text4060"
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#00745e;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"><tspan
+         x="260.75"
+         y="70.344383"
+         id="tspan4062"><tspan
+           x="260.75"
+           y="70.344383"
+           id="tspan4064"
+           style="fill:#00745e;fill-opacity:1">in vec4 position</tspan></tspan></text>
+    <text
+       x="260.75"
+       y="168.97955"
+       id="text4054"
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#00745e;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"><tspan
+         x="260.75"
+         y="168.97955"
+         id="tspan4056"><tspan
+           x="260.75"
+           y="168.97955"
+           id="tspan4058"
+           style="fill:#00745e;fill-opacity:1">in vec4 position</tspan></tspan></text>
+    <text
+       x="260.75"
+       y="266.22955"
+       id="text4048"
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#00745e;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"><tspan
+         x="260.75"
+         y="266.22955"
+         id="tspan4050"><tspan
+           x="260.75"
+           y="266.22955"
+           id="tspan4052"
+           style="fill:#00745e;fill-opacity:1">in vec4 position</tspan></tspan></text>
+    <path
+       d="m 106,68 c 20.53861,0 28.07937,-13.597416 41.30057,-13.597416 18.59259,0.516592 46.78578,7.078799 65.43463,7.362217 C 231.83848,62.055125 239.29894,65 258,65"
+       id="path3912"
+       style="fill:none;stroke:#00745e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       d="m 106.5,102.5 c 29.39782,0 58.60756,14.24592 77.6668,30.75 34.14983,29.57157 30.02055,31.10355 73.8332,30.75"
+       id="path3914"
+       style="fill:none;stroke:#00745e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       d="m 106.06602,138.47278 c 38.18376,-1.06066 49.49747,12.72792 64.34672,51.97235 14.84924,39.24442 40.9774,70.71068 85.91347,70.71068"
+       id="path3916"
+       style="fill:none;stroke:#00745e;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <text
+       x="35.826771"
+       y="181.32056"
+       id="text4036-0"
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"><tspan
+         x="35.826771"
+         y="181.32056"
+         id="tspan4038-9"><tspan
+           x="35.826771"
+           y="181.32056"
+           id="tspan4040-4">Index 0</tspan></tspan></text>
+    <text
+       x="35.826771"
+       y="217.11581"
+       id="text4030-8"
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"><tspan
+         x="35.826771"
+         y="217.11581"
+         id="tspan4032-8"><tspan
+           x="35.826771"
+           y="217.11581"
+           id="tspan4034-2">Index 1</tspan></tspan></text>
+    <text
+       x="35.826771"
+       y="253.21817"
+       id="text4024-4"
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"><tspan
+         x="35.826771"
+         y="253.21817"
+         id="tspan4026-5"><tspan
+           x="35.826771"
+           y="253.21817"
+           id="tspan4028-5">Index 2</tspan></tspan></text>
+    <text
+       x="260.75"
+       y="291.59439"
+       id="text3042"
+       xml:space="preserve"
+       style="font-size:20px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#a46d4a;fill-opacity:1;stroke:none;font-family:Serif;-inkscape-font-specification:Serif"><tspan
+         x="260.75"
+         y="291.59439"
+         id="tspan3044"><tspan
+           x="260.75"
+           y="291.59439"
+           id="tspan3046">in vec4 color</tspan></tspan></text>
+	<use
+       transform="translate(0,-98.75)"
+       id="use3812"
+       x="0"
+       y="0"
+       width="475"
+       height="375"
+       xlink:href="#text3042" />
+	<use
+       transform="translate(0,-196.75)"
+       id="use3812"
+       x="0"
+       y="0"
+       width="475"
+       height="375"
+       xlink:href="#text3042" />
+    <path
+       d="M 106.25,176 C 178,176 181,90.5 256,90.5"
+       id="path3814"
+       style="fill:none;stroke:#a46d4a;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       d="m 106.75,211.25 c 65,0 95.5,-21.75 149.25,-21.75"
+       id="path3816"
+       style="fill:none;stroke:#a46d4a;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       d="m 106.5,248.5 c 68.75,0 96,38.5 148.5,38.5"
+       id="path3818"
+       style="fill:none;stroke:#a46d4a;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+  </g>
+</svg>
Add a comment to this file

Documents/Illumination/BarycentricTriangle.svg

Old
Old image
New
New image
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 
 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" height="301px" width="301px" >
-	<style type="text/css" ><![CDATA[.vertex
-{
-	fill: black;
-	stroke: black;
-}
-
-.label
-{
-	font-family: monospace;
-	stroke-width: 1px;
-	stroke: black;
-	text-anchor: middle;
-	font-size: 25px;
-}
-
-.vertex_label
-{
-	font-family: monospace;
-	stroke-width: 1px;
-	font-weight: bold;
-	stroke: black;
-	text-anchor: middle;
-	font-size: 25px;
-}
-
-.baryPts
+	<style type="text/css" ><![CDATA[.baryPts
 {
 	stroke-opacity: 0.5;
 	stroke: violet;
 {
 	fill: none;
 	stroke: black;
+}
+
+.vertex
+{
+	fill: black;
+	stroke: black;
+}
+
+.label
+{
+	font-family: monospace;
+	font-size: 25px;
+	stroke: none;
+	text-anchor: middle;
+	fill: black;
+}
+
+.vertex_label
+{
+	font-family: monospace;
+	font-size: 25px;
+	font-weight: bold;
+	stroke: none;
+	text-anchor: middle;
+	fill: black;
 }]]></style>
 	<defs >
 		<g id="g_point" >
Add a comment to this file

Documents/Illumination/BarycentricTriangleEdge.svg

Old
Old image
New
New image
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 
 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" height="301px" width="301px" >
-	<style type="text/css" ><![CDATA[.vertex
-{
-	fill: black;
-	stroke: black;
-}
-
-.label
-{
-	font-family: monospace;
-	stroke-width: 1px;
-	stroke: black;
-	text-anchor: middle;
-	font-size: 25px;
-}
-
-.vertex_label
-{
-	font-family: monospace;
-	stroke-width: 1px;
-	font-weight: bold;
-	stroke: black;
-	text-anchor: middle;
-	font-size: 25px;
-}
-
-.baryPts
+	<style type="text/css" ><![CDATA[.baryPts
 {
 	stroke-opacity: 0.5;
 	stroke: violet;
 {
 	fill: none;
 	stroke: black;
+}
+
+.vertex
+{
+	fill: black;
+	stroke: black;
+}
+
+.label
+{
+	font-family: monospace;
+	font-size: 25px;
+	stroke: none;
+	text-anchor: middle;
+	fill: black;
+}
+
+.vertex_label
+{
+	font-family: monospace;
+	font-size: 25px;
+	font-weight: bold;
+	stroke: none;
+	text-anchor: middle;
+	fill: black;
 }]]></style>
 	<defs >
 		<g id="g_point" >

Documents/Illumination/GenBarycentricTriangle.lua

 	SvgWriter.Style():stroke("black"):fill("black"));
 	
 styleLib:AddStyle(nil, "label",
-	SvgWriter.Style():stroke("black"):stroke_width("1px"):font_size(textSize .. "px")
+	SvgWriter.Style():stroke("none"):fill("black"):font_size(textSize .. "px")
 		:font_family("monospace"):text_anchor("middle"));
 
 styleLib:AddStyle(nil, "vertex_label",
-	SvgWriter.Style():stroke("black"):stroke_width("1px"):font_size(textSize .. "px")
+	SvgWriter.Style():stroke("none"):fill("black"):font_size(textSize .. "px")
 		:font_family("monospace"):font_weight("bold"):text_anchor("middle"));
 
 local function Output(convertName, barycoords)

Documents/Positioning/CoordinateEquation.mathml

 <?xml version="1.0" encoding="utf-8"?>
 <math display="block" xmlns="http://www.w3.org/1998/Math/MathML">
 	<mrow>
+		<mi>X</mi>
 		<mfenced open="[" close="]" separators=",">
 			<mtable>
 				<mtr>
 				</mtr>
 			</mtable>
 		</mfenced>
-		<mi>X</mi>
 		<mo>+</mo>
+		<mi>Y</mi>
 		<mfenced open="[" close="]" separators=",">
 			<mtable>
 				<mtr>
 				</mtr>
 			</mtable>
 		</mfenced>
-		<mi>Y</mi>
 		<mo>+</mo>
+		<mi>Z</mi>
 		<mfenced open="[" close="]" separators=",">
 			<mtable>
 				<mtr>
 				</mtr>
 			</mtable>
 		</mfenced>
-		<mi>Z</mi>
 		<mo>+</mo>
 		<mfenced open="[" close="]" separators=",">
 			<mtable>
Add a comment to this file

Documents/Positioning/CoordinateEquation.svg

Old
Old image
New
New image
 <?xml version="1.0" encoding="utf-8"?>
-<svg:svg xmlns="http://www.w3.org/1998/Math/MathML" xmlns:svg="http://www.w3.org/2000/svg" height="45.104648pt" width="143.739984pt" xmlns:svgmath="http://www.grigoriev.ru/svgmath" viewBox="0 -26.536699 143.739984 45.104648"><svg:metadata><svgmath:metrics top="45.1046484375" axis="22.5523242187" baseline="18.5679492187" bottom="0.0"/></svg:metadata><svg:g transform="translate(0.000000, -3.984375)"><svg:text font-size="49.165585" transform="scale(0.244073, 1)" text-anchor="middle" y="11.739244" x="8.186262" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.191367, -14.425371)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.250977" font-family="Times New Roman" font-style="italic" fill="black">A</svg:text><svg:g transform="translate(7.916016, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.173682" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g></svg:g><svg:g transform="translate(0.000000, 1.852207)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.250977" font-family="Times New Roman" font-style="italic" fill="black">A</svg:text><svg:g transform="translate(7.916016, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.556416" font-family="Times New Roman" font-style="italic" fill="black">y</svg:text></svg:g></svg:g><svg:g transform="translate(0.426416, 19.868730)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.250977" font-family="Times New Roman" font-style="italic" fill="black">A</svg:text><svg:g transform="translate(7.916016, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="1.894951" font-family="Times New Roman" font-style="italic" fill="black">z</svg:text></svg:g></svg:g></svg:g><svg:g transform="translate(16.359316, 0.000000)"><svg:text font-size="49.172030" transform="scale(0.244041, 1)" text-anchor="middle" y="11.740783" x="8.187335" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g><svg:g transform="translate(20.355410, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.467773" font-family="Times New Roman" font-style="italic" fill="black">X</svg:text></svg:g><svg:g transform="translate(32.713480, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">+</svg:text></svg:g><svg:g transform="translate(42.147723, -3.984375)"><svg:text font-size="48.566230" transform="scale(0.247085, 1)" text-anchor="middle" y="11.596136" x="8.086467" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.191367, -14.334551)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.940430" font-family="Times New Roman" font-style="italic" fill="black">B</svg:text><svg:g transform="translate(7.605469, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.173682" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g></svg:g><svg:g transform="translate(0.000000, 1.761387)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.940430" font-family="Times New Roman" font-style="italic" fill="black">B</svg:text><svg:g transform="translate(7.605469, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.556416" font-family="Times New Roman" font-style="italic" fill="black">y</svg:text></svg:g></svg:g><svg:g transform="translate(0.426416, 19.596270)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.940430" font-family="Times New Roman" font-style="italic" fill="black">B</svg:text><svg:g transform="translate(7.605469, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="1.894951" font-family="Times New Roman" font-style="italic" fill="black">z</svg:text></svg:g></svg:g></svg:g><svg:g transform="translate(16.048770, 0.000000)"><svg:text font-size="48.572675" transform="scale(0.247052, 1)" text-anchor="middle" y="11.597675" x="8.087540" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g><svg:g transform="translate(62.192586, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.336914" font-family="Times New Roman" font-style="italic" fill="black">Y</svg:text></svg:g><svg:g transform="translate(72.863156, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">+</svg:text></svg:g><svg:g transform="translate(82.297398, -3.984375)"><svg:text font-size="49.165585" transform="scale(0.244073, 1)" text-anchor="middle" y="11.739244" x="8.186262" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.191367, -14.425371)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.001953" font-family="Times New Roman" font-style="italic" fill="black">C</svg:text><svg:g transform="translate(8.443359, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.173682" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g></svg:g><svg:g transform="translate(0.000000, 1.852207)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.001953" font-family="Times New Roman" font-style="italic" fill="black">C</svg:text><svg:g transform="translate(8.443359, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.556416" font-family="Times New Roman" font-style="italic" fill="black">y</svg:text></svg:g></svg:g><svg:g transform="translate(0.426416, 19.868730)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.001953" font-family="Times New Roman" font-style="italic" fill="black">C</svg:text><svg:g transform="translate(8.443359, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="1.894951" font-family="Times New Roman" font-style="italic" fill="black">z</svg:text></svg:g></svg:g></svg:g><svg:g transform="translate(16.886660, 0.000000)"><svg:text font-size="49.172030" transform="scale(0.244041, 1)" text-anchor="middle" y="11.740783" x="8.187335" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g><svg:g transform="translate(103.180152, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.360352" font-family="Times New Roman" font-style="italic" fill="black">Z</svg:text></svg:g><svg:g transform="translate(113.200332, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">+</svg:text></svg:g><svg:g transform="translate(122.634574, -3.984375)"><svg:text font-size="49.165585" transform="scale(0.244073, 1)" text-anchor="middle" y="11.739244" x="8.186262" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.191367, -14.425371)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.333008" font-family="Times New Roman" font-style="italic" fill="black">O</svg:text><svg:g transform="translate(8.666016, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.173682" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g></svg:g><svg:g transform="translate(0.000000, 1.852207)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.333008" font-family="Times New Roman" font-style="italic" fill="black">O</svg:text><svg:g transform="translate(8.666016, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.556416" font-family="Times New Roman" font-style="italic" fill="black">y</svg:text></svg:g></svg:g><svg:g transform="translate(0.426416, 19.868730)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.333008" font-family="Times New Roman" font-style="italic" fill="black">O</svg:text><svg:g transform="translate(8.666016, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="1.894951" font-family="Times New Roman" font-style="italic" fill="black">z</svg:text></svg:g></svg:g></svg:g><svg:g transform="translate(17.109316, 0.000000)"><svg:text font-size="49.172030" transform="scale(0.244041, 1)" text-anchor="middle" y="11.740783" x="8.187335" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g></svg:svg>
+<svg:svg xmlns="http://www.w3.org/1998/Math/MathML" xmlns:svg="http://www.w3.org/2000/svg" height="45.104648pt" width="143.739984pt" xmlns:svgmath="http://www.grigoriev.ru/svgmath" viewBox="0 -26.536699 143.739984 45.104648"><svg:metadata><svgmath:metrics top="45.1046484375" axis="22.5523242187" baseline="18.5679492187" bottom="0.0"/></svg:metadata><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.467773" font-family="Times New Roman" font-style="italic" fill="black">X</svg:text><svg:g transform="translate(9.691406, -3.984375)"><svg:text font-size="49.165585" transform="scale(0.244073, 1)" text-anchor="middle" y="11.739244" x="8.186262" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.191367, -14.425371)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.250977" font-family="Times New Roman" font-style="italic" fill="black">A</svg:text><svg:g transform="translate(7.916016, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.173682" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g></svg:g><svg:g transform="translate(0.000000, 1.852207)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.250977" font-family="Times New Roman" font-style="italic" fill="black">A</svg:text><svg:g transform="translate(7.916016, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.556416" font-family="Times New Roman" font-style="italic" fill="black">y</svg:text></svg:g></svg:g><svg:g transform="translate(0.426416, 19.868730)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.250977" font-family="Times New Roman" font-style="italic" fill="black">A</svg:text><svg:g transform="translate(7.916016, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="1.894951" font-family="Times New Roman" font-style="italic" fill="black">z</svg:text></svg:g></svg:g></svg:g><svg:g transform="translate(16.359316, 0.000000)"><svg:text font-size="49.172030" transform="scale(0.244041, 1)" text-anchor="middle" y="11.740783" x="8.187335" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g><svg:g transform="translate(32.713480, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">+</svg:text></svg:g><svg:g transform="translate(42.147723, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.336914" font-family="Times New Roman" font-style="italic" fill="black">Y</svg:text></svg:g><svg:g transform="translate(50.151629, -3.984375)"><svg:text font-size="48.566230" transform="scale(0.247085, 1)" text-anchor="middle" y="11.596136" x="8.086467" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.191367, -14.334551)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.940430" font-family="Times New Roman" font-style="italic" fill="black">B</svg:text><svg:g transform="translate(7.605469, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.173682" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g></svg:g><svg:g transform="translate(0.000000, 1.761387)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.940430" font-family="Times New Roman" font-style="italic" fill="black">B</svg:text><svg:g transform="translate(7.605469, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.556416" font-family="Times New Roman" font-style="italic" fill="black">y</svg:text></svg:g></svg:g><svg:g transform="translate(0.426416, 19.596270)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.940430" font-family="Times New Roman" font-style="italic" fill="black">B</svg:text><svg:g transform="translate(7.605469, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="1.894951" font-family="Times New Roman" font-style="italic" fill="black">z</svg:text></svg:g></svg:g></svg:g><svg:g transform="translate(16.048770, 0.000000)"><svg:text font-size="48.572675" transform="scale(0.247052, 1)" text-anchor="middle" y="11.597675" x="8.087540" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g><svg:g transform="translate(72.863156, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">+</svg:text></svg:g><svg:g transform="translate(82.297398, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.360352" font-family="Times New Roman" font-style="italic" fill="black">Z</svg:text></svg:g><svg:g transform="translate(89.650914, -3.984375)"><svg:text font-size="49.165585" transform="scale(0.244073, 1)" text-anchor="middle" y="11.739244" x="8.186262" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.191367, -14.425371)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.001953" font-family="Times New Roman" font-style="italic" fill="black">C</svg:text><svg:g transform="translate(8.443359, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.173682" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g></svg:g><svg:g transform="translate(0.000000, 1.852207)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.001953" font-family="Times New Roman" font-style="italic" fill="black">C</svg:text><svg:g transform="translate(8.443359, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.556416" font-family="Times New Roman" font-style="italic" fill="black">y</svg:text></svg:g></svg:g><svg:g transform="translate(0.426416, 19.868730)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.001953" font-family="Times New Roman" font-style="italic" fill="black">C</svg:text><svg:g transform="translate(8.443359, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="1.894951" font-family="Times New Roman" font-style="italic" fill="black">z</svg:text></svg:g></svg:g></svg:g><svg:g transform="translate(16.886660, 0.000000)"><svg:text font-size="49.172030" transform="scale(0.244041, 1)" text-anchor="middle" y="11.740783" x="8.187335" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g><svg:g transform="translate(113.200332, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">+</svg:text></svg:g><svg:g transform="translate(122.634574, -3.984375)"><svg:text font-size="49.165585" transform="scale(0.244073, 1)" text-anchor="middle" y="11.739244" x="8.186262" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.191367, -14.425371)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.333008" font-family="Times New Roman" font-style="italic" fill="black">O</svg:text><svg:g transform="translate(8.666016, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.173682" font-family="Times New Roman" font-style="italic" fill="black">x</svg:text></svg:g></svg:g><svg:g transform="translate(0.000000, 1.852207)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.333008" font-family="Times New Roman" font-style="italic" fill="black">O</svg:text><svg:g transform="translate(8.666016, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="2.556416" font-family="Times New Roman" font-style="italic" fill="black">y</svg:text></svg:g></svg:g><svg:g transform="translate(0.426416, 19.868730)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="4.333008" font-family="Times New Roman" font-style="italic" fill="black">O</svg:text><svg:g transform="translate(8.666016, 2.683594)"><svg:text font-size="8.520000" text-anchor="middle" y="0.000000" x="1.894951" font-family="Times New Roman" font-style="italic" fill="black">z</svg:text></svg:g></svg:g></svg:g><svg:g transform="translate(17.109316, 0.000000)"><svg:text font-size="49.172030" transform="scale(0.244041, 1)" text-anchor="middle" y="11.740783" x="8.187335" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g></svg:svg>

Documents/Positioning/GenInterpolateDirection.lua

+require "SvgWriter"
+require "vmath"
+require "Viewport"
+require "SubImage"
+require "_utils"
+
+local subImageSize = 300;
+
+local subImages = SubImage.SubImage(1, 1, subImageSize, subImageSize, 50, 0);
+
+local coordSize = 2;
+
+local vp = Viewport.Viewport(subImages:SubSize(), {0, 0}, coordSize)
+local trans2 = Viewport.Transform2D()
+vp:SetTransform(trans2);
+
+local scaleFactor = 0.25;
+
+-- Styles
+local styleLib = SvgWriter.StyleLibrary();
+local pointSize = 9;
+
+styleLib:AddStyle(nil, "circle", SvgWriter.Style{stroke="black", fill="none"});
+styleLib:AddStyle(nil, "center", SvgWriter.Style{stroke="none", fill="black"});
+
+styleLib:AddStyle(nil, "short_path",
+	SvgWriter.Style{stroke="blue", stroke_width="8px", fill="none", stroke_opacity="0.3"});
+styleLib:AddStyle(nil, "long_path",
+	SvgWriter.Style{stroke="red", stroke_width="8px", fill="none", stroke_opacity="0.3"});
+	
+styleLib:AddStyle(nil, "vector",
+	SvgWriter.Style{stroke="black", stroke_width="2px", fill="none", marker_end=SvgWriter.uriLocalElement("arrow")});
+	
+styleLib:AddStyle(nil, "arrowhead",
+	SvgWriter.Style():stroke("none"):fill("black"));
+	
+styleLib:AddStyle(nil, "label",
+	SvgWriter.Style():stroke("none"):fill("black"):font_size("14pt")
+		:font_family("monospace"):text_anchor("middle"));
+
+--Circle
+local centerPt = vmath.vec2(0, 0);
+local radius = 0.8
+
+--Vectors
+local vectorAngles = {20, 140, 200}
+local vectorEndpts = {}
+
+for i, angle in ipairs(vectorAngles) do
+	local radAngle = math.rad(angle);
+	vectorEndpts[#vectorEndpts + 1] =
+		vmath.vec2(math.cos(radAngle), math.sin(radAngle)) * radius;
+end
+
+--Labels
+local labelLocs = {};
+
+for i, endPt in ipairs(vectorEndpts) do
+	labelLocs[#labelLocs + 1] = (endPt + centerPt) / 2.0;
+end
+
+local labelData =
+{
+	{"q1", vmath.vec2(0, 25)},
+	{"q2", vmath.vec2(17, -7)},
+	{"-q1", vmath.vec2(0, 25)},
+}
+
+--Transform
+centerPt = vp:Transform(centerPt);
+radius = vp:Length(radius);
+vectorEndpts = vp:Transform(vectorEndpts);
+labelLocs = vp:Transform(labelLocs);
+
+--Arcs
+local shortArc = SvgWriter.Path();
+shortArc:M(vectorEndpts[2]):A({radius, radius}, 0, 0, 0, vectorEndpts[3])
+
+local longArc = SvgWriter.Path();
+longArc:M(vectorEndpts[2]):A({radius, radius}, 0, 0, 1, vectorEndpts[1])
+
+local writer = SvgWriter.SvgWriter(ConstructSVGName(arg[0]), {(subImages:Size().x + 1) .."px", (subImages:Size().y + 1) .. "px"});
+	writer:StyleLibrary(styleLib);
+	writer:BeginDefinitions();
+		writer:BeginGroup(nil, "g_point");
+			writer:Circle(vmath.vec2(0, 0), pointRadius, {"vertex"});
+		writer:EndGroup();
+		WriteStandardArrowhead(writer, "arrow", {"arrowhead"})
+	writer:EndDefinitions();
+	
+	writer:Circle(centerPt, radius, {"circle"});
+	
+	for i, endPt in ipairs(vectorEndpts) do
+		writer:Line(centerPt, endPt, {"vector"});
+	end
+	
+	writer:Path(shortArc, {"short_path"});
+	writer:Path(longArc, {"long_path"});
+
+	writer:Circle(centerPt, 8, {"center"});
+	
+	for i, labelPos in ipairs(labelLocs) do
+		writer:Text(labelData[i][1], labelPos + labelData[i][2], {"label"});
+	end
+
+writer:Close();
Add a comment to this file

Documents/Positioning/InterpolateDirection.svg

Added
New image
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" height="301px" width="301px" >
+	<style type="text/css" ><![CDATA[.vector
+{
+	marker-end: url(#arrow);
+	stroke: black;
+	stroke-width: 2px;
+	fill: none;
+}
+
+.circle
+{
+	stroke: black;
+	fill: none;
+}
+
+.label
+{
+	font-family: monospace;
+	font-size: 14pt;
+	stroke: none;
+	text-anchor: middle;
+	fill: black;
+}
+
+.arrowhead
+{
+	fill: black;
+	stroke: none;
+}
+
+.center
+{
+	stroke: none;
+	fill: black;
+}
+
+.short_path
+{
+	stroke-opacity: 0.3;
+	stroke: blue;
+	stroke-width: 8px;
+	fill: none;
+}
+
+.long_path
+{
+	stroke-opacity: 0.3;
+	stroke: red;
+	stroke-width: 8px;
+	fill: none;
+}]]></style>
+	<defs >
+		<g id="g_point" >
+			<circle cy="0" cx="0" class="vertex" />
+		</g>
+		<marker markerWidth="10" markerHeight="8" refX="10" refY="4" markerUnits="userSpaceOnUse" orient="auto" id="arrow" >
+			<path d="M 10 4 L 0 0 L 0 8 Z" class="arrowhead" />
+		</marker>
+	</defs>
+	<circle r="120" cy="150" cx="150" class="circle" />
+	<line x2="262.76311449431" y2="108.95758280092" y1="150" x1="150" class="vector" />
+	<line x2="58.074666825723" y2="72.865486837615" y1="150" x1="150" class="vector" />
+	<line x2="37.236885505691" y2="191.04241719908" y1="150" x1="150" class="vector" />
+	<path d="M 58.074666825723 72.865486837615 A 120 120 0 0 0 37.236885505691 191.04241719908" class="short_path" />
+	<path d="M 58.074666825723 72.865486837615 A 120 120 0 0 1 262.76311449431 108.95758280092" class="long_path" />
+	<circle r="8" cy="150" cx="150" class="center" />
+	<text y="154.47879140046" x="206.38155724715" class="label" >q1</text>
+	<text y="104.43274341881" x="121.03733341286" class="label" >q2</text>
+	<text y="195.52120859954" x="93.618442752845" class="label" >-q1</text>
+</svg>

Documents/Positioning/TransformOrder.mathml

             <mtable>
               <mtr>
                 <mtd>
-                  <mn>3</mn>
+                  <mn>2</mn>
                 </mtd>
                 <mtd>
                   <mn>0</mn>
             <mtable>
               <mtr>
                 <mtd>
-                  <mn>3</mn>
+                  <mn>2</mn>
                 </mtd>
                 <mtd>
                   <mn>0</mn>
                   <mn>0</mn>
                 </mtd>
                 <mtd>
-                  <mn>6</mn>
+                  <mn>4</mn>
                 </mtd>
               </mtr>
               <mtr>
             <mtable>
               <mtr>
                 <mtd>
-                  <mn>3</mn>
+                  <mn>2</mn>
                 </mtd>
                 <mtd>
                   <mn>0</mn>
Add a comment to this file

Documents/Positioning/TransformOrder.svg

Old
Old image
New
New image
 <?xml version="1.0" encoding="utf-8"?>
-<svg:svg xmlns="http://www.w3.org/1998/Math/MathML" xmlns:svg="http://www.w3.org/2000/svg" height="212.578125pt" width="132.490891pt" xmlns:svgmath="http://www.grigoriev.ru/svgmath" viewBox="0 -110.273438 132.490891 212.578125"><svg:metadata><svgmath:metrics top="212.578125" axis="106.2890625" baseline="102.3046875" bottom="0.0"/></svg:metadata><svg:g transform="translate(0.000000, -3.984375)"><svg:g transform="translate(10.613609, -77.742188)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" font-style="italic" fill="black">S</svg:text></svg:g><svg:g transform="translate(37.331125, -81.726563)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">=</svg:text></svg:g><svg:g transform="translate(58.198703, -81.726563)"><svg:text font-size="53.587540" transform="scale(0.223933, 1)" text-anchor="middle" y="12.795072" x="8.922535" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.000000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">3</svg:text></svg:g><svg:g transform="translate(20.100000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(55.800000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(0.000000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(15.600000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="7.500000" font-family="Times New Roman" fill="black">0.5</svg:text></svg:g><svg:g transform="translate(40.200000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(55.800000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(0.000000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(20.100000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(55.800000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(0.000000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(20.100000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(55.800000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g></svg:g><svg:g transform="translate(65.796094, 0.000000)"><svg:text font-size="53.593985" transform="scale(0.223906, 1)" text-anchor="middle" y="12.796611" x="8.923608" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g><svg:g transform="translate(9.969078, -23.261719)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.336914" font-family="Times New Roman" font-style="italic" fill="black">T</svg:text></svg:g><svg:g transform="translate(37.331125, -27.246094)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">=</svg:text></svg:g><svg:g transform="translate(62.698703, -27.246094)"><svg:text font-size="53.561762" transform="scale(0.224040, 1)" text-anchor="middle" y="12.788917" x="8.918243" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.000000, -16.441406)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(15.600000, -16.441406)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(31.200000, -16.441406)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(46.800000, -16.441406)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">2</svg:text></svg:g><svg:g transform="translate(0.000000, -2.824219)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(15.600000, -2.824219)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(31.200000, -2.824219)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(46.800000, -2.824219)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(0.000000, 10.792969)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(15.600000, 10.792969)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(31.200000, 10.792969)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(46.800000, 10.792969)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(0.000000, 24.410156)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(15.600000, 24.410156)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(31.200000, 24.410156)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(46.800000, 24.410156)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g></svg:g><svg:g transform="translate(56.796094, 0.000000)"><svg:text font-size="53.568206" transform="scale(0.224013, 1)" text-anchor="middle" y="12.790455" x="8.919316" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g><svg:g transform="translate(0.000000, 31.218750)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" font-style="italic" fill="black">S</svg:text><svg:g transform="translate(9.837242, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">×</svg:text></svg:g><svg:g transform="translate(19.938156, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.336914" font-family="Times New Roman" font-style="italic" fill="black">T</svg:text></svg:g></svg:g><svg:g transform="translate(37.331125, 27.234375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">=</svg:text></svg:g><svg:g transform="translate(53.698703, 27.234375)"><svg:text font-size="53.587540" transform="scale(0.223933, 1)" text-anchor="middle" y="12.795072" x="8.922535" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.000000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">3</svg:text></svg:g><svg:g transform="translate(20.100000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(60.300000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">6</svg:text></svg:g><svg:g transform="translate(0.000000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(15.600000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="7.500000" font-family="Times New Roman" fill="black">0.5</svg:text></svg:g><svg:g transform="translate(40.200000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(55.800000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="7.500000" font-family="Times New Roman" fill="black">0.5</svg:text></svg:g><svg:g transform="translate(0.000000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(20.100000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(60.300000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(0.000000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(20.100000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(60.300000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g></svg:g><svg:g transform="translate(74.796094, 0.000000)"><svg:text font-size="53.593985" transform="scale(0.223906, 1)" text-anchor="middle" y="12.796611" x="8.923608" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g><svg:g transform="translate(0.000000, 85.710938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.336914" font-family="Times New Roman" font-style="italic" fill="black">T</svg:text><svg:g transform="translate(11.126305, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">×</svg:text></svg:g><svg:g transform="translate(21.227219, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" font-style="italic" fill="black">S</svg:text></svg:g></svg:g><svg:g transform="translate(37.331125, 81.726563)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">=</svg:text></svg:g><svg:g transform="translate(58.198703, 81.726563)"><svg:text font-size="53.587540" transform="scale(0.223933, 1)" text-anchor="middle" y="12.795072" x="8.922535" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.000000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">3</svg:text></svg:g><svg:g transform="translate(20.100000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(55.800000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">2</svg:text></svg:g><svg:g transform="translate(0.000000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(15.600000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="7.500000" font-family="Times New Roman" fill="black">0.5</svg:text></svg:g><svg:g transform="translate(40.200000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(55.800000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(0.000000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(20.100000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(55.800000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(0.000000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(20.100000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(55.800000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g></svg:g><svg:g transform="translate(65.796094, 0.000000)"><svg:text font-size="53.593985" transform="scale(0.223906, 1)" text-anchor="middle" y="12.796611" x="8.923608" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g></svg:g></svg:svg>
+<svg:svg xmlns="http://www.w3.org/1998/Math/MathML" xmlns:svg="http://www.w3.org/2000/svg" height="212.578125pt" width="132.490891pt" xmlns:svgmath="http://www.grigoriev.ru/svgmath" viewBox="0 -110.273438 132.490891 212.578125"><svg:metadata><svgmath:metrics top="212.578125" axis="106.2890625" baseline="102.3046875" bottom="0.0"/></svg:metadata><svg:g transform="translate(0.000000, -3.984375)"><svg:g transform="translate(10.613609, -77.742188)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" font-style="italic" fill="black">S</svg:text></svg:g><svg:g transform="translate(37.331125, -81.726563)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">=</svg:text></svg:g><svg:g transform="translate(58.198703, -81.726563)"><svg:text font-size="53.587540" transform="scale(0.223933, 1)" text-anchor="middle" y="12.795072" x="8.922535" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.000000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">2</svg:text></svg:g><svg:g transform="translate(20.100000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(55.800000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(0.000000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(15.600000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="7.500000" font-family="Times New Roman" fill="black">0.5</svg:text></svg:g><svg:g transform="translate(40.200000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(55.800000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(0.000000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(20.100000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(55.800000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(0.000000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(20.100000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(55.800000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g></svg:g><svg:g transform="translate(65.796094, 0.000000)"><svg:text font-size="53.593985" transform="scale(0.223906, 1)" text-anchor="middle" y="12.796611" x="8.923608" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g><svg:g transform="translate(9.969078, -23.261719)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.336914" font-family="Times New Roman" font-style="italic" fill="black">T</svg:text></svg:g><svg:g transform="translate(37.331125, -27.246094)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">=</svg:text></svg:g><svg:g transform="translate(62.698703, -27.246094)"><svg:text font-size="53.561762" transform="scale(0.224040, 1)" text-anchor="middle" y="12.788917" x="8.918243" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.000000, -16.441406)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(15.600000, -16.441406)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(31.200000, -16.441406)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(46.800000, -16.441406)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">2</svg:text></svg:g><svg:g transform="translate(0.000000, -2.824219)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(15.600000, -2.824219)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(31.200000, -2.824219)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(46.800000, -2.824219)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(0.000000, 10.792969)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(15.600000, 10.792969)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(31.200000, 10.792969)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(46.800000, 10.792969)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(0.000000, 24.410156)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(15.600000, 24.410156)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(31.200000, 24.410156)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(46.800000, 24.410156)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g></svg:g><svg:g transform="translate(56.796094, 0.000000)"><svg:text font-size="53.568206" transform="scale(0.224013, 1)" text-anchor="middle" y="12.790455" x="8.919316" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g><svg:g transform="translate(0.000000, 31.218750)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" font-style="italic" fill="black">S</svg:text><svg:g transform="translate(9.837242, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">×</svg:text></svg:g><svg:g transform="translate(19.938156, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.336914" font-family="Times New Roman" font-style="italic" fill="black">T</svg:text></svg:g></svg:g><svg:g transform="translate(37.331125, 27.234375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">=</svg:text></svg:g><svg:g transform="translate(53.698703, 27.234375)"><svg:text font-size="53.587540" transform="scale(0.223933, 1)" text-anchor="middle" y="12.795072" x="8.922535" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.000000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">2</svg:text></svg:g><svg:g transform="translate(20.100000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(60.300000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">4</svg:text></svg:g><svg:g transform="translate(0.000000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(15.600000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="7.500000" font-family="Times New Roman" fill="black">0.5</svg:text></svg:g><svg:g transform="translate(40.200000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(55.800000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="7.500000" font-family="Times New Roman" fill="black">0.5</svg:text></svg:g><svg:g transform="translate(0.000000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(20.100000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(60.300000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(0.000000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(20.100000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(60.300000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g></svg:g><svg:g transform="translate(74.796094, 0.000000)"><svg:text font-size="53.593985" transform="scale(0.223906, 1)" text-anchor="middle" y="12.796611" x="8.923608" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g><svg:g transform="translate(0.000000, 85.710938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.336914" font-family="Times New Roman" font-style="italic" fill="black">T</svg:text><svg:g transform="translate(11.126305, -3.984375)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">×</svg:text></svg:g><svg:g transform="translate(21.227219, 0.000000)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" font-style="italic" fill="black">S</svg:text></svg:g></svg:g><svg:g transform="translate(37.331125, 81.726563)"><svg:text font-size="12.000000" text-anchor="middle" y="3.984375" x="3.383789" font-family="Times New Roman" fill="black">=</svg:text></svg:g><svg:g transform="translate(58.198703, 81.726563)"><svg:text font-size="53.587540" transform="scale(0.223933, 1)" text-anchor="middle" y="12.795072" x="8.922535" font-family="Times New Roman" fill="black">[</svg:text><svg:g transform="translate(3.996094, 0.000000)"><svg:g transform="translate(0.000000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">2</svg:text></svg:g><svg:g transform="translate(20.100000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(55.800000, -16.453125)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">2</svg:text></svg:g><svg:g transform="translate(0.000000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(15.600000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="7.500000" font-family="Times New Roman" fill="black">0.5</svg:text></svg:g><svg:g transform="translate(40.200000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(55.800000, -2.835938)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(0.000000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(20.100000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g><svg:g transform="translate(55.800000, 10.804688)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(0.000000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(20.100000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(40.200000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">0</svg:text></svg:g><svg:g transform="translate(55.800000, 24.421875)"><svg:text font-size="12.000000" text-anchor="middle" y="0.000000" x="3.000000" font-family="Times New Roman" fill="black">1</svg:text></svg:g></svg:g><svg:g transform="translate(65.796094, 0.000000)"><svg:text font-size="53.593985" transform="scale(0.223906, 1)" text-anchor="middle" y="12.796611" x="8.923608" font-family="Times New Roman" fill="black">]</svg:text></svg:g></svg:g></svg:g></svg:svg>

Documents/Positioning/Tutorial 08.xml

                 does not affect its orientation.</para>
             <para>While the two quaternions represent the same orientation, they aren't the same as
                 far as interpolation is concerned. Consider a two-dimensional case:</para>
-            <!--TODO: Picture of a vector q1, a vector q2, and -q1. The angle between -q1 and q2 should be less than 90 degrees.-->
+            <figure>
+                <title>Interpolation Directions</title>
+                <mediaobject>
+                    <imageobject>
+                        <imagedata fileref="InterpolateDirection.svg" format="SVG"/>
+                    </imageobject>
+                </mediaobject>
+            </figure>
             <para>If the angle between the two quaternions is greater than 90°, then the
                 interpolation between them will take the <quote>long path</quote> between the two
                 orientations. Which is what we see in the <keycap>Q</keycap> to <keycap>E</keycap>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.