Jump to content

How to save the orientation of the brick?


Fygo

Recommended Posts

Hi everybody,

 

Could somebody guide me how to save/count the orientation of the IMU Brick? Similarly to how brickv does it. I am trying to reproduce the same example with the 3D model with JS/Away3D/Actionscript. Seems to work "alright" not counting that my 3D models have different initial orientation so basically everything works the other way around (moving the brick left turns the object right, etc).

I am retrieving the quaternions periodically and then pass them to flash where I convert them to a transformation 3D matrix and apply it to the models.

Thanks in advance!

Link to comment
Share on other sites

Oh nice, thanks for that! However, still no go. I can save the position but the rotation is just broken. I guess the problem lies with the coordinate system. You are using a positive Z towards the user, is that correct? While Away3D has the positive Z facing away from the user.

 

Unfortunately I have very few knowledge about these things (shame on me!), but I assume this would completely break the rotation. Is that so? Any hint/advance how to fix it?

 

Edit:

Here is how I am solving it:

private function saveOrientation():void {
var quatString:String = ExternalInterface.call("getQuaternionString"); //from JS in format "x,y,z,w"
var quatArray:Array = quatString.split(",");
_relX = -quatArray[0];
_relY = -quatArray[1];
_relZ = quatArray[2];
_relW = quatArray[3];
}

And then upon update I use:

var quatString:String = ExternalInterface.call("getQuaternionString"); //from JS in format "x,y,z,w"
var quatArray:Array = quatString.split(",");
var x:Number = -quatArray[0];
var y:Number = -quatArray[1];
var z:Number = quatArray[2];
var w:Number = -quatArray[3]; //there is a minus here, why?

I have absolutely NO idea whether this is correct but it seems to work with a test cube. Is this approach at least remotely correct?

 

All the rest of the calculation is from the example you showed me I am just not inverting the final transformation matrix (AS3: Matrix3D objects can be initialized with a Vector of 16 Numbers, where every four elements is a column.)

Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...