<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://commons.oreilly.com/wiki/skins/common/feed.css?97"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>SVG Essentials/Transforming the Coordinate System - Revision history</title>
		<link>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Transforming_the_Coordinate_System&amp;action=history</link>
		<description>Revision history for this page on the wiki</description>
		<language>en</language>
		<generator>MediaWiki 1.11.0</generator>
		<lastBuildDate>Tue, 18 Jun 2013 05:54:14 GMT</lastBuildDate>
		<item>
			<title>Docbook2Wiki: Initial conversion from Docbook</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Transforming_the_Coordinate_System&amp;diff=7371&amp;oldid=prev</link>
			<description>&lt;p&gt;Initial conversion from Docbook&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 13:40, 7 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</description>
			<pubDate>Fri, 07 Mar 2008 13:40:50 GMT</pubDate>			<dc:creator>Docbook2Wiki</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:SVG_Essentials/Transforming_the_Coordinate_System</comments>		</item>
		<item>
			<title>Docbook2Wiki: Initial conversion from Docbook</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Transforming_the_Coordinate_System&amp;diff=6036&amp;oldid=prev</link>
			<description>&lt;p&gt;Initial conversion from Docbook&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 12:51, 7 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</description>
			<pubDate>Fri, 07 Mar 2008 12:51:41 GMT</pubDate>			<dc:creator>Docbook2Wiki</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:SVG_Essentials/Transforming_the_Coordinate_System</comments>		</item>
		<item>
			<title>Evanlenz: 1 revision(s)</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Transforming_the_Coordinate_System&amp;diff=3702&amp;oldid=prev</link>
			<description>&lt;p&gt;1 revision(s)&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 23:40, 6 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</description>
			<pubDate>Thu, 06 Mar 2008 23:40:33 GMT</pubDate>			<dc:creator>Evanlenz</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:SVG_Essentials/Transforming_the_Coordinate_System</comments>		</item>
		<item>
			<title>Docbook2Wiki: Initial conversion from Docbook</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Transforming_the_Coordinate_System&amp;diff=3701&amp;oldid=prev</link>
			<description>&lt;p&gt;Initial conversion from Docbook&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 23:33, 6 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</description>
			<pubDate>Thu, 06 Mar 2008 23:33:32 GMT</pubDate>			<dc:creator>Docbook2Wiki</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:SVG_Essentials/Transforming_the_Coordinate_System</comments>		</item>
		<item>
			<title>Evanlenz: 1 revision(s)</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Transforming_the_Coordinate_System&amp;diff=3243&amp;oldid=prev</link>
			<description>&lt;p&gt;1 revision(s)&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:52, 6 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</description>
			<pubDate>Thu, 06 Mar 2008 22:52:41 GMT</pubDate>			<dc:creator>Evanlenz</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:SVG_Essentials/Transforming_the_Coordinate_System</comments>		</item>
		<item>
			<title>Docbook2Wiki: Initial conversion from Docbook</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Transforming_the_Coordinate_System&amp;diff=3242&amp;oldid=prev</link>
			<description>&lt;p&gt;Initial conversion from Docbook&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:38, 6 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</description>
			<pubDate>Thu, 06 Mar 2008 22:38:57 GMT</pubDate>			<dc:creator>Docbook2Wiki</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:SVG_Essentials/Transforming_the_Coordinate_System</comments>		</item>
		<item>
			<title>Evanlenz: 1 revision(s)</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Transforming_the_Coordinate_System&amp;diff=2657&amp;oldid=prev</link>
			<description>&lt;p&gt;1 revision(s)&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:22, 6 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</description>
			<pubDate>Thu, 06 Mar 2008 22:22:02 GMT</pubDate>			<dc:creator>Evanlenz</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:SVG_Essentials/Transforming_the_Coordinate_System</comments>		</item>
		<item>
			<title>Docbook2Wiki: Initial conversion from Docbook</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Transforming_the_Coordinate_System&amp;diff=2656&amp;oldid=prev</link>
			<description>&lt;p&gt;Initial conversion from Docbook&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:21, 6 March 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 21:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 21:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-1. Result of moving with use'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-1. Result of moving with use'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt70&lt;/del&gt;.png|Result of moving with use]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt70&lt;/ins&gt;.png|Result of moving with use]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 43:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 43:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-2. How moving appears to work (but really doesn't)'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-2. How moving appears to work (but really doesn't)'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt71&lt;/del&gt;.png|How moving appears to work (but really doesn't)]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt71&lt;/ins&gt;.png|How moving appears to work (but really doesn't)]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 51:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 51:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-3. How moving with translate really works'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-3. How moving with translate really works'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt72&lt;/del&gt;.png|How moving with translate really works]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt72&lt;/ins&gt;.png|How moving with translate really works]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 88:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 88:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-4. Result of using scale transformation'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-4. Result of using scale transformation'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt73&lt;/del&gt;.png|Result of using scale transformation]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt73&lt;/ins&gt;.png|Result of using scale transformation]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 96:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 96:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-5. How the scale transformation works'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-5. How the scale transformation works'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt74&lt;/del&gt;.png|How the scale transformation works]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt74&lt;/ins&gt;.png|How the scale transformation works]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 122:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 122:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-6. Result of using non-uniform scale transformation'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-6. Result of using non-uniform scale transformation'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt75&lt;/del&gt;.png|Result of using non-uniform scale transformation]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt75&lt;/ins&gt;.png|Result of using non-uniform scale transformation]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 158:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 158:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-7. Result of transforming a single graphic'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-7. Result of transforming a single graphic'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt78&lt;/del&gt;.png|Result of transforming a single graphic]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt78&lt;/ins&gt;.png|Result of transforming a single graphic]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 196:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 196:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-8. Result of translate followed by scale'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-8. Result of translate followed by scale'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt82&lt;/del&gt;.png|Result of translate&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt82&lt;/ins&gt;.png|Result of translate&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;followed by scale]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;followed by scale]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 205:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 205:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-9. How translate followed by scale works'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-9. How translate followed by scale works'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt83&lt;/del&gt;.png|How translate&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt83&lt;/ins&gt;.png|How translate&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;followed by scale works]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;followed by scale works]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 235:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 235:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-10. Result of scale followed by translate'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-10. Result of scale followed by translate'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt84&lt;/del&gt;.png|Result of scale&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt84&lt;/ins&gt;.png|Result of scale&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;followed by translate]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;followed by translate]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 244:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 244:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-11. How scale followed by translate works'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-11. How scale followed by translate works'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt85&lt;/del&gt;.png|How scale&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt85&lt;/ins&gt;.png|How scale&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;followed by translate works]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;followed by translate works]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 255:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 255:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-12. Trapezoid drawn with Cartesian coordinates'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-12. Trapezoid drawn with Cartesian coordinates'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt86&lt;/del&gt;.png|Trapezoid drawn with Cartesian coordinates]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt86&lt;/ins&gt;.png|Trapezoid drawn with Cartesian coordinates]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 277:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 277:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-13. Result of using original Cartesian coordinates'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-13. Result of using original Cartesian coordinates'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt87&lt;/del&gt;.png|Result of using original Cartesian coordinates]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt87&lt;/ins&gt;.png|Result of using original Cartesian coordinates]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 323:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 323:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-14. Transformed Cartesian coordinates'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-14. Transformed Cartesian coordinates'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt90&lt;/del&gt;.png|Transformed Cartesian coordinates]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt90&lt;/ins&gt;.png|Transformed Cartesian coordinates]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 333:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 333:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-15. Default measurement of angles'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-15. Default measurement of angles'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt91&lt;/del&gt;.png|Default measurement of angles]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt91&lt;/ins&gt;.png|Default measurement of angles]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 353:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 353:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-16. Result of rotation around the origin'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-16. Result of rotation around the origin'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt92&lt;/del&gt;.png|Result of rotation around the origin]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt92&lt;/ins&gt;.png|Result of rotation around the origin]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 359:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 359:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-17. How rotation around the origin works'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-17. How rotation around the origin works'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt93&lt;/del&gt;.png|How rotation around the origin works]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt93&lt;/ins&gt;.png|How rotation around the origin works]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 389:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 389:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-18. Result of rotation around a center point'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-18. Result of rotation around a center point'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt94&lt;/del&gt;.png|Result of rotation around a center point]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt94&lt;/ins&gt;.png|Result of rotation around a center point]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 423:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 423:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-19. Result of scaling around a center point'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-19. Result of scaling around a center point'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt96&lt;/del&gt;.png|Result of scaling around a center point]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt96&lt;/ins&gt;.png|Result of scaling around a center point]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 474:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 474:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-20. Result of skewX and skewY transformations'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;'''Figure 5-20. Result of skewX and skewY transformations'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials/I_5_tt97&lt;/del&gt;.png|Result of skewX and&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Image:SVG &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Essentials_I_5_tt97&lt;/ins&gt;.png|Result of skewX and&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;   skewY transformations]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;   skewY transformations]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:2419:newid:2656 --&gt;
&lt;/table&gt;</description>
			<pubDate>Thu, 06 Mar 2008 22:21:01 GMT</pubDate>			<dc:creator>Docbook2Wiki</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:SVG_Essentials/Transforming_the_Coordinate_System</comments>		</item>
		<item>
			<title>Docbook2Wiki: Initial conversion from Docbook</title>
			<link>http://commons.oreilly.com/wiki/index.php?title=SVG_Essentials/Transforming_the_Coordinate_System&amp;diff=2419&amp;oldid=prev</link>
			<description>&lt;p&gt;Initial conversion from Docbook&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{SVG Essentials/TOC}}&lt;br /&gt;
Up to this point, all graphics have been displayed &amp;quot;as is.&amp;quot; There will be times when you have a graphic that you would like to move to a new location, rotate, or scale. To accomplish these tasks, you add the &amp;lt;tt&amp;gt;transform&amp;lt;/tt&amp;gt; attribute to the appropriate SVG elements. This chapter examines the details of these transformations.&lt;br /&gt;
&lt;br /&gt;
== The translate Transformation ==&lt;br /&gt;
&lt;br /&gt;
In [[SVG Essentials/Document Structure|Chapter 4]], you saw that you can use &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;y&amp;lt;/tt&amp;gt; attributes with the &amp;lt;tt&amp;gt;&amp;lt;use&amp;gt;&amp;lt;/tt&amp;gt; element to place a group of graphic objects at a specific place. Look at the SVG in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-EX-1|Example 5-1]], which defines a square and draws it at the upper left corner of the grid, then re-draws it with the upper left corner at coordinates (50, 50). The dotted lines in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-1|Figure 5-1]] aren't part of the SVG, but serve to show the part of the canvas that we're interested in.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-EX-1&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 5-1. Moving a graphic with use'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;svg width=&amp;quot;200px&amp;quot; height=&amp;quot;200px&amp;quot; viewBox=&amp;quot;0 0 200 200&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;g id=&amp;quot;square&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;rect x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot; width=&amp;quot;20&amp;quot; height=&amp;quot;20&amp;quot;&lt;br /&gt;
             style=&amp;quot;fill: black; stroke-width: 2;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/g&amp;gt;&lt;br /&gt;
     &amp;lt;use xlink:href=&amp;quot;#square&amp;quot; x=&amp;quot;50&amp;quot; y=&amp;quot;50&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/svg&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-1&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-1. Result of moving with use'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt70.png|Result of moving with use]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As it turns out, the &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;y&amp;lt;/tt&amp;gt; values are really a shorthand for one form of the more general and more powerful &amp;lt;tt&amp;gt;transform&amp;lt;/tt&amp;gt; attribute. Specifically, the &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;y&amp;lt;/tt&amp;gt; values are converted to an attribute like &amp;lt;tt&amp;gt;transform=&amp;quot;translate(&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''x-value''&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;''y-value''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;)&amp;quot;&amp;lt;/tt&amp;gt;, where &amp;lt;tt&amp;gt;translate&amp;lt;/tt&amp;gt; is a fancy technical term for &amp;quot;move.&amp;quot; The ''x-value'' and ''y-value'' are measured in the current user coordinate system. Let's use &amp;lt;tt&amp;gt;transform&amp;lt;/tt&amp;gt; to get the same effect of making a second square with its upper left corner at (50, 50). [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-EX-2|Example 5-2]] lists the SVG.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-EX-2&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 5-2. Moving the coordinate system with translation'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;svg width=&amp;quot;200px&amp;quot; height=&amp;quot;200px&amp;quot; viewBox=&amp;quot;0 0 200 200&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;g id=&amp;quot;square&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;rect x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot; width=&amp;quot;20&amp;quot; height=&amp;quot;20&amp;quot;&lt;br /&gt;
             style=&amp;quot;fill: none; stroke:black; stroke-width: 2;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/g&amp;gt;&lt;br /&gt;
     &amp;lt;use xlink:href=&amp;quot;#square&amp;quot; '''transform=&amp;quot;translate(50,50)&amp;quot;'''/&amp;gt;&lt;br /&gt;
 &amp;lt;/svg&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The resulting display will look exactly like that in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-1|Figure 5-1]]. You might think this was accomplished by moving the square to a different place on the grid, as shown conceptually in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-2|Figure 5-2]], but you would be wrong.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-2&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-2. How moving appears to work (but really doesn't)'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt71.png|How moving appears to work (but really doesn't)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What is really going on behind the scenes is an entirely different story. Rather than moving the square, the &amp;lt;tt&amp;gt;translate&amp;lt;/tt&amp;gt; specification picks up the ''entire grid'' and moves it to a new location on the canvas. As far as the square is concerned, it's still being drawn with its upper left corner at (0, 0), as depicted in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-3|Figure 5-3]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-3&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-3. How moving with translate really works'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt72.png|How moving with translate really works]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;warning&amp;quot;&amp;gt;&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
A translation transformation ''never'' changes a graphic object's grid coordinates; rather, it changes the position of the grid on the canvas.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At first glance, using &amp;lt;tt&amp;gt;translate&amp;lt;/tt&amp;gt; seems as ridiculous and inefficient as moving your couch further away from the outside wall of the house by moving the entire living room, walls and all, to a new position. Indeed, if translation were the only transformation available, moving the entire coordinate system would be wasteful. However, we will soon see other transformations, and combinations of a sequence of transformations, which are more mathematically and conceptually convenient if they apply to the entire coordinate system.&lt;br /&gt;
&lt;br /&gt;
== The scale Transformation ==&lt;br /&gt;
&lt;br /&gt;
It is possible to make an object appear larger or smaller than the size at which it was defined by scaling the coordinate system. Such a transformation is specified either as:&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;tt&amp;gt;transform=&amp;quot;scale(&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''value''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;)&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
: Multiplies all ''x''- and ''y''-coordinates by the given &amp;lt;tt&amp;gt;''value''&amp;lt;/tt&amp;gt;.&lt;br /&gt;
;&amp;lt;tt&amp;gt;transform=&amp;quot;scale(&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''x-value''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;,&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''y-value''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;)&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
: Multiplies all ''x''-coordinates by the given &amp;lt;tt&amp;gt;''x-value''&amp;lt;/tt&amp;gt; and all ''y''-coordinates by the given &amp;lt;tt&amp;gt;''y-value''&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-EX-3|Example 5-3]] is an example of the first kind of scaling transformation, which uniformly doubles the scale of both axes. Once again, the dotted lines in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-4|Figure 5-4]] aren't in the SVG; they simply show the area of the canvas that we're interested in. Note that the square's upper left corner is at (10, 10).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-EX-3&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 5-3. Uniformly scaling a graphic'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;svg width=&amp;quot;200px&amp;quot; height=&amp;quot;200px&amp;quot; viewBox=&amp;quot;0 0 200 200&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;g id=&amp;quot;square&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;rect x=&amp;quot;10&amp;quot; y=&amp;quot;10&amp;quot; width=&amp;quot;20&amp;quot; height=&amp;quot;20&amp;quot;&lt;br /&gt;
             style=&amp;quot;fill: none; stroke: black;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/g&amp;gt;&lt;br /&gt;
     &amp;lt;use xlink:href=&amp;quot;#square&amp;quot; transform=&amp;quot;scale(2)&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/svg&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-4&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-4. Result of using scale transformation'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt73.png|Result of using scale transformation]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You might be thinking, &amp;quot;Wait a minute — I can understand why the square got larger. But I didn't ask for a &amp;lt;tt&amp;gt;translate&amp;lt;/tt&amp;gt;, so why is the square in a different place?&amp;quot; Everything becomes clear when you look at [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-5|Figure 5-5]] to see what has actually occurred. The grid hasn't moved; the (0, 0) point of the coordinate system is still in the same place, but each user coordinate is now twice as large as it used to be. You can see from the grid lines that the upper left corner of the rectangle is still at (10, 10) on the new, larger grid, since objects ''never'' move. This also explains why the outline of the larger square is thicker. The &amp;lt;tt&amp;gt;stroke-width&amp;lt;/tt&amp;gt; is still one user unit, but that unit has now become twice as large, so the stroke thickens.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-5&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-5. How the scale transformation works'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt74.png|How the scale transformation works]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;warning&amp;quot;&amp;gt;&lt;br /&gt;
'''Warning'''&lt;br /&gt;
&lt;br /&gt;
A scaling transformation ''never'' changes a graphic object's grid coordinates or its stroke width; rather, it changes the size of the coordinate system (grid) with respect to the canvas.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is possible to specify a different scale factor for the ''x''-axis and ''y''-axis of the coordinate system by using the second form of the &amp;lt;tt&amp;gt;scale&amp;lt;/tt&amp;gt; transformation. [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-EX-4|Example 5-4]] draws the square with the ''x''-axis scaled by a factor of three and the ''y''-axis scaled by a factor of one and a half. As you can see in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-6|Figure 5-6]], the one-unit stroke width is also non-uniformly scaled.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-EX-4&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 5-4. Non-uniform scaling of a graphic'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;svg width=&amp;quot;200px&amp;quot; height=&amp;quot;200px&amp;quot; viewBox=&amp;quot;0 0 200 200&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;g id=&amp;quot;square&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;rect x=&amp;quot;10&amp;quot; y=&amp;quot;10&amp;quot; width=&amp;quot;20&amp;quot; height=&amp;quot;20&amp;quot;&lt;br /&gt;
             style=&amp;quot;fill: none; stroke: black;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/g&amp;gt;&lt;br /&gt;
     &amp;lt;use xlink:href=&amp;quot;#square&amp;quot; transform=&amp;quot;scale(3, 1.5)&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/svg&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-6&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-6. Result of using non-uniform scale transformation'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt75.png|Result of using non-uniform scale transformation]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To this point, we have only applied the &amp;lt;tt&amp;gt;transform&amp;lt;/tt&amp;gt; attribute to the &amp;lt;tt&amp;gt;&amp;lt;use&amp;gt;&amp;lt;/tt&amp;gt; element. You can apply a transformation to a series of elements by grouping them and transforming the group:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;g id=&amp;quot;group1&amp;quot; transform=&amp;quot;translate(3, 5)&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;line x1=&amp;quot;10&amp;quot; y1=&amp;quot;10&amp;quot; x1=&amp;quot;30&amp;quot; y2=&amp;quot;30&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;circle cx=&amp;quot;20&amp;quot; cy=&amp;quot;20&amp;quot; r=&amp;quot;10&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may also apply a transformation to a single object or basic shape. For example, here is a rectangle whose coordinate system is scaled by a factor of three:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;rect x=&amp;quot;15&amp;quot; y=&amp;quot;20&amp;quot; width=&amp;quot;10&amp;quot; height=&amp;quot;5&amp;quot; &lt;br /&gt;
     '''transform=&amp;quot;scale(3)&amp;quot;'''&lt;br /&gt;
     style=&amp;quot;fill: none; stroke: black;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's fairly clear that the width and height of the scaled rectangle should be three times as large as the unscaled rectangle. However, you may wonder if the ''x''- and ''y''-coordinates are evaluated before or after the rectangle is scaled. The answer is that SVG applies transformations to the coordinate system before it evaluates any of the shape's coordinates. [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-EX-5|Example 5-5]] is the SVG for the scaled rectangle, shown in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-7|Figure 5-7]] with grid lines that are drawn in the unscaled coordinate system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-EX-5&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 5-5. Transforming a single graphic'''&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- grid guide lines in non-scaled coordinate system --&amp;gt;&lt;br /&gt;
 &amp;lt;line x1=&amp;quot;0&amp;quot; y1=&amp;quot;0&amp;quot; x2=&amp;quot;100&amp;quot; y2=&amp;quot;0&amp;quot; style=&amp;quot;stroke: black;&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;line x1=&amp;quot;0&amp;quot; y1=&amp;quot;0&amp;quot; x2=&amp;quot;0&amp;quot; y2=&amp;quot;100&amp;quot; style=&amp;quot;stroke: black;&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;line x1=&amp;quot;45&amp;quot; y1=&amp;quot;0&amp;quot; x2=&amp;quot;45&amp;quot; y2=&amp;quot;100&amp;quot; style=&amp;quot;stroke: gray;&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;line x1=&amp;quot;0&amp;quot; y1=&amp;quot;60&amp;quot; x2=&amp;quot;100&amp;quot; y2=&amp;quot;60&amp;quot; style=&amp;quot;stroke: gray;&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;!-- rectangle to be transformed --&amp;gt;&lt;br /&gt;
 &amp;lt;rect x=&amp;quot;15&amp;quot; y=&amp;quot;20&amp;quot; width=&amp;quot;10&amp;quot; height=&amp;quot;5&amp;quot; &lt;br /&gt;
     '''transform=&amp;quot;scale(3)&amp;quot;'''&lt;br /&gt;
     style=&amp;quot;fill: none; stroke: black;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-7&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-7. Result of transforming a single graphic'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt78.png|Result of transforming a single graphic]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
'''Note'''&lt;br /&gt;
&lt;br /&gt;
The effect of applying a transformation to a shape is the same as if the shape were enclosed in a transformed group. In the preceding example, the scaled rectangle is equivalent to this SVG: &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;g transform=&amp;quot;scale(3)&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;rect x=&amp;quot;15&amp;quot; y=&amp;quot;20&amp;quot; width=&amp;quot;10&amp;quot; height=&amp;quot;5&amp;quot; &lt;br /&gt;
        style=&amp;quot;fill: none; stroke: black;&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sequences of Transformations ==&lt;br /&gt;
&lt;br /&gt;
It is possible to do more than one transformation on a graphic object. You just put the transformations, separated by whitespace, in the value of the &amp;lt;tt&amp;gt;transform&amp;lt;/tt&amp;gt; attribute. Here is a rectangle that undergoes two transformations, a translation followed by a scaling. (The axes are drawn to show that the rectangle has, indeed, moved.)&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- draw axes --&amp;gt;&lt;br /&gt;
 &amp;lt;line x1=&amp;quot;0&amp;quot; y1=&amp;quot;0&amp;quot; x2=&amp;quot;0&amp;quot; y2=&amp;quot;100&amp;quot; style=&amp;quot;stroke: gray;&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;line x1=&amp;quot;0&amp;quot; y1=&amp;quot;0&amp;quot; x2=&amp;quot;100&amp;quot; y2=&amp;quot;0&amp;quot; style=&amp;quot;stroke: gray;&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;rect x=&amp;quot;10&amp;quot; y=&amp;quot;10&amp;quot; height=&amp;quot;20&amp;quot; width=&amp;quot;15&amp;quot;&lt;br /&gt;
     transform=&amp;quot;translate(30, 20) scale(2)&amp;quot;&lt;br /&gt;
     style=&amp;quot;fill: gray;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the equivalent of the following sequence of nested groups, and both will produce what you see in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-8|Figure 5-8]].&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;g transform=&amp;quot;translate(30, 20)&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;g transform=&amp;quot;scale(2)&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;rect x=&amp;quot;10&amp;quot; y=&amp;quot;10&amp;quot; height=&amp;quot;20&amp;quot; width=&amp;quot;15&amp;quot;&lt;br /&gt;
         style=&amp;quot;fill: gray;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/g&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-8&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-8. Result of translate followed by scale'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt82.png|Result of translate&lt;br /&gt;
followed by scale]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-9|Figure 5-9]] shows what is happening at each stage of the transformation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-9&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-9. How translate followed by scale works'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt83.png|How translate&lt;br /&gt;
followed by scale works]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;note&amp;quot;&amp;gt;&lt;br /&gt;
'''Note'''&lt;br /&gt;
&lt;br /&gt;
The order in which you do a sequence of transformations affects the result. In general, transformation A followed by transformation B will not give the same result as transformation B followed by transformation A.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-EX-6|Example 5-6]] draws the same rectangle as in the previous example, only in a light gray color. Then it draws the rectangle again, but does the &amp;lt;tt&amp;gt;scale&amp;lt;/tt&amp;gt; before the &amp;lt;tt&amp;gt;translate&amp;lt;/tt&amp;gt;. As you can see from the result in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-10|Figure 5-10]], the rectangles end up in very different places on the canvas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-EX-6&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 5-6. Sequence of transformations -- scale followed by translate'''&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- draw axes --&amp;gt;&lt;br /&gt;
 &amp;lt;line x1=&amp;quot;0&amp;quot; y1=&amp;quot;0&amp;quot; x2=&amp;quot;0&amp;quot; y2=&amp;quot;100&amp;quot; style=&amp;quot;stroke: gray;&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;line x1=&amp;quot;0&amp;quot; y1=&amp;quot;0&amp;quot; x2=&amp;quot;100&amp;quot; y2=&amp;quot;0&amp;quot; style=&amp;quot;stroke: gray;&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;rect x=&amp;quot;10&amp;quot; y=&amp;quot;10&amp;quot; width=&amp;quot;20&amp;quot; height=&amp;quot;15&amp;quot;&lt;br /&gt;
     transform=&amp;quot;translate(30, 20) scale(2)&amp;quot; style=&amp;quot;fill: #ccc;&amp;quot;/&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
 &amp;lt;rect x=&amp;quot;10&amp;quot; y=&amp;quot;10&amp;quot; width=&amp;quot;20&amp;quot; height=&amp;quot;15&amp;quot;&lt;br /&gt;
     '''transform=&amp;quot;scale(2) translate(30, 20)&amp;quot;'''&lt;br /&gt;
     style=&amp;quot;fill: black;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-10&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-10. Result of scale followed by translate'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt84.png|Result of scale&lt;br /&gt;
followed by translate]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason that the black rectangle ends up farther away from the origin is that the scaling is applied first, so that the translate of 20 units in the ''x''-direction and 10 units in the ''y''-direction is done with units that are now twice as large, as shown in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-11|Figure 5-11]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-11&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-11. How scale followed by translate works'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt85.png|How scale&lt;br /&gt;
followed by translate works]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Technique: Converting from Cartesian Coordinates ==&lt;br /&gt;
&lt;br /&gt;
If you are transferring data from other systems to SVG, you may have to deal with vector drawings that use Cartesian coordinates (the ones you learned about in high school algebra) to represent data. In this system, the (0, 0) point is at the lower left of the canvas, and ''y''-coordinates increase as you move upwards. [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-12|Figure 5-12]] shows the coordinates of a trapezoid drawn with Cartesian coordinates.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-12&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-12. Trapezoid drawn with Cartesian coordinates'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt86.png|Trapezoid drawn with Cartesian coordinates]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since the ''y''-axis is &amp;quot;upside-down&amp;quot; relative to the SVG default, the coordinates have to be recalculated. Rather than do it by hand, you can use a sequence of transformations to have SVG do all the work for you. First, translate the picture into SVG, with the coordinates exactly as shown in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-EX-7|Example 5-7]]. (We'll also include the axes as a guide.) To nobody's surprise, the picture will come out upside-down. Note that the image in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-13|Figure 5-13]] is ''not'' left-to-right reversed, since the ''x''-axis points the same direction in both Cartesian coordinates and the default SVG coordinate system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-EX-7&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 5-7. Direct use of Cartesian coordinates'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;svg width=&amp;quot;200px&amp;quot; height=&amp;quot;200px&amp;quot; viewBox=&amp;quot;0 0 200 200&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;amp;lt;!-- axes --&amp;gt;&lt;br /&gt;
     &amp;lt;line x1=&amp;quot;0&amp;quot; y1=&amp;quot;0&amp;quot; x2=&amp;quot;100&amp;quot; y2=&amp;quot;0&amp;quot; style=&amp;quot;stroke: black;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;line x1=&amp;quot;0&amp;quot; y1=&amp;quot;0&amp;quot; x2=&amp;quot;0&amp;quot; y2=&amp;quot;100&amp;quot; style=&amp;quot;stroke: black;&amp;quot;/&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
     &amp;amp;lt;!-- trapezoid --&amp;gt;&lt;br /&gt;
     &amp;lt;polygon points=&amp;quot;40 40, 100 40, 70 70, 40 70&amp;quot;&lt;br /&gt;
         style=&amp;quot;fill: gray; stroke: black;&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/svg&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-13&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-13. Result of using original Cartesian coordinates'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt87.png|Result of using original Cartesian coordinates]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To finish the conversion, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;div&amp;gt;Find the maximum ''y''-coordinate in the original drawing. In this case, it turns out to be 100, the endpoint of the ''y''-axis in the original.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;div&amp;gt;Enclose the entire drawing in a &amp;lt;tt&amp;gt;&amp;lt;g&amp;gt;&amp;lt;/tt&amp;gt; element.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;div&amp;gt;Enter a translate that moves the coordinate system downwards by the maximum &amp;lt;tt&amp;gt;y&amp;lt;/tt&amp;gt; value.&lt;br /&gt;
&lt;br /&gt;
 transform=&amp;quot;translate(0, ''max-y'')&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;div&amp;gt;The next transform will be to scale the ''y''-axis by a factor of -1, flipping it upside-down.&lt;br /&gt;
&lt;br /&gt;
 transform=&amp;quot;translate(0, ''max-y'') '''scale(1, -1)'''&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-EX-8|Example 5-8]] incorporates this transformation, producing a right-side-up trapezoid in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-14|Figure 5-14]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-EX-8&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 5-8. Transformed Cartesian coordinates'''&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;svg width=&amp;quot;200px&amp;quot; height=&amp;quot;200px&amp;quot; viewBox=&amp;quot;0 0 200 200&amp;quot;&amp;gt;&lt;br /&gt;
   '''&amp;lt;g transform=&amp;quot;translate(0,100) scale(1,-1)&amp;quot;&amp;gt;'''&lt;br /&gt;
     &amp;amp;lt;!-- axes --&amp;gt;&lt;br /&gt;
     &amp;lt;line x1=&amp;quot;0&amp;quot; y1=&amp;quot;0&amp;quot; x2=&amp;quot;100&amp;quot; y2=&amp;quot;0&amp;quot; style=&amp;quot;stroke: black;&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;line x1=&amp;quot;0&amp;quot; y1=&amp;quot;0&amp;quot; x2=&amp;quot;0&amp;quot; y2=&amp;quot;100&amp;quot; style=&amp;quot;stroke: black;&amp;quot;/&amp;gt;&lt;br /&gt;
     &lt;br /&gt;
     &amp;amp;lt;!-- trapezoid --&amp;gt;&lt;br /&gt;
     &amp;lt;polygon points=&amp;quot;40 40, 100 40, 70 70, 40 70&amp;quot;&lt;br /&gt;
         style=&amp;quot;fill: gray; stroke: black;&amp;quot;/&amp;gt;&lt;br /&gt;
   '''&amp;lt;/g&amp;gt;'''&lt;br /&gt;
 &amp;lt;/svg&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-14&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-14. Transformed Cartesian coordinates'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt90.png|Transformed Cartesian coordinates]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The rotate Transformation ==&lt;br /&gt;
&lt;br /&gt;
It is also possible to rotate the coordinate system by a specified angle. In the default coordinate system, angle measure increases as you rotate clockwise, with a horizontal line having an angle of zero degrees, as shown in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-15|Figure 5-15]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-15&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-15. Default measurement of angles'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt91.png|Default measurement of angles]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unless you specify otherwise, the center of rotation (a fancy term for the &amp;quot;pivot point&amp;quot;) is presumed to be (0, 0). [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-EX-9|Example 5-9]] shows a square drawn in gray, then drawn again in black after the coordinate system is rotated 45 degrees. The axes are also shown as a guide. [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-16|Figure 5-16]] shows the result. If you're surprised that the square has appeared to move, you shouldn't be. Remember, the entire coordinate system has been rotated, as shown in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-17|Figure 5-17]].&amp;lt;ref&amp;gt;All the figures in this chapter are static pictures. This one shows two squares; one rotated and one unrotated. To show an animation of a rotating square, use &amp;lt;tt&amp;gt;&amp;lt;animateTransform&amp;gt;&amp;lt;/tt&amp;gt;, which we will discuss in [[SVG Essentials/Animating and Scripting SVG|Chapter 11]], in [[SVG Essentials/Animating and Scripting SVG#The animateTransform Element|Section 11.6]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-EX-9&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 5-9. Rotation around the origin'''&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- axes --&amp;gt;&lt;br /&gt;
 &amp;lt;polyline points=&amp;quot;100 0, 0 0, 0 100&amp;quot; style=&amp;quot;stroke: black; fill: none;&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;!-- normal and rotated square --&amp;gt;&lt;br /&gt;
 &amp;lt;rect x=&amp;quot;70&amp;quot; y=&amp;quot;30&amp;quot; width=&amp;quot;20&amp;quot; height=&amp;quot;20&amp;quot; style=&amp;quot;fill: gray;&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;rect x=&amp;quot;70&amp;quot; y=&amp;quot;30&amp;quot; width=&amp;quot;20&amp;quot; height=&amp;quot;20&amp;quot; &lt;br /&gt;
     transform=&amp;quot;rotate(45)&amp;quot; style=&amp;quot;fill: black;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-16&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-16. Result of rotation around the origin'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt92.png|Result of rotation around the origin]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-17&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-17. How rotation around the origin works'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt93.png|How rotation around the origin works]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most of the time, you will not want to rotate the entire coordinate system around the origin; you'll want to rotate a single object around a point other than the origin. You can do that via this series of transformations: &amp;lt;tt&amp;gt;translate(&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''centerX''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;,&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''centerY''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;rotate(&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''angle''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;translate(-&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''centerX''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;, -&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''centerY''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt;. SVG provides another version of &amp;lt;tt&amp;gt;rotate&amp;lt;/tt&amp;gt; to make this common task easier. In this second form of the &amp;lt;tt&amp;gt;rotate&amp;lt;/tt&amp;gt; transformation, you specify the angle and the center point around which you want to rotate:&lt;br /&gt;
&lt;br /&gt;
 rotate(''angle'', ''centerX'', ''centerY'')&lt;br /&gt;
&lt;br /&gt;
This has the effect of temporarily establishing a new system of coordinates with the origin at the specified center ''x'' and ''y'' points, doing the rotation, and then re-establishing the original coordinates. [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-EX-10|Example 5-10]] shows this form of &amp;lt;tt&amp;gt;rotate&amp;lt;/tt&amp;gt; to create multiple copies of an arrow, shown in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-18|Figure 5-18]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-EX-10&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 5-10. Rotation around a center point'''&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- center of rotation --&amp;gt;&lt;br /&gt;
 &amp;lt;circle cx=&amp;quot;50&amp;quot; cy=&amp;quot;50&amp;quot; r=&amp;quot;3&amp;quot; style=&amp;quot;fill: black;&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;!-- non-rotated arrow --&amp;gt;&lt;br /&gt;
 &amp;lt;g id=&amp;quot;arrow&amp;quot; style=&amp;quot;stroke: black;&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;line x1=&amp;quot;60&amp;quot; y1=&amp;quot;50&amp;quot; x2=&amp;quot;90&amp;quot; y2=&amp;quot;50&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;polygon points=&amp;quot;90 50, 85 45, 85 55&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;!-- rotated around center point --&amp;gt;&lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#arrow&amp;quot; transform=&amp;quot;rotate(60, 50, 50)&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#arrow&amp;quot; transform=&amp;quot;rotate(-90, 50, 50)&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#arrow&amp;quot; transform=&amp;quot;rotate(-150, 50 50)&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-18&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-18. Result of rotation around a center point'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt94.png|Result of rotation around a center point]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Technique: Scaling Around a Center Point ==&lt;br /&gt;
&lt;br /&gt;
While it's possible to rotate around a point other than the origin, there is no corresponding capability to &amp;lt;tt&amp;gt;scale&amp;lt;/tt&amp;gt; around a point. You can, however, make concentric symbols with a simple series of transformations. To scale an object by a given factor around a center point, do this:&lt;br /&gt;
&lt;br /&gt;
 translate(-''centerX*(factor-1)'', -''centerY*(factor-1)'')&lt;br /&gt;
 scale(''factor'')&lt;br /&gt;
&lt;br /&gt;
You may also want to divide the &amp;lt;tt&amp;gt;stroke-width&amp;lt;/tt&amp;gt; by the scaling factor so the outline stays the same width while the object becomes larger. [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-EX-11|Example 5-11]] draws the set of concentric rectangles shown in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-19|Figure 5-19]].&amp;lt;ref&amp;gt;This is also a static picture, a &amp;quot;square bullseye.&amp;quot; If you want to show an animation of an expanding square, you'll use &amp;lt;tt&amp;gt;&amp;lt;animateTransform&amp;gt;&amp;lt;/tt&amp;gt;, which we will discuss in [[SVG Essentials/Animating and Scripting SVG|Chapter 11]], in [[SVG Essentials/Animating and Scripting SVG#The animateTransform Element|Section 11.6]].&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-EX-11&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 5-11. Scaling around a center point'''&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;lt;!-- center of scaling --&amp;gt;&lt;br /&gt;
 &amp;lt;circle cx=&amp;quot;50&amp;quot; cy=&amp;quot;50&amp;quot; r=&amp;quot;2&amp;quot; style=&amp;quot;fill: black;&amp;quot;/&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;!-- non-scaled rectangle --&amp;gt;&lt;br /&gt;
 &amp;lt;g id=&amp;quot;box&amp;quot; style=&amp;quot;stroke: black; fill: none;&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;rect x=&amp;quot;35&amp;quot; y=&amp;quot;40&amp;quot; width=&amp;quot;30&amp;quot; height=&amp;quot;20&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#box&amp;quot; transform=&amp;quot;translate(-50,-50) scale(2)&amp;quot;&lt;br /&gt;
     style=&amp;quot;stroke-width: 0.5;&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#box&amp;quot; transform=&amp;quot;translate(-75,-75) scale(2.5)&amp;quot;&lt;br /&gt;
     style=&amp;quot;stroke-width: 0.4;&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;use xlink:href=&amp;quot;#box&amp;quot; transform=&amp;quot;translate(-100,-100) scale(3)&amp;quot;&lt;br /&gt;
     style=&amp;quot;stroke-width: 0.33;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-19&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-19. Result of scaling around a center point'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt96.png|Result of scaling around a center point]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The skewX and skewY Transformations ==&lt;br /&gt;
&lt;br /&gt;
SVG also has two other transformations: &amp;lt;tt&amp;gt;skewX&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;skewY&amp;lt;/tt&amp;gt;, which let you skew one of the axes. The general form is &amp;lt;tt&amp;gt;skewX(&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''angle''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;skewY(&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;''angle''&amp;lt;/tt&amp;gt; &amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt; The &amp;lt;tt&amp;gt;skewX&amp;lt;/tt&amp;gt; transformation &amp;quot;pushes&amp;quot; all ''x''-coordinates by the specified angle, leaving ''y''-coordinates unchanged. &amp;lt;tt&amp;gt;skewY&amp;lt;/tt&amp;gt; skews the ''y''-coordinates, leaving ''x''-coordinates unchanged, as shown in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-EX-12|Example 5-12]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-EX-12&amp;quot;&amp;gt;&lt;br /&gt;
'''Example 5-12. skewX and skewY'''&lt;br /&gt;
&lt;br /&gt;
 '''[1]'''&lt;br /&gt;
 &amp;lt;g style=&amp;quot;stroke: gray; stroke-dasharray: 4 4;&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;line x1=&amp;quot;0&amp;quot; y1=&amp;quot;0&amp;quot; x2=&amp;quot;200&amp;quot; y2=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;line x1=&amp;quot;20&amp;quot; y1=&amp;quot;0&amp;quot; x2=&amp;quot;20&amp;quot; y2=&amp;quot;90&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;line x1=&amp;quot;120&amp;quot; y1=&amp;quot;0&amp;quot; x2=&amp;quot;120&amp;quot; y2=&amp;quot;90&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;g transform=&amp;quot;translate(20, 0)&amp;quot;&amp;gt;     '''[2]'''&lt;br /&gt;
     &amp;lt;g transform=&amp;quot;skewX(30)&amp;quot;&amp;gt;     '''[3]'''&lt;br /&gt;
         &amp;lt;polyline points=&amp;quot;50 0, 0 0, 0 50&amp;quot;      '''[4]'''&lt;br /&gt;
              style=&amp;quot;fill: none; stroke: black; stroke-width: 2;&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;text x=&amp;quot;0&amp;quot; y=&amp;quot;60&amp;quot;&amp;gt;skewX&amp;lt;/text&amp;gt;     '''[5]'''&lt;br /&gt;
     &amp;lt;/g&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;g transform=&amp;quot;translate(120, 0)&amp;quot;&amp;gt;     '''[6]'''&lt;br /&gt;
     &amp;lt;g transform=&amp;quot;skewY(30)&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;polyline points=&amp;quot;50 0, 0 0, 0 50&amp;quot;&lt;br /&gt;
             style=&amp;quot;fill: none; stroke: black; stroke-width: 2;&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;text x=&amp;quot;0&amp;quot; y=&amp;quot;60&amp;quot;&amp;gt;skewY&amp;lt;/text&amp;gt;&lt;br /&gt;
     &amp;lt;/g&amp;gt;&lt;br /&gt;
 &amp;lt;/g&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[1]'''&amp;lt;/tt&amp;gt; These dashed lines are drawn in the default coordinate system, before any transformation has occurred.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[2]'''&amp;lt;/tt&amp;gt; This will move the entire skewed &amp;quot;package&amp;quot; to the desired location.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[3]'''&amp;lt;/tt&amp;gt; Skew the ''x''-coordinates 30 degrees. This transformation doesn't change the origin, which will still be at (0, 0) in the new coordinate system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[4]'''&amp;lt;/tt&amp;gt; To make things easier, we draw the object at the origin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[5]'''&amp;lt;/tt&amp;gt; Text will be covered in more detail in [[SVG Essentials/Text|Chapter 8]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;'''[6]'''&amp;lt;/tt&amp;gt; These elements are organized exactly like the preceding ones, except the ''y''-coordinates are skewed.&lt;br /&gt;
&lt;br /&gt;
Notice that &amp;lt;tt&amp;gt;skewX&amp;lt;/tt&amp;gt; leaves the horizontal lines in [[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-FIG-20|Figure 5-20]] horizontal, and &amp;lt;tt&amp;gt;skewY&amp;lt;/tt&amp;gt; leaves the vertical lines untouched. Go figure.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-FIG-20&amp;quot;&amp;gt;&lt;br /&gt;
'''Figure 5-20. Result of skewX and skewY transformations'''&lt;br /&gt;
&lt;br /&gt;
[[Image:SVG Essentials/I_5_tt97.png|Result of skewX and&lt;br /&gt;
   skewY transformations]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Transformation Reference Summary ==&lt;br /&gt;
&lt;br /&gt;
[[SVG Essentials/Transforming the Coordinate System#svgess-CHP-5-TABLE-1|Table 5-1]] gives a quick summary of the transformations available in SVG.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;svgess-CHP-5-TABLE-1&amp;quot;&amp;gt;&lt;br /&gt;
'''Table 5-1. SVG transformations'''&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Transformation !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;translate(&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''x''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;,&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''y''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt; || Moves the user coordinate system by the specified &amp;lt;tt&amp;gt;''x''&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;''y''&amp;lt;/tt&amp;gt; amounts. Note: If you don't specify a &amp;lt;tt&amp;gt;''y''&amp;lt;/tt&amp;gt; value, zero is assumed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;scale(&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''xFactor''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;,&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''yFactor''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt; || Multiplies all user coordinate systems by the specified &amp;lt;tt&amp;gt;''xFactor''&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;''yFactor''&amp;lt;/tt&amp;gt;. The factors may be fractional or negative.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;scale(&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''factor''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt; || Same as &amp;lt;tt&amp;gt;scale(&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''factor''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;,&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''factor''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;rotate(&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''angle''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt; || Rotates the user coordinate by the specified &amp;lt;tt&amp;gt;''angle''&amp;lt;/tt&amp;gt;. The center of rotation is the origin (0, 0). In the default coordinate system, angle measure increases as you rotate clockwise, with a horizontal line having an angle of zero degrees.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;rotate(&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''angle''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;,&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''centerX''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;,&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''centerY''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt; || Rotates the user coordinate by the specified &amp;lt;tt&amp;gt;''angle''&amp;lt;/tt&amp;gt;. &amp;lt;tt&amp;gt;''centerX''&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;''centerY''&amp;lt;/tt&amp;gt; specify the center of rotation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;skewX(&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''angle''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt; || Skews all ''x''-coordinates by the specified &amp;lt;tt&amp;gt;''angle''&amp;lt;/tt&amp;gt;. Visually, this makes vertical lines appear at an angle.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tt&amp;gt;skewY(&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;''angle''&amp;lt;/tt&amp;gt;&amp;lt;tt&amp;gt;)&amp;lt;/tt&amp;gt; || Skews all ''y''-coordinates by the specified &amp;lt;tt&amp;gt;''angle''&amp;lt;/tt&amp;gt;. Visually, this makes horizontal lines appear at an angle.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</description>
			<pubDate>Tue, 04 Mar 2008 22:37:00 GMT</pubDate>			<dc:creator>Docbook2Wiki</dc:creator>			<comments>http://commons.oreilly.com/wiki/index.php/Talk:SVG_Essentials/Transforming_the_Coordinate_System</comments>		</item>
	</channel>
</rss>