Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Recent
    • Tags
    • Users
    • Login

    Spline Question

    Scheduled Pinned Locked Moved SDK Help
    15 Posts 0 Posters 1.0k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H Offline
      Helper
      last edited by

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

      On 26/10/2011 at 05:28, xxxxxxxx wrote:

      Thanks Dan,  so for the direction vector, is the .707 the degrees in radians?
       
      ~Shawn

      1 Reply Last reply Reply Quote 0
      • H Offline
        Helper
        last edited by

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

        On 26/10/2011 at 05:47, xxxxxxxx wrote:

        Yes, radians. 🙂

        1 Reply Last reply Reply Quote 0
        • H Offline
          Helper
          last edited by

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

          On 26/10/2011 at 05:50, xxxxxxxx wrote:

          Howdy,

          Actually, it's simply a normalized vector (length =1) at 45º.

          If you look at an X,Y graph, a line drawn on that graph representing 45º would have an equal X and Y value. The X, Y and the 45º line will make a right triangle, with the line being the hypotenuse. So we use the sin and cos to figure the X and Y values if the hypotenuse is 1 (normalized) :
          X = cos(45) * 1
          Y = sin(45) * 1

          Adios,
          Cactus Dan

          1 Reply Last reply Reply Quote 0
          • H Offline
            Helper
            last edited by

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

            On 26/10/2011 at 05:59, xxxxxxxx wrote:

            okay so if I want to use a different angle than 45   I simply do :

            x = cos(angle) * 1
            y = sin(angle) * 1

            to get my direction vector then perform the formula mentioned above?

            thanks again guys

            1 Reply Last reply Reply Quote 0
            • H Offline
              Helper
              last edited by

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

              On 26/10/2011 at 06:05, xxxxxxxx wrote:

              Howdy,

              Yes, as long as you're restricting that to the XY plane.

              Adios,
              Cactus Dan

              1 Reply Last reply Reply Quote 0
              • H Offline
                Helper
                last edited by

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

                On 26/10/2011 at 06:12, xxxxxxxx wrote:

                Howdy,

                Or it might be easier for you to build a rotation matrix using HPBToMatrix() and then use the X axis component of that matrix, which should be normalized.

                Edit:
                Remember to rotate the X axis 45º and keep it on the XY plane, you'd rotate the matrix on the Z axis.
                So, your HPB vector would be:

                Vector angle = Vector(0.0, 0.0, 0.707);
                

                Adios,
                Cactus Dan

                1 Reply Last reply Reply Quote 0
                • H Offline
                  Helper
                  last edited by

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

                  On 26/10/2011 at 06:17, xxxxxxxx wrote:

                  so how does this change if I want to rotate a certain degree along any arbitrary axis? So if it wasn't restricted to the xy axis but any random 45 degree angle?  🙂  thanks so much by the way.  You are helping me a ton..   I have been studying trigonometry more lately but still need to lean more.  Lol

                  1 Reply Last reply Reply Quote 0
                  • H Offline
                    Helper
                    last edited by

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

                    On 26/10/2011 at 14:29, xxxxxxxx wrote:

                    Okay how would I set the normal of the point to face in the direction of angle I gave..   So that I can get this effect...

                    _ _
                           /
                         /
                        |
                        |
                    Ultimately I want to curve the spline,  so I want to draw a point,  then draw the next point a certain angle and distance away from the previous point, then draw the next point a certain distance and angle away from its previous point,   etc..  So that I get a curve over the points.  🙂   I want to do this manually..  🙂

                    Thanks in advance.  🙂  Shawn

                    1 Reply Last reply Reply Quote 0
                    • H Offline
                      Helper
                      last edited by

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

                      On 26/10/2011 at 15:00, xxxxxxxx wrote:

                      Howdy,

                      Well, as I suggested, using the HPBToMatrix() function is probably the easiest to understand. If you keep track of your previous matrix it will be simple to do this:

                      angleMatrix = previousMatrix * HPBToMatrix(angle);
                      previousMatrix = angleMatrix;
                      

                      A matrix times a rotation matrix will rotate that matrix by the amount of rotation in the rotation matrix. But also remember that matrix multiplication is not commutative. The rotation matrix must be on the right side of the existing matrix:
                      finalMatrix = existingMatrix * rotationMatrix

                      Adios,
                      Cactus Dan

                      1 Reply Last reply Reply Quote 0
                      • H Offline
                        Helper
                        last edited by

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

                        On 26/10/2011 at 15:06, xxxxxxxx wrote:

                        Thanks Dan..   I had just sent you an email before I saw this post so sorry for the double question..   Thanks

                        Shawn

                        1 Reply Last reply Reply Quote 0
                        • H Offline
                          Helper
                          last edited by

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

                          On 26/10/2011 at 15:24, xxxxxxxx wrote:

                          okay so after I make the Matrix do I set the point vector equal to

                          points = points + m.v3 * length

                          ?

                          Here's what i am trying..   but it's not right,.,,   lol
                          __

                            
                          		Vector A = Vector(0.0, 0.0, Rad(angle));
                          		//Vector dirV = Vector(x, y, z);
                          		
                          		Matrix m = HPBToMatrix(A, ROTATIONORDER_XYZGLOBAL);
                            
                          		points[i] = lastpos + m.v3 * segSize;
                          

                          1 Reply Last reply Reply Quote 0
                          • H Offline
                            Helper
                            last edited by

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

                            On 26/10/2011 at 15:31, xxxxxxxx wrote:

                            Howdy,

                            Maybe this file will help explain it:
                            http://www.cactus3d.com/RotationMatrix.zip

                            Adios,
                            Cactus Dan

                            1 Reply Last reply Reply Quote 0
                            • H Offline
                              Helper
                              last edited by

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

                              On 26/10/2011 at 16:34, xxxxxxxx wrote:

                              Yes that helps a lot thank you.  😄   Sorry I meant to reply quicker but then my mother skyped me  HAHAHA..  Thanks Dan.

                              ~Shawn

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post