Matrix Demonstration of Linear Transformations
2020-09-10 02:07
This example visually demonstrates various linear transformations by modifying the elements of a 2x2 matrix. Using GeoGebra's ApplyMatrix command, users can observe how matrices act on geometric objects in the plane, providing an intuitive understanding of the relationship between matrix multiplication and geometric transformations in linear algebra. Ideal for teaching and learning linear algebra
Loading the GeoGebra board and drawing, please wait…
<?xml version="1.0" encoding="utf-8"?>
<geogebra format="4.2" version="4.2.17.0" id="e22332cf-a955-4742-b70e-a62561f09473" xsi:noNamespaceSchemaLocation="http://www.geogebra.org/ggb.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<gui>
<window width="1366" height="738" />
<perspectives>
<perspective id="tmp">
<panes>
<pane location="" divider="0.14641288433382138" orientation="1" />
</panes>
<views>
<view id="4097" visible="false" inframe="true" stylebar="true" location="1,1,1" size="400" window="483,98,813,477" />
<view id="4" toolbar="0 59 || 2020 , 2021 , 2022 , 66 || 2001 , 2003 , 2002 , 2004 , 2005 || 2040 , 2041 , 2042 , 2044 , 2043" visible="false" inframe="false" stylebar="false" location="1,1" size="300" window="100,100,600,400" />
<view id="8" toolbar="1001 | 1002 | 1003 || 1005 | 1004 || 1006 | 1007 | 1010 | 1011 || 1008 1009 || 6" visible="false" inframe="false" stylebar="false" location="1,3" size="300" window="100,100,600,400" />
<view id="1" visible="true" inframe="false" stylebar="true" location="1" size="1134" window="100,100,600,400" />
<view id="2" visible="true" inframe="false" stylebar="false" location="3" size="200" window="100,100,250,400" />
<view id="16" visible="false" inframe="false" stylebar="false" location="1" size="150" window="50,50,500,500" />
<view id="32" visible="false" inframe="false" stylebar="true" location="1" size="150" window="50,50,500,500" />
<view id="64" visible="false" inframe="true" stylebar="true" location="1" size="150" window="50,50,500,500" />
<view id="70" toolbar="0 || 2020 || 2021 || 2022" visible="false" inframe="true" stylebar="true" location="1" size="150" window="50,50,500,500" />
</views>
<toolbar show="true" items="0 39 59 | 1 501 67 , 5 19 , 72 | 2 15 45 , 18 65 , 7 37 | 4 3 8 9 , 13 44 , 58 , 47 | 16 51 64 , 70 | 10 34 53 11 , 24 20 22 , 21 23 | 55 56 57 , 12 | 36 46 , 38 49 50 , 71 | 30 29 54 32 31 33 | 17 26 62 73 , 14 66 68 | 25 52 60 61 | 40 41 42 , 27 28 35 , 6" position="1" help="false" />
<input show="true" cmd="true" top="false" />
<dockBar show="true" east="true" />
</perspective>
</perspectives>
<labelingStyle val="3"/>
<font size="12"/>
<graphicsSettings javaLatexFonts="false"/>
</gui>
<euclidianView>
<size width="1134" height="554"/>
<coordSystem xZero="379.11908396236544" yZero="310.6063992706694" scale="0.3453943269808169" yscale="0.3453943269808169"/>
<evSettings axes="true" grid="true" gridIsBold="false" pointCapturing="3" rightAngleStyle="1" checkboxSize="13" gridType="0"/>
<bgColor r="255" g="255" b="255"/>
<axesColor r="0" g="0" b="0"/>
<gridColor r="192" g="192" b="192"/>
<lineStyle axes="3" grid="0"/>
<axis id="0" show="true" label="" unitLabel="" tickStyle="1" showNumbers="true"/>
<axis id="1" show="true" label="" unitLabel="" tickStyle="1" showNumbers="true"/>
</euclidianView>
<kernel>
<continuous val="false"/>
<usePathAndRegionParameters val="true"/>
<decimals val="2"/>
<angleUnit val="degree"/>
<algebraStyle val="0"/>
<coordStyle val="0"/>
<angleFromInvTrig val="false"/>
<startAnimation val="true"/>
</kernel>
<scripting language="en" blocked="false" disabled="false"/>
<construction title="Linear Transformations" author="" date="10 February 2013">
<element type="numeric" label="d">
<value val="1.0"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="204" alpha="0.1"/>
<layer val="0"/>
<labelMode val="1"/>
<slider min="-3" max="3" absoluteScreenLocation="true" width="100.0" x="919.0" y="200.0" fixed="false" horizontal="true"/>
<lineStyle thickness="13" type="0" typeHidden="1"/>
<animation step="0.1" speed="animate" type="0" playing="true"/>
</element>
<element type="numeric" label="c">
<value val="0.0"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="204" alpha="0.1"/>
<layer val="0"/>
<labelMode val="1"/>
<slider min="-3" max="3" absoluteScreenLocation="true" width="100.0" x="789.0" y="201.0" fixed="false" horizontal="true"/>
<lineStyle thickness="13" type="0" typeHidden="1"/>
<animation step="0.1" speed="animate" type="0" playing="true"/>
</element>
<element type="numeric" label="b">
<value val="0.0"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="204" alpha="0.1"/>
<layer val="0"/>
<labelMode val="1"/>
<slider min="-3" max="3" absoluteScreenLocation="true" width="100.0" x="919.0" y="150.0" fixed="false" horizontal="true"/>
<lineStyle thickness="13" type="0" typeHidden="1"/>
<animation step="0.1" speed="animate" type="0" playing="true"/>
</element>
<element type="numeric" label="a">
<value val="1.0"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="204" alpha="0.1"/>
<layer val="0"/>
<labelMode val="1"/>
<slider min="-3" max="3" absoluteScreenLocation="true" width="100.0" x="788.0" y="152.0" fixed="false" horizontal="true"/>
<lineStyle thickness="13" type="0" typeHidden="1"/>
<animation step="0.1" speed="animate" type="0" playing="true"/>
</element>
<expression label="M" exp="{{a, b}, {c, d}}" />
<element type="list" label="M">
<show object="false" label="false"/>
<objColor r="0" g="100" b="0" alpha="0.1"/>
<layer val="0"/>
<labelMode val="0"/>
<lineStyle thickness="2" type="0" typeHidden="1"/>
<pointSize val="3"/>
<pointStyle val="-1"/>
</element>
<element type="numeric" label="animate">
<value val="0.0"/>
<show object="true" label="true"/>
<objColor r="220" g="20" b="60" alpha="0.1"/>
<layer val="0"/>
<labelMode val="1"/>
<slider min="0" max="2" absoluteScreenLocation="true" width="29.0" x="680.0" y="185.0" fixed="true" horizontal="true"/>
<lineStyle thickness="13" type="0" typeHidden="1"/>
<animation step="1" speed="0" type="0" playing="false"/>
</element>
<element type="button" label="button1">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="672" y="203"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="animate=1"/>
<caption val="On"/>
</element>
<element type="button" label="button2">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="712" y="204"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="animate=0"/>
<caption val="Off"/>
</element>
<element type="button" label="button3">
<show object="true" label="true"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="683" y="238"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
<auxiliary val="true"/>
<ggbscript val="a=1 b=0 c=0 d=1"/>
<caption val="Reset"/>
</element>
<expression label="text2" exp=""M=" + (LaTeX[M]) + """ />
<element type="text" label="text2">
<show object="true" label="false"/>
<objColor r="0" g="0" b="0" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<fixed val="true"/>
<isLaTeX val="true"/>
<font serif="true" sizeM="2.0" size="12" style="0"/>
<absoluteScreenLocation x="755" y="29"/>
</element>
<element type="image" label="pic1">
<file name="d45b14eee4fdf642013e5f4f5012f9e2\Holbein-ambassadors.jpg"/>
<inBackground val="false"/>
<startPoint number="0" exp="C"/>
<startPoint number="1" exp="D"/>
<show object="true" label="false"/>
<condition showObject="e"/>
<objColor r="0" g="0" b="0" alpha="1.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
</element>
<command name="ApplyMatrix">
<input a0="M" a1="pic1"/>
<output a0="pic1'"/>
</command>
<element type="image" label="pic1'">
<file name="d45b14eee4fdf642013e5f4f5012f9e2\Holbein-ambassadors.jpg"/>
<inBackground val="false"/>
<startPoint number="0" x="0.0" y="0.0" z="1.0"/>
<startPoint number="1" x="200.0" y="0.0" z="1.0"/>
<startPoint number="2" x="0.0" y="197.23247232472326" z="1.0"/>
<show object="true" label="false"/>
<condition showObject="e"/>
<objColor r="0" g="0" b="0" alpha="1.0"/>
<layer val="0"/>
<labelMode val="0"/>
</element>
<element type="boolean" label="e">
<value val="false"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="204" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="832" y="276"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
<caption val="Holbein"/>
</element>
<element type="point" label="C">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="0.0" y="0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<element type="point" label="D">
<show object="true" label="false"/>
<objColor r="0" g="0" b="255" alpha="0.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="1" playing="false"/>
<coords x="200.0" y="0.0" z="1.0"/>
<pointSize val="3"/>
<pointStyle val="0"/>
</element>
<element type="image" label="pic2">
<file name="f839b54b46b5435d0f90ae960a002d4a\mona.jpg"/>
<inBackground val="false"/>
<startPoint number="0" exp="C"/>
<startPoint number="1" exp="D"/>
<show object="true" label="false"/>
<condition showObject="f"/>
<objColor r="0" g="0" b="0" alpha="1.0"/>
<layer val="0"/>
<labelMode val="0"/>
<animation step="1" speed="1" type="0" playing="false"/>
</element>
<command name="ApplyMatrix">
<input a0="M" a1="pic2"/>
<output a0="pic2'"/>
</command>
<element type="image" label="pic2'">
<file name="f839b54b46b5435d0f90ae960a002d4a\mona.jpg"/>
<inBackground val="false"/>
<startPoint number="0" x="0.0" y="0.0" z="1.0"/>
<startPoint number="1" x="200.0" y="0.0" z="1.0"/>
<startPoint number="2" x="0.0" y="249.75124378109453" z="1.0"/>
<show object="true" label="false"/>
<condition showObject="f"/>
<objColor r="0" g="0" b="0" alpha="1.0"/>
<layer val="0"/>
<labelMode val="0"/>
</element>
<element type="boolean" label="f">
<value val="true"/>
<show object="true" label="true"/>
<objColor r="0" g="0" b="204" alpha="0.0"/>
<layer val="0"/>
<labelOffset x="738" y="275"/>
<labelMode val="0"/>
<checkbox fixed="true"/>
<caption val="Mona"/>
</element>
</construction>
</geogebra>