<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://graalonline.net/index.php?action=history&amp;feed=atom&amp;title=Polar_Rotation</id>
	<title>Polar Rotation - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://graalonline.net/index.php?action=history&amp;feed=atom&amp;title=Polar_Rotation"/>
	<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Polar_Rotation&amp;action=history"/>
	<updated>2026-04-10T01:14:42Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>https://graalonline.net/index.php?title=Polar_Rotation&amp;diff=15321&amp;oldid=prev</id>
		<title>Pooper200000 at 15:15, 20 February 2010</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Polar_Rotation&amp;diff=15321&amp;oldid=prev"/>
		<updated>2010-02-20T15:15:19Z</updated>

		<summary type="html">&lt;p&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 11:15, 20 February 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-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&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;[[Category:Scripting Reference]]&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;== Definitions ==&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;== Definitions ==&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;''&amp;amp;theta;'': greek letter ''theta''&amp;lt;br /&amp;gt;&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;''&amp;amp;theta;'': greek letter ''theta''&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key graalnet_wikidb:diff::1.12:old-9220:rev-15321 --&gt;
&lt;/table&gt;</summary>
		<author><name>Pooper200000</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Polar_Rotation&amp;diff=9220&amp;oldid=prev</id>
		<title>Stefan: Reverted edits by Anti-Up (Talk); changed back to last version by Tolnaftate2004</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Polar_Rotation&amp;diff=9220&amp;oldid=prev"/>
		<updated>2007-07-01T13:19:29Z</updated>

		<summary type="html">&lt;p&gt;Reverted edits by &lt;a href=&quot;/Special:Contributions/Anti-Up&quot; title=&quot;Special:Contributions/Anti-Up&quot;&gt;Anti-Up&lt;/a&gt; (&lt;a href=&quot;/index.php?title=User_talk:Anti-Up&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:Anti-Up (page does not exist)&quot;&gt;Talk&lt;/a&gt;); changed back to last version by &lt;a href=&quot;/User:Tolnaftate2004&quot; title=&quot;User:Tolnaftate2004&quot;&gt;Tolnaftate2004&lt;/a&gt;&lt;/p&gt;
&lt;a href=&quot;https://graalonline.net/index.php?title=Polar_Rotation&amp;amp;diff=9220&amp;amp;oldid=8700&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Stefan</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Polar_Rotation&amp;diff=8700&amp;oldid=prev</id>
		<title>Anti-Up at 02:31, 1 July 2007</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Polar_Rotation&amp;diff=8700&amp;oldid=prev"/>
		<updated>2007-07-01T02:31:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://graalonline.net/index.php?title=Polar_Rotation&amp;amp;diff=8700&amp;amp;oldid=8233&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Anti-Up</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Polar_Rotation&amp;diff=8233&amp;oldid=prev</id>
		<title>Tolnaftate2004: This is Polar Rotation. Euler Rotation is a bit more basic. My mistake. I will fix it soon.</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Polar_Rotation&amp;diff=8233&amp;oldid=prev"/>
		<updated>2007-04-21T22:59:27Z</updated>

		<summary type="html">&lt;p&gt;This is Polar Rotation. Euler Rotation is a bit more basic. My mistake. I will fix it soon.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Definitions ==&lt;br /&gt;
''&amp;amp;theta;'': greek letter ''theta''&amp;lt;br /&amp;gt;&lt;br /&gt;
''&amp;amp;phi;'': greek letter ''phi''&amp;lt;br /&amp;gt;&lt;br /&gt;
''theta'' and ''phi'' are commonly used in trigonometry for angles (but phi is most commonly used as a constant: 1.618...).&amp;lt;br /&amp;gt;&lt;br /&gt;
''&amp;amp;alpha;'': 1&amp;lt;sup&amp;gt;st&amp;lt;/sup&amp;gt; greek letter ''alpha''. For our purposes, it will represent rotation about the y-axis.&amp;lt;br /&amp;gt;&lt;br /&gt;
''&amp;amp;beta;'': 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; greek letter ''beta''. For our purposes, it will represent rotation about the x-axis.&amp;lt;br /&amp;gt;&lt;br /&gt;
''&amp;amp;gamma;'': 3&amp;lt;sup&amp;gt;rd&amp;lt;/sup&amp;gt; greek letter ''gamma''. For our purposes, it will represent rotation about the z-axis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sin(''&amp;amp;theta;'') = y / ''r'' (&amp;amp;Delta;y of a point from the center on a circle with radius ''r'')&lt;br /&gt;
 cos(''&amp;amp;theta;'') = x / ''r'' (&amp;amp;Delta;x of a point from the center on a circle with radius ''r'')&lt;br /&gt;
 sin(''&amp;amp;theta;'' &amp;amp;plusmn; ''&amp;amp;phi;'') = sin(''&amp;amp;theta;'') cos(''&amp;amp;phi;'') &amp;amp;plusmn; cos(''&amp;amp;theta;'') sin(''&amp;amp;phi;'')&lt;br /&gt;
 -cos(''&amp;amp;theta;'' &amp;amp;plusmn; ''&amp;amp;phi;'') = -cos(''&amp;amp;theta;'') cos(''&amp;amp;phi;'') &amp;amp;plusmn; sin(''&amp;amp;theta;'') sin(''&amp;amp;phi;'')&lt;br /&gt;
&lt;br /&gt;
In addition (not really useful):&lt;br /&gt;
 tan(''&amp;amp;theta;'') = sin(''&amp;amp;theta;'') / cos(''&amp;amp;theta;'')&lt;br /&gt;
 cot(''&amp;amp;theta;'') = cos(''&amp;amp;theta;'') / sin(''&amp;amp;theta;'')&lt;br /&gt;
 sec(''&amp;amp;theta;'') = 1 / cos(''&amp;amp;theta;'')&lt;br /&gt;
 csc(''&amp;amp;theta;'') = 1 / sin(''&amp;amp;theta;'')&lt;br /&gt;
&lt;br /&gt;
== Deriving the 2D equations ==&lt;br /&gt;
&lt;br /&gt;
Simply:&amp;lt;br /&amp;gt;&lt;br /&gt;
 x² + y² = ''r''²; the basic equation of a circle with center (0,0)&lt;br /&gt;
 x² + y² + z² = ''r''²; the basic equation of a sphere with center (0,0,0)&lt;br /&gt;
 sin²(''&amp;amp;theta;'') + cos²(''&amp;amp;theta;'') = 1&lt;br /&gt;
&lt;br /&gt;
 arctan(y/x) = ''&amp;amp;theta;''; arctan() being the inverse of tangent&lt;br /&gt;
 tan(arctan(y/x)) = tan(''&amp;amp;theta;'')&lt;br /&gt;
 y/x = tan(''&amp;amp;theta;'')&lt;br /&gt;
 y/x = ''r'' sin(''&amp;amp;theta;'') / ''r'' cos(''&amp;amp;theta;'')&lt;br /&gt;
&lt;br /&gt;
Thus,&amp;lt;br /&amp;gt;&lt;br /&gt;
 ''r'' sin(''&amp;amp;theta;'') = y&lt;br /&gt;
 ''r'' cos(''&amp;amp;theta;'') = x&lt;br /&gt;
&lt;br /&gt;
Likewise,&lt;br /&gt;
 sin(''&amp;amp;theta;'') = y / ''r''&lt;br /&gt;
 cos(''&amp;amp;theta;'') = x / ''r''&lt;br /&gt;
&lt;br /&gt;
Plugging into the circle equation, we get&lt;br /&gt;
 ''r''² = ''r''² cos²(''&amp;amp;theta;'') + ''r''² sin²(''&amp;amp;theta;'')&lt;br /&gt;
&lt;br /&gt;
Compare:&lt;br /&gt;
 &amp;amp;radic;(a² + b²) = c (the distance formula)&lt;br /&gt;
 x² + y² = ''r''² (established as the equation of a circle)&lt;br /&gt;
&lt;br /&gt;
 &amp;amp;radic;(a² + b²) = c&lt;br /&gt;
 ( &amp;amp;radic;(a² + b²) )² = c²&lt;br /&gt;
 a² + b² = c²&lt;br /&gt;
&lt;br /&gt;
== Rotation on a single plane ==&lt;br /&gt;
&lt;br /&gt;
Think of a circle with some radius, ''r'', and a point somewhere on it. This circle is a two-dimensional figure on the xy [or y(x)] plane. The angle between 0º and the point is ''&amp;amp;theta;''. &amp;lt;br /&amp;gt;&lt;br /&gt;
Trigonometric functions sine and cosine are specific to determine x and y values according the the angle passed as its parameter. &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To keep things simple, we will rotate about the (invisible) z-axis. In doing so, x and y are changing. Any z values that a point may have remain constant. ''&amp;amp;phi;'' is a second angle, representing the amount of rotation.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 y = ''r'' sin(''&amp;amp;theta;''), so,&lt;br /&gt;
 y = ''r'' sin(''&amp;amp;theta;'' + ''&amp;amp;phi;'')&lt;br /&gt;
 y = ''r'' ( sin(''&amp;amp;theta;'') cos(''&amp;amp;phi;'') + cos(''&amp;amp;theta;'') sin(''&amp;amp;phi;'') )&lt;br /&gt;
 y = ''r'' sin(''&amp;amp;theta;'') cos(''&amp;amp;phi;'') + ''r'' cos(''&amp;amp;theta;'') sin(''&amp;amp;phi;'')&lt;br /&gt;
Using substitutions form above, we can simplify to&amp;lt;br /&amp;gt;&lt;br /&gt;
 y = y cos(''&amp;amp;phi;'') + x sin(''&amp;amp;phi;'')&lt;br /&gt;
&lt;br /&gt;
Alternatively,&amp;lt;br /&amp;gt;&lt;br /&gt;
 x = ''r'' cos(''&amp;amp;theta;'')&lt;br /&gt;
 x = ''r'' cos(''&amp;amp;theta;'' + ''&amp;amp;phi;'')&lt;br /&gt;
 x = ''r'' ( cos(''&amp;amp;theta;'') cos(''&amp;amp;phi;'') - sin(''&amp;amp;theta;'') sin(''&amp;amp;phi;'') )&lt;br /&gt;
 x = ''r'' cos(''&amp;amp;theta;'') cos(''&amp;amp;phi;'') - ''r'' sin(''&amp;amp;theta;'') sin(''&amp;amp;phi;'')&lt;br /&gt;
 x = x cos(''&amp;amp;phi;'') - y sin(''&amp;amp;phi;'')&lt;br /&gt;
&lt;br /&gt;
== Deriving the 3D equations ==&lt;br /&gt;
[[Image:Pointonsphere.png|thumb|right|This image shows how to determine the cartesian coordinates of a point on a sphere in terms of sine and cosine. The point is at the upper tip of the green triangle.]]&lt;br /&gt;
As above, we can change the sphere's equation into a series of distance formulas&lt;br /&gt;
 x² + y² + z² = ''r''²&lt;br /&gt;
 ( &amp;amp;radic;(x² + y²) )² + z² = ''r''²	 &lt;br /&gt;
 ( &amp;amp;radic;( ( &amp;amp;radic;(x² + y²) )² + z² ) )² = ''r''²&lt;br /&gt;
 &amp;amp;radic;( x² + y² + z² ) = ''r''&lt;br /&gt;
 ''r''&amp;amp;radic;( ( sin²(''&amp;amp;theta;'') + cos²(''&amp;amp;theta;'') ) sin²(''&amp;amp;phi;'') + cos²(''&amp;amp;phi;'') ) = ''r''&lt;br /&gt;
 &amp;amp;radic;( ( &amp;amp;radic;( sin²(''&amp;amp;theta;'') + cos²(''&amp;amp;theta;'') ) )² sin²(''&amp;amp;phi;'') + cos²(''&amp;amp;phi;'') ) = 1&lt;br /&gt;
 ( sin²(''&amp;amp;theta;'') + cos²(''&amp;amp;theta;'') )² sin²(''&amp;amp;phi;'') + cos²(''&amp;amp;phi;'') = 1&lt;br /&gt;
 sin²(''&amp;amp;theta;'') sin²(''&amp;amp;phi;'') + cos²(''&amp;amp;theta;'') sin²(''&amp;amp;phi;'') + cos²(''&amp;amp;phi;'') = 1&lt;br /&gt;
&lt;br /&gt;
Comparing with the original equation we can split it up and get individual equations for x,y, and z.&lt;br /&gt;
 y = sin(''&amp;amp;theta;'') sin(''&amp;amp;phi;'') &amp;lt;sup&amp;gt;(1)&amp;lt;/sup&amp;gt;&lt;br /&gt;
 x = cos(''&amp;amp;theta;'') sin(''&amp;amp;phi;'') &amp;lt;sup&amp;gt;(1)&amp;lt;/sup&amp;gt;&lt;br /&gt;
 z = cos(''&amp;amp;phi;'')&lt;br /&gt;
&lt;br /&gt;
The equation is&lt;br /&gt;
 ( sin²(''&amp;amp;theta;'') + cos²(''&amp;amp;theta;'') ) ( sin²(''&amp;amp;phi;'') + cos²(''&amp;amp;phi;'') ) = 1&lt;br /&gt;
&lt;br /&gt;
So, why doesn't the ( sin²(''&amp;amp;theta;'') + cos²(''&amp;amp;theta;'') ) distribute to the cos²(''&amp;amp;phi;'')? If you'll recall, ( sin²(''&amp;amp;theta;'') + cos²(''&amp;amp;theta;'') ) = 1, so it ''could be'' that it was. But also, it was left out so that there were only 3 terms as opposed to 4 (We only want three: x, y, and z!).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr width=&amp;quot;33%&amp;quot; NOSHADE&amp;gt;&lt;br /&gt;
&amp;lt;sup&amp;gt;(1)&amp;lt;/sup&amp;gt; The portion used contained the original x or y equation, so was split up to match, but it doesn't matter in the end.&lt;br /&gt;
&lt;br /&gt;
== Rotation on three planes ==&lt;br /&gt;
&lt;br /&gt;
Now in three dimensions:&amp;lt;br /&amp;gt;&lt;br /&gt;
Imagine three planes that intersect: xy [y(x)], yz [z(y)], zx [x(z)] (using these names helps remember the order of calculations if re-writing the script... you'll see). &amp;lt;br /&amp;gt;&lt;br /&gt;
For this, instead of merely one rotation angle, we will need three (''&amp;amp;alpha;'', ''&amp;amp;beta;'', and ''&amp;amp;gamma;''). Also, we will need to replace the simple x and y with their three-dimensional counterparts and add a z (To begin, ''f'' = ''f''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, where ''f'' is a function, x, y, or z).&amp;lt;br /&amp;gt;&lt;br /&gt;
 x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = ''r'' sin(''&amp;amp;alpha;'') cos(''&amp;amp;beta;'')&lt;br /&gt;
 y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = ''r'' sin(''&amp;amp;alpha;'') sin(''&amp;amp;beta;'')&lt;br /&gt;
 z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = ''r'' cos(''&amp;amp;alpha;'')&lt;br /&gt;
&lt;br /&gt;
About the x-axis:&amp;lt;br /&amp;gt;&lt;br /&gt;
Finally, rotate our three planes to replace z with x, y with z, and x with y.&amp;lt;br /&amp;gt;&lt;br /&gt;
 nz = z cos(''&amp;amp;beta;'') + y sin(''&amp;amp;beta;'')&lt;br /&gt;
 ny = y cos(''&amp;amp;beta;'') - z sin(''&amp;amp;beta;'')&lt;br /&gt;
Note how as the axes are switched, the x, y, and z or replaced respectively from the 2D rotation equations!&lt;br /&gt;
&lt;br /&gt;
We then replace y with ny and z with nz. So in a sense,&amp;lt;br /&amp;gt;&lt;br /&gt;
 z = nz&lt;br /&gt;
 y = ny&lt;br /&gt;
&lt;br /&gt;
About the y-axis:&amp;lt;br /&amp;gt;&lt;br /&gt;
Now imagine the 3 planes rotate forward 90º and 90º to the left. The z has taken the place of the x, x in the stead of y, and y in that of z. The idea of this rotation is now just like that above, but y is constant.&amp;lt;br /&amp;gt;&lt;br /&gt;
 nx = x cos(''&amp;amp;alpha;'') + z sin(''&amp;amp;alpha;'')&lt;br /&gt;
 nz = z cos(''&amp;amp;alpha;'') - x sin(''&amp;amp;alpha;'')&lt;br /&gt;
&lt;br /&gt;
 x = nx&lt;br /&gt;
&lt;br /&gt;
The two-dimensions calculations work for rotations about the z-axis.&amp;lt;br /&amp;gt;&lt;br /&gt;
About the z-axis:&amp;lt;br /&amp;gt;&lt;br /&gt;
 ny = y cos(''&amp;amp;gamma;'') + x sin(''&amp;amp;gamma;'')&lt;br /&gt;
 nx = x cos(''&amp;amp;gamma;'') - y sin(''&amp;amp;gamma;'')&lt;br /&gt;
&lt;br /&gt;
We expand to simplify:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 x = x cos(''&amp;amp;gamma;'') - y sin(''&amp;amp;gamma;'')&lt;br /&gt;
 x = ( x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;alpha;'') + ( z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;beta;'') + y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sin(''&amp;amp;beta;'') ) sin(''&amp;amp;alpha;'') ) cos(''&amp;amp;gamma;'') - ( y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;beta;'') - z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sin(''&amp;amp;beta;'') ) sin(''&amp;amp;gamma;'')&lt;br /&gt;
 x = x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;alpha;'') cos(''&amp;amp;gamma;'') + z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;beta;'') sin(''&amp;amp;alpha;'') cos(''&amp;amp;gamma;'') + y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sin(''&amp;amp;beta;'') sin(''&amp;amp;alpha;'') cos(''&amp;amp;gamma;'') - y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;beta;'') sin(''&amp;amp;gamma;'') + z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sin(''&amp;amp;beta;'') sin(''&amp;amp;gamma;'')&lt;br /&gt;
 x = x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;alpha;'') cos(''&amp;amp;gamma;'') + y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; ( sin(''&amp;amp;beta;'') sin(''&amp;amp;alpha;'') cos(''&amp;amp;gamma;'') - cos(''&amp;amp;beta;'') sin(''&amp;amp;gamma;'') ) + z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; ( cos(''&amp;amp;beta;'') sin(''&amp;amp;alpha;'') cos(''&amp;amp;gamma;'') + sin(''&amp;amp;beta;'') sin(''&amp;amp;gamma;'') )&lt;br /&gt;
&lt;br /&gt;
 y = y cos(''&amp;amp;gamma;'') + x sin(''&amp;amp;gamma;'')&lt;br /&gt;
 y = ( y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;beta;'') - z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sin(''&amp;amp;beta;'') ) cos(''&amp;amp;gamma;'') +  ( x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;alpha;'') + ( z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;beta;'') + y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sin(''&amp;amp;beta;'') ) sin(''&amp;amp;alpha;'') ) sin(''&amp;amp;gamma;'')&lt;br /&gt;
 y = y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;beta;'') cos(''&amp;amp;gamma;'') - z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sin(''&amp;amp;beta;'') cos(''&amp;amp;gamma;'') + x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;alpha;'') sin(''&amp;amp;gamma;'') + z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;beta;'') sin(''&amp;amp;alpha;'') sin(''&amp;amp;gamma;'') + y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sin(''&amp;amp;beta;'') sin(''&amp;amp;alpha;'') sin(''&amp;amp;gamma;'')&lt;br /&gt;
 y = x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;alpha;'') sin(''&amp;amp;gamma;'') + y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; ( cos(''&amp;amp;beta;'') cos(''&amp;amp;gamma;'') + sin(''&amp;amp;beta;'') sin(''&amp;amp;alpha;'') sin(''&amp;amp;gamma;'') ) + z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; ( -sin(''&amp;amp;beta;'') cos(''&amp;amp;gamma;'') + cos(''&amp;amp;beta;'') sin(''&amp;amp;alpha;'') sin(''&amp;amp;gamma;'') )&lt;br /&gt;
&lt;br /&gt;
 z = z cos(''&amp;amp;alpha;'') - x sin(''&amp;amp;alpha;'')&lt;br /&gt;
 z = ( z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;beta;'') + y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sin(''&amp;amp;beta;'') ) cos(''&amp;amp;alpha;'') - x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sin(''&amp;amp;alpha;'')&lt;br /&gt;
 z = z&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; cos(''&amp;amp;beta;'') cos(''&amp;amp;alpha;'') + y&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sin(''&amp;amp;beta;'') cos(''&amp;amp;alpha;'') - x&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; sin(''&amp;amp;alpha;'')&lt;br /&gt;
&lt;br /&gt;
As is, the object will display in an orthographic projection, which means that z has no bearing on the perspective. To give a perspective projection, the x and y can be distorted by some equation like:&amp;lt;br /&amp;gt;&lt;br /&gt;
 x = centerx + h / (h-z)&lt;br /&gt;
 y = centery - h / (h-z)&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[http://forums.graalonline.com/forums/showthread.php?t=54167 Amon-ra's explanation and models (continues on p. 2)]&lt;/div&gt;</summary>
		<author><name>Tolnaftate2004</name></author>
	</entry>
</feed>