Skip to main content
AldineJade
Participating Frequently
July 12, 2024
Question

Rotating Circle Equal Spacing

  • July 12, 2024
  • 2 replies
  • 855 views

Hi everyone. Can someone help me? Beginner here. I'm having trouble adding equal space on my dots rotating in circle path. I have a total of 16 dots

I have a code each dots "thisComp.layer("Dot1").transform.position.valueAtTime(time-((index-3)/5));" 
Dot1 is the leader that has the positions and the other dots follow along with it

Thank you in advance! 
 

This topic has been closed for replies.

2 replies

Legend
July 12, 2024

Maybe try something like this:

AldineJade
Participating Frequently
July 12, 2024

Hi @Airweb_AE thanks a lot! this really helps me!!! You're my savior!!!  My only problem is how can I change the start of the position of the dot? 

Thank you so much!!! 

AldineJade
Participating Frequently
July 16, 2024

To start the animation on the curve, it's the same thing.

The position expression on the red ball determines the speed.

You just need to apply this expression by taking the path of the curve instead of the oval and remove the part that loops the animation (% Math.floor(dur / laps)).

Then observe the time it takes for the red ball to travel along the curve, in my case, it takes 5 seconds, so I can start the animation on the oval from 5 seconds (150 frames).


Can you help again @Airweb_AE , so I added a new path and this is how it looks now. I made adjustment on the code the file you've sent. I want the dots to move along the Line2 (the one that forms 8). I'm trying to configure it but I'm making it worst. Hope you can help me again. Thank you so much! 


next = framesToTime(60); // Time when transition happens to ovalPath
next2 = framesToTime(120); // Time when transition happens to line2Path
dur = 5; // Total duration of the animation
laps = 2; // Number of laps on the oval path

if (time >= next2) {
// Calculate the time on the line2 path after the transition
elapsedTime = time - next2;
// Normalize the time value to loop smoothly
t = linear(elapsedTime, 0, dur, 0, 1);
// Get the point on the line2 path
line2Path = thisComp.layer("Line2").content("Shape 1").content("Path 1").path;
line2Path.pointOnPath(t);
} else if (time >= next) {
// Calculate the time on the oval path after the transition
elapsedTime = time - next;
// Normalize the time value to loop smoothly
t = linear(elapsedTime, 0, dur, 0, 1);
// Get the point on the oval path
ovalPath = thisComp.layer("Oval").content("Shape 1").content("Path 1").path;
ovalPath.pointOnPath(t);
} else {
// Calculate the time on the line path
t = linear(time, 0, next, 0, 1);
// Get the point on the line path
linePath = thisComp.layer("Line").content("Shape 1").content("Path 1").path;
linePath.pointOnPath(t);
}



 

Inspiring
July 12, 2024

you can probably try using a text layer, just adding bullet points and making the font size bigger. Then add a mask to your text layer and tweak its position with offset.

Here's a link to a video by Riccardo Agostinelli where he explains a similar process.

https://www.instagram.com/p/C0jzg2xtl9g/

 

Let me know if that works, otherwise, we can try something else.