<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Rotating an instance with the y axis</title>
	<atom:link href="http://blog.jactionscripters.com/2009/12/05/rotating-an-instance-with-the-y-axis/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jactionscripters.com/2009/12/05/rotating-an-instance-with-the-y-axis/</link>
	<description>More than 20 Japanese flash coders share the blog/ You will be junkie for this crazy Japanese Flash news</description>
	<lastBuildDate>Fri, 07 Oct 2011 13:57:59 +0900</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: smarkets</title>
		<link>http://blog.jactionscripters.com/2009/12/05/rotating-an-instance-with-the-y-axis/comment-page-1/#comment-5097</link>
		<dc:creator>smarkets</dc:creator>
		<pubDate>Sun, 20 Dec 2009 23:20:04 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jactionscripters.com/?p=1017#comment-5097</guid>
		<description>hi,
  i looked into this and might give some insight. you will notice that setting the rotation (for any a) to (0,a,0) and (180,180-a,180) will always result in the same rotation. flash internally uses a 4x4 matrix to describe the rotation. Setting it with rotation angles creates one of those. decompose does no longer know about those angles but will return some angles that would result in the same matrix if plugged back in. it can not know if you got to the matrix the (0,a,0) or the (180,180-a,180) way. Quite frankly, using three angles for rotation (they are also called Euler angles for reference) gets complicated and confusing very quickly and should only be used for simple cases. For easier to follow math you should use 4x4 matrices directly.</description>
		<content:encoded><![CDATA[<p>hi,<br />
  i looked into this and might give some insight. you will notice that setting the rotation (for any a) to (0,a,0) and (180,180-a,180) will always result in the same rotation. flash internally uses a 4&#215;4 matrix to describe the rotation. Setting it with rotation angles creates one of those. decompose does no longer know about those angles but will return some angles that would result in the same matrix if plugged back in. it can not know if you got to the matrix the (0,a,0) or the (180,180-a,180) way. Quite frankly, using three angles for rotation (they are also called Euler angles for reference) gets complicated and confusing very quickly and should only be used for simple cases. For easier to follow math you should use 4&#215;4 matrices directly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: chris nuuja</title>
		<link>http://blog.jactionscripters.com/2009/12/05/rotating-an-instance-with-the-y-axis/comment-page-1/#comment-4991</link>
		<dc:creator>chris nuuja</dc:creator>
		<pubDate>Wed, 16 Dec 2009 23:36:45 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jactionscripters.com/?p=1017#comment-4991</guid>
		<description>You are both right :)   The fact that its a bug can be demonstrated by manually setting the rotation of the object to 0,100,0 and 180,80,180.  Visually, they do not represent the same orientation.

But makc is right that there are many multiples of different x,y,z rotations which can express the same orientation.   That&#039;s one reason why people like Quaternions or axis/Angle representations.   The matrix (and therefore the decompose method) has no knowledge of what exact sequence of changes you made resulted in this orientation, it has to pick a plausible one.  It seems to be returning the wrong values here, but you should not expect that it necessarily has to return 0,100,0 as the value. 

To understand what we&#039;re doing under the hood, the algorithm is based on graphics gems 3, III.3, &quot;decomposing linear and affine transformations&quot;</description>
		<content:encoded><![CDATA[<p>You are both right <img src='http://blog.jactionscripters.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />    The fact that its a bug can be demonstrated by manually setting the rotation of the object to 0,100,0 and 180,80,180.  Visually, they do not represent the same orientation.</p>
<p>But makc is right that there are many multiples of different x,y,z rotations which can express the same orientation.   That&#8217;s one reason why people like Quaternions or axis/Angle representations.   The matrix (and therefore the decompose method) has no knowledge of what exact sequence of changes you made resulted in this orientation, it has to pick a plausible one.  It seems to be returning the wrong values here, but you should not expect that it necessarily has to return 0,100,0 as the value. </p>
<p>To understand what we&#8217;re doing under the hood, the algorithm is based on graphics gems 3, III.3, &#8220;decomposing linear and affine transformations&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fumio Nonaka</title>
		<link>http://blog.jactionscripters.com/2009/12/05/rotating-an-instance-with-the-y-axis/comment-page-1/#comment-4713</link>
		<dc:creator>Fumio Nonaka</dc:creator>
		<pubDate>Thu, 10 Dec 2009 16:31:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jactionscripters.com/?p=1017#comment-4713</guid>
		<description>Thank you for your comment, makc.

I will still evaluate this issue as a bug. First, the operation with the y axis should not affect other axes. Second, rotation with x or z axis results the value between -180 and 180 degrees. However, the value with y axis can be set between -90 and 90 degrees. It is very difficult to explain mathematically its reason.</description>
		<content:encoded><![CDATA[<p>Thank you for your comment, makc.</p>
<p>I will still evaluate this issue as a bug. First, the operation with the y axis should not affect other axes. Second, rotation with x or z axis results the value between -180 and 180 degrees. However, the value with y axis can be set between -90 and 90 degrees. It is very difficult to explain mathematically its reason.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: makc</title>
		<link>http://blog.jactionscripters.com/2009/12/05/rotating-an-instance-with-the-y-axis/comment-page-1/#comment-4580</link>
		<dc:creator>makc</dc:creator>
		<pubDate>Sat, 05 Dec 2009 22:39:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.jactionscripters.com/?p=1017#comment-4580</guid>
		<description>I suspect it is not, it is just that multiple rotationX/Y/Z combinations describe the same orientation. This is not that unexpected, if you think about it; that&#039;s the case even in 2D case, where there is only one rotation. E.g., run this code:

rotation = 800; trace (rotation); // traces 80 (10 times less :)

That is because values 80, 440, 800 etc all represent the same orientation, and you can only return one of these values when asked for it.</description>
		<content:encoded><![CDATA[<p>I suspect it is not, it is just that multiple rotationX/Y/Z combinations describe the same orientation. This is not that unexpected, if you think about it; that&#8217;s the case even in 2D case, where there is only one rotation. E.g., run this code:</p>
<p>rotation = 800; trace (rotation); // traces 80 (10 times less <img src='http://blog.jactionscripters.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>That is because values 80, 440, 800 etc all represent the same orientation, and you can only return one of these values when asked for it.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

