4
$\begingroup$

Hi I need some help with spiral to transform it between start and end point enter image description here

$\endgroup$
5
  • 1
    $\begingroup$ Do you want the rotational center of the spiral at the points, or the spiral to connect to the points? $\endgroup$
    – Robin Betts
    Commented Jun 16 at 9:13
  • $\begingroup$ Spiral to connect to points. Spiral should go from start to end point in given number of turns. $\endgroup$
    – Mateusz 88
    Commented Jun 16 at 11:46
  • 2
    $\begingroup$ @RobinBetts I reckon you're answering this? Knowing you if I post a simple answer you will resign from posting your better answer :D $\endgroup$ Commented Jun 16 at 12:43
  • $\begingroup$ Hi, Markus.. no, I haven't thought it through.. my question face-value.. very kind but usually I conclude yours are too good to follow. 👍 $\endgroup$
    – Robin Betts
    Commented Jun 16 at 14:02
  • 1
    $\begingroup$ @RobinBetts I know you're humble, that's exactly why I asked - I have no scruples like this so I feel fine giving a worse answer if it's not worse in every way ;) $\endgroup$ Commented Jun 16 at 14:10

2 Answers 2

7
$\begingroup$

Here is a "simple" solution. It just creates a spiral going upwards from one control empty "start" to another control empty "finish". It only works for full rotations.

First I have two Object Info nodes, one for the "start" empty and one for the "finish" empty. I have a Curve Spiral node with Start Radius and End Radius connected to the Group Input for more convenience setting those values outside of the nodetree. Also Rotations is connected but set the type Integer to only set full rotations. The Height is 0 m, because it will be set later by a _Set Position node.

The Location from "start" empty will first be used in a Transform Geometry node to move the spiral's starting point where the empty is. The X location has to be subtracted by the Start Radius value because the radius offsets the start point of the spiral in X direction.

Then I substract the "start" empty's Location from the "finish" one's (with the X value this time corrected by the End Radius and the difference between Start Radius and End Radius. The Z value will become the height of the spiral.

Now I use the differences in a Combine XYZ node to get the offset vector between "start" and "finish" and use them as the Offset in a Set Position node, but to not move everything I scale the vector by the Spline Parameter > Length to trnasition be spiral from "start" to "finish".

spiral setup

And here is the result:

spiral

By the way, you can use some maths on the Spline Parameter > Factor like a Power node or a Float Curve to manipulate the interpolation between start and finish if you do not want it to be a linear transition, just make sure the spiral has enough Resolution to show these manipulations properly.

variation examples

$\endgroup$
4
  • $\begingroup$ Interesting, totally not the way I went. $\endgroup$ Commented Jun 16 at 15:00
  • $\begingroup$ @MarkusvonBroady I actually think after finishing it I could have done this differently as well... since my nodetree is just doing what your first screenshot shows, just more complicated than yours :D $\endgroup$ Commented Jun 16 at 15:03
  • $\begingroup$ OK ok I can see now how my message could be seen as sarcastig, but I really didn't recognize the effect is the same - I still haven't bothered to test, but it seemed to me like your solution has less stretching going on. $\endgroup$ Commented Jun 16 at 15:42
  • 1
    $\begingroup$ @MarkusvonBroady I did not see it as sarcastic, actually after I finished my answer here I stripped it all off that Transform Geometry stuff at the beginning and used just the locations and mixing between them as well, but I did not bother to change my answer when I saw yours and realized they would be the same then. So I left it like it is, at least the last part with the interpolation can be used maybe. I think mine only looks like less stretching because I have more rotations...? $\endgroup$ Commented Jun 16 at 15:47
5
$\begingroup$

Your Map Range node suggests you want to move the endpoints to empties, and linearly interpolate the offset (by linear interpolation I mean the smooth switching between moving to Empty and Empty.001 throughout the curve, not the animation - the animation part is removed from the setup below):

However maybe you want to align without actually modifying the shape of the spiral:

Both solutions here:

Bonus:

$\endgroup$
2
  • $\begingroup$ Oh, now I realize why yours might look more stretched than mine. You are directly setting the positions of the curve points, while I'm leaving the original positions and just offset them to match the start and end points (that's why I need to offset on X by radius and only work with full rotations). $\endgroup$ Commented Jun 16 at 19:58
  • 1
    $\begingroup$ @GordonBrinkmann you're speaking about the 3rd one? I compared it with the 1st and it's clearly different, and yes, stretched. The 1st one offsets, the 3rd one lerps. $\endgroup$ Commented Jun 16 at 20:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .