<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bzflag.org/index.php?action=history&amp;feed=atom&amp;title=3d_Transformations</id>
	<title>3d Transformations - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bzflag.org/index.php?action=history&amp;feed=atom&amp;title=3d_Transformations"/>
	<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=3d_Transformations&amp;action=history"/>
	<updated>2026-04-18T10:32:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=3d_Transformations&amp;diff=7353&amp;oldid=prev</id>
		<title>ClayOgre: /* Shear */</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=3d_Transformations&amp;diff=7353&amp;oldid=prev"/>
		<updated>2010-11-06T01:17:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Shear&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:17, 6 November 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l36&quot;&gt;Line 36:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 36:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Shear=&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Shear=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Shearing is &quot;a deformation of an object in which parallel planes remain parallel but are shifted in a direction parallel to themselves.&quot; If you don&#039;t understand, look at the image below.  The three values after shear-keyword define a vector. Vectors &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lenght &lt;/del&gt;represents change per Z-axis unit. If you have 10 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;units &lt;/del&gt;high meshbox, and shear it by 1 0 0, top will move 10 * 1 away from the bottom in X-axis direction. In next example, we use shear to make an escalator with nice ends.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Shearing is &quot;a deformation of an object in which parallel planes remain parallel but are shifted in a direction parallel to themselves.&quot; If you don&#039;t understand, look at the image below.  The three values after shear-keyword define a vector. Vectors &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;length &lt;/ins&gt;represents change per Z-axis unit. If you have 10 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;unit &lt;/ins&gt;high meshbox, and shear it by 1 0 0, top will move 10 * 1 away from the bottom in X-axis direction. In next example, we use shear to make an escalator with nice ends.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key bzflag_wiki-bz_:diff:1.41:old-7352:rev-7353:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>ClayOgre</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=3d_Transformations&amp;diff=7352&amp;oldid=prev</id>
		<title>ClayOgre: /* Shift */</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=3d_Transformations&amp;diff=7352&amp;oldid=prev"/>
		<updated>2010-11-06T01:16:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Shift&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:16, 6 November 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l31&quot;&gt;Line 31:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Shifting means moving the object. It is used in same manner as old position-keyword. Without position-keyword, object is placed around 0 0 0. When shift moves it from origin, coordinates are just like with position. However, shift is repeatable, and sequential moves will use last point as origin.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Shifting means moving the object. It is used in same manner as old position-keyword. Without position-keyword, object is placed around 0 0 0. When shift moves it from origin, coordinates are just like with position. However, shift is repeatable, and sequential moves will use last point as origin.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:shift.png|alt text]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:shift.png|alt text]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key bzflag_wiki-bz_:diff:1.41:old-3884:rev-7352:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>ClayOgre</name></author>
	</entry>
	<entry>
		<id>https://wiki.bzflag.org/index.php?title=3d_Transformations&amp;diff=3884&amp;oldid=prev</id>
		<title>Optic Delusion: Copy JPA&#039;s 3-d trandormations page from http://kapsi.fi/~jpa/stuff/bzw/     ©Petteri Aimonen 2005   Used by permission</title>
		<link rel="alternate" type="text/html" href="https://wiki.bzflag.org/index.php?title=3d_Transformations&amp;diff=3884&amp;oldid=prev"/>
		<updated>2007-12-28T00:36:59Z</updated>

		<summary type="html">&lt;p&gt;Copy JPA&amp;#039;s 3-d trandormations page from http://kapsi.fi/~jpa/stuff/bzw/     ©Petteri Aimonen 2005   Used by permission&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The following is ©Petteri Aimonen 2005, Used by permission.&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
In version 1.10.8 and older bzflag, objects position, rotation and size where defined by, logically, position, rotation and size keywords. When 2.0 introduced 3d rotation, this had to change. Position and rotation have been obsoleted by their superiors, shift and spin. Size could be replaced with scale, but there is no need for that on traditional objects (mesh are a bit different). All keywords are order-specific. If you do shift before spin, it will still spin the object around 0 0 0, moving it somewhere else than where it was meant to be.&lt;br /&gt;
&lt;br /&gt;
 box&lt;br /&gt;
  position 50 100 0&lt;br /&gt;
  size 20 20 5&lt;br /&gt;
  rotation 45&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
can now be written:&lt;br /&gt;
&lt;br /&gt;
 meshbox&lt;br /&gt;
  size 20 20 5&lt;br /&gt;
  spin 45 0 0 1&lt;br /&gt;
  shift 50 100 0&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
=Spin=&lt;br /&gt;
&lt;br /&gt;
Spin can be used to rotate object around a specific axis. Axis is a line, defined by two points. First value after spin-keyword is rotation in degrees. The other three values determine which axis the spin will be applied.  It is usually simple to think rotation around the standard axises. You can spin around any axis, diagonal or anything. Anyway, all rotations can be made by rotating around standard axises, and they are usually most simple to think of.&lt;br /&gt;
&lt;br /&gt;
 X-axis eg. spin 45 1 0 0 &lt;br /&gt;
 Y-axis eg. spin 45 0 1 0 &lt;br /&gt;
 Z-axis, normal rotation, eg. spin 45 0 0 1&lt;br /&gt;
&lt;br /&gt;
[[Image:spin.png|alt text]]&lt;br /&gt;
[[Image:spin2.png|alt text]]&lt;br /&gt;
=Shift=&lt;br /&gt;
&lt;br /&gt;
Shifting means moving the object. It is used in same manner as old position-keyword. Without position-keyword, object is placed around 0 0 0. When shift moves it from origin, coordinates are just like with position. However, shift is repeatable, and sequential moves will use last point as origin.&lt;br /&gt;
[[Image:shift.png|alt text]]&lt;br /&gt;
&lt;br /&gt;
=Shear=&lt;br /&gt;
&lt;br /&gt;
Shearing is &amp;quot;a deformation of an object in which parallel planes remain parallel but are shifted in a direction parallel to themselves.&amp;quot; If you don&amp;#039;t understand, look at the image below.  The three values after shear-keyword define a vector. Vectors lenght represents change per Z-axis unit. If you have 10 units high meshbox, and shear it by 1 0 0, top will move 10 * 1 away from the bottom in X-axis direction. In next example, we use shear to make an escalator with nice ends.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 physics&lt;br /&gt;
  name escalator&lt;br /&gt;
  linear 15 0 15&lt;br /&gt;
 end&lt;br /&gt;
 meshbox&lt;br /&gt;
  size 10 10 100&lt;br /&gt;
  shear 2 0 0&lt;br /&gt;
  phydrv escalator&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 meshbox&lt;br /&gt;
  size 10 10 10&lt;br /&gt;
  shear 1 0 0&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
[[Image:shear.png|alt text]]&lt;/div&gt;</summary>
		<author><name>Optic Delusion</name></author>
	</entry>
</feed>