OK, so I was trying to rotate a point about a smaller Circle which follows a greater Circle (carried by a PerpFrame) by evaluating the curves of the circles, but, the PointAt(t) on the smaller Circle doesn’t seem to evaluate correctly, instead it seems stuck at some (t) and then flips diagonally to the other side of the circle (see picture). Very strange behavior
To me it looks like a bug has crept into the Eval component somehow (or am I just plain stoopid?). In any case, can anyone explain what happens with the flippin’ second Eval component?
Try connect as shown in the picture below and start the Slider Animation by clicking the “Animation” option in the menu shown at the right- mouse button:
The magic essentially happens in the Follow() method. I store the Segment start and end positions in a Line, where point A stores its value in Line.From, and B stores its value in Line.To (I used A and B just to have shorter syntax, but it may appear confusing).
Anyway, each IKSegment is actually defined by that Line, which stretches between point A and B.
I separated the connecting of the segments (see ConnectToTarget()) since an IKSegment, if it is first in chain, can follow “any point”, like the mouse position or whatever, not only the previous IKSegment. Other than that, everything interesting is happening in the Follow() method. The rest (the properties etc) is just “convenience code”.
You can also drag the snake around manually by connecting the GoalPt component located in the blue round Group. Select that GoalPt component and then drag the Gumball in the Viewport, then the snake should follow your mouse moves.
Also try extend the snake, and add more or remove segments using the sliders.
OK. so when the plane doesn’t move, the method PointAt(i) works, but when constructing the Circle based on a rotating plane, then the plane axes stars flippin’like crazy, and so does the Circle which was constructed from the plane, and in turn, so does the Eval component. An evil chain of events.
That’s another animal. Use Dot, Cross and the likes (against C1 plane ZAxis and/or some other “datum” thingy [required anyway if you want to control the C1 seam etc etc]) and put things where you want them to be.
Same type of control is required if you want to to do recursion: C1 yield a rotating C2 that yield a rotating C3 … that yield a rotating Cn , that yield a rotating point.At … the sum of them yield a freaky nurbs.