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 zu diesem Kommentar
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 zu diesem Kommentar
Share on other sites

I don't know Away3D, so i can't help you, sorry. But of course they can use a different coordinate system than we. If it works with the changes you did it probably only means that the positive facing direction of some of the axis is different, which shouldn't be a problem (i.e. you probably did the right thing).

Link zu diesem Kommentar
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.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...