Forum
    • Categories
    • Register
    • Login

    Rotation around center of mass is weird.

    Scheduled Pinned Locked Moved Unsolved Scripting
    4 Posts 2 Posters 25 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.
    • ChazroxC
      Chazrox
      last edited by

      Im drawing a star and trying to rotate it around its center of mass without including the gradient in the rotation. At lower point counts its alot more obvious whats going on. For some reason at higher point counts its stable. hmmmm 🤔

      If anyone else wants to give it a go.. Thank you!

      MyKnobLaf.registerFunction("drawRotarySlider", function(g, obj)
      {
          var a = obj.area;
          var range = obj.max - obj.min;
          var stableSize = a[2] * (1.0 - 2.0 * 0.15);
          var ox = a[0] + (a[2] - stableSize) / 2;
          var oy = a[1] + (a[2] - stableSize) / 2;
          var cx = ox + stableSize / 2;
          var cy = oy + stableSize / 2;
          var sw = stableSize / 200.0;
          var startOffset = 2.5;
          var totalSweep = 2.0 * startOffset;
          var endOffset = -startOffset + totalSweep * (obj.value - obj.min) / range;
      
          // ============ COLOUR CONTROL ============
          // -- Star Body 3 --
          var cStarBody3Top = 0xff888888;
          var cStarBody3Bot = 0xff333333;
      
          // -- starBody3 --
          var starBody3Size = stableSize * 0.8;
          var starBody3Star = Content.createPath();
          starBody3Star.addStar(
              [0.5, 0.5],
              3,
              0.42,
              0.5,
              endOffset
          );
          starBody3Star.roundCorners(1);
          var starBody3Area = [cx - starBody3Size * 0.5, cy - starBody3Size * 0.5, starBody3Size, starBody3Size];
          g.setGradientFill([cStarBody3Top, cx, cy - starBody3Size * 0.5 + starBody3Size * 0.5 - starBody3Size * 0.5, cStarBody3Bot, cx, cy + starBody3Size * 0.5 + starBody3Size * 0.5 - starBody3Size * 0.5, false]);
          g.fillPath(starBody3Star, starBody3Area);
      
      });
      

      I Cant figure out why the shape warbles when

      ustkU 3 Replies Last reply Reply Quote 0
      • ustkU
        ustk @Chazrox
        last edited by ustk

        @Chazrox you need to use starBody3Star.getBounds(multiplier) as drawing area. Complex shapes manage their own area, that is dynamic so it can hold the entire shape without being distorted.
        A star doesn't fit in the same square as you rotate it. It needs to grow, shrink, and translate dynamically.
        In your code you force it to draw in a fix square, so the shape adapts...

        Hise made me an F5 dude, any other app just suffers...

        1 Reply Last reply Reply Quote 2
        • ustkU
          ustk @Chazrox
          last edited by ustk

          @Chazrox

          modvalue.gif

          HiseSnippet 1490.3ocsW0raaaDDdosYSrZSPCPO0SK7IYGIZJZKGaXDDG+iZMh+qVNAsHvHcE4RoslZWAxUwRsn.8cnuL8XN1mhh9.zC8RO2N6RJxk1JNIFM7fD2Y9lc9lY2Y4rmDK7oIIhXjUkyFOfhr9L61i4xd6ziv3n82EYce6CIIRZLNUz1iGPRRnAHKqY+Jk.q4mCoe96mrMIhv8oEhPnWHX9zCX8YxBoC15YrnnVj.5Yr9FnWcq88E7cDQhg.el01EMf3eAoK8HhB1L1nuljzCYsj8F999gqtZnWC+Uar55q0YiF9g9c771v8QAdzfNq0gR2X8Pj0mrW.SJhaKIRZBxZtsEAia2SbIO0Aufkv5DQUCZfZCdNUbKQTfJDURQ6ziEEbxjDUBBlkSJRayll19B6CYArb4EouOWq.WXgYBzZlxza1RzqgI8bMn2TnjkAklKkROvtseLafrPihOep89bX0Lj.qSlTIEKZle8N16H.DboSexEzVwvfbKptlqaML7yhaVoBrVkHwulDieFWzoA9w3IF1kJ2QzeffCCptfV6BfEkMv6FMvagxt3vwJoGPBMrxOlBosCD9jnCDhKdJOnEkFUELT6RmDp7ZJymmLTduSTUpjOxIl1kopEZMj6KYBd0EBhIWdpPRhG2NhEPiWnFNbhxt0vhN+vhU9oJX3QEEDf8fHGBv7MykFS3coYZ5SFgqm9FiW.IQRf8AsY+nBG4kdmiWBWsgiKf0C9cIrqSilKVfWLRiy8b7CwU03qaLGKhWF6Y.drFbi2Kv9pYFl9GZxoxHTSGLmucDIWBHJqz00wsT3FKONLDVa.jdNMKTIgjcT6KozAZMpX2.cANJOHeBpaNeOzbJfrnJW+ZRzPZQdWEx5EEX0WMeKuL9wFO3cN9fie9oveGc1oGePIcSvWuNFJpiwpBZ7JvvhziRtR7JmITwf6nvv00OaNELaKjYXVQ+Tvn55EoTTlyetvrcKF4Y01j02bJHUL8p0UmPj8plskpDRGRPf5+pZUpmW55zrFL2MOuVtrUJd00YUOyQMKFjuJokj4srHrrSiEC4A6Hh4z3jpMLQ1UUBm9Uipo+k3Dw51S1MlN1DHKLc0lE.KY3ImKoUMupNdedK1HZvSgveRfSiRnl.1cLeh5eVe1PkJSJ2wWaJLJ7yiEkFHU+R+Q35WYoZIcpQU97VzTR3UFddVbNeWmP3iq5EuRIvZk4.Pd.p9zKpurZIc5kRUDNkvKOA.A27SNRq7JEbX91pEqjpSNpy4RVfr2RtNq0bQGITYkDAavBtt9FOpYM7zjt3lps74lh6LFN9q9kKtrGTMiuPUJyjXeX2aLMnx72TZ3pgdQ3lGpB9QBI8XdZTB4A7UUEFNUcpJnXQTDMdppUs6DeSFVkOreGJPR8AR4.gOoWtOA62deBlsw3mVPa.Tv2myjGOfxeaM2fxNE.5oXlLVAPk5NJteVGEoepCwfFGtistLBoIbVqbu4ep9WOA8darWIi+yu429imfd996RjDUeMYzAn3.ZrjohdqcouF5pLsKm4s2klbgTL.RR48P.888NY7nhFO+tsFWLfskdemofdT0wIlRPe.txyvUuIdptx152ggSbS5HSWb2TWbuLWb.oCMR6g6Zqe2LZ9EhgK156KbwnRtnELRRGAu+k15yrvDcoeROx.JlDPFHSPgPxWc5hYO5eH7xLz2Z3sjWZFUSSuajWWuCXn2aQvP3.ixMjqt1RlBn5qTWvpNc4IL4Xyq07+VW5uuT7A1mvj98lNGmYJbTUr9QfiY2s4d16EFBGUVPv4ra8sebtHC5TwPIi28PhLlAadrOZX+1vmz8of24b36wpMIynJORG6pFqx.sgdIzC9W3ISYC0XqLkMlnD0m3GKdke5ATpaOcWsDfSb8MMmGtxKLFW9XM8Se3xbux2u7TcMC8tsFtxs0vUusF171Z3Z2VCezs0v0e2Fptq8SGJE8SKaPnCOYO8WRrr1iq5CVuaE8efZb2RJ
          

          Hise made me an F5 dude, any other app just suffers...

          1 Reply Last reply Reply Quote 2
          • ustkU
            ustk @Chazrox
            last edited by ustk

            @Chazrox It's even more obvious with 3 branches:

            modvalue.gif

            I love this one because it reminds me of the Wankel engine 😁

            6658daf57700d0e65101e98aa6b08572.gif

            Hise made me an F5 dude, any other app just suffers...

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

            28

            Online

            2.4k

            Users

            13.8k

            Topics

            120.2k

            Posts