Hows does Rotations work?



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 02/03/2004 at 15:23, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   8.206 
    Platform:      
    Language(s) :     C++  ;

    ---------
    Hi,
    This might be a standard maths question but I can't work it out.

    I want to simulate the rotation tool in my plugin, the problem is that I can't work out the rotation tool works.

    If I create a cube in C4D and click rotate, and rotate 30 degrees along the Bank. The cube rotates like it should, around the bank axis.
    Now I want to rotate the cube around only the pitch axis (this I want to be done through code, but using c4d as an example)
    If i use the AM and increase the Pitch field, the cube rotates around the pitch but in a wonky fashion.
    If I use the Pitch handle in the viewport, the cube rotates around the pitch axis perfectly, but all the axis values are changing.

    I want to simulate this through code, but I don't understand why it changes all the axis values, when I just want to rotate around the Pitch.

    This is probably a basic math problem, but my 3D math is quite poor and still learning it.



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 02/03/2004 at 23:54, xxxxxxxx wrote:

    I believe there's a basic explanation for this in the main C4D manual. Look for the "Use HPB" option, which is what makes C4D behave in the way you describe. (IIRC there's a picture of an airplane on the page.)



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 04/03/2004 at 15:54, xxxxxxxx wrote:

    Thanks, I found the page.

    But I'm confused how I can rotate an object with the same behaviour as the rotate tool in c4d.
    I have been experimenting with rotating, and I just can't get it to work

    My plugin is rotating an object like this (the c++ equivalent)

      
    main(doc,op)  
    {  
    var r = op->GetRotation();  
    r.y+=Radians(1);  
    op->SetRotation(r);  
    }  
    

    but if the object is rotated a few degree's on the Bank axis first, then the object will 'tumble' using the above code.

    The SDK description for BaseObject->SetRot() says:
    Set the HPB rotation of the object relative to any parent object.

    Which is why the object tumbles, how can I set the rotation of an object using the non HPB rotation system?
    (which im guessing would solve my tumble problem)


Log in to reply