#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

# Dot Analysis - Visual Simulator (Need help creating the code)

edited May 2021 in General Posts: 58

Hello everybody,

I was hoping someone would know how to create the following code -> because i just don’t know how.

I am conducting a visual analysis of motion by using dots.
The image I attached expresses what i am trying to produce with the code - which is explained below:

1. the red dot moves along the negative of the x,y axis on the yellow arrow
2. the red dot then returns back to its origin (depicted by the yellow curved arrow - yellow arrow is not part of code)
3. the red dot is to repeat this 25% of the time (the time being 7 seconds) so 25% of every 7 seconds
4. all the gray dots are slowly moving, amongst themselves in small circles, constantly at all times (depicted by the blue arrow) sort of like an orbit
Tagged:

• Posts: 911

Here is a starter for 10. Probably not exactly what you were after, but should give you enough of an idea to get going

``````-- Dots
viewer.mode=FULLSCREEN
-- Use this function to perform your initial setup
function setup()
redDot=vec2(WIDTH/2,HEIGHT/2) --initial position of red dot
dotSize=100 --size of dots
redDotSpd=3 --speed of red dot
redDotTravel=0 --how far the red dot has travelled
redDotTravelLimit=100 --the limit after which the red dot disappears
--adjust the redDotSpd and RedDotTravel to be 1/4 of 7s

greyDots={vec2(200,400),vec2(300,600),vec2(400,800),vec2(700,900),vec2(900,800),vec2(1100,600),vec2(800,300)} --centre of each grey dot
greyDotSpd=3 --orbital speed of grey dots
greyOrbitSize=20 --the size of the grey dot orbit
end

-- This function gets called once every frame
function draw()
-- This sets a dark background color
background(40, 40, 50)
noStroke()
redDotTravel = redDotTravel + 1
fill(255,0,0)

ellipse(redDot.x,redDot.y,dotSize)
if redDotTravel<redDotTravelLimit then
redDot.x = redDot.x - redDotSpd
redDot.y = redDot.y - redDotSpd
else
redDot=vec2(WIDTH/2,HEIGHT/2)
end
if redDotTravel>4*redDotTravelLimit then

redDotTravel=0
end
fill(200)
for i, g in pairs(greyDots) do
ellipse(g.x+greyOrbitSize*math.sin(ElapsedTime*greyDotSpd),g.y+greyOrbitSize*math.cos(ElapsedTime*greyDotSpd),dotSize)
end

end

``````
• Posts: 58

@West
Thank you!

Yes this will definitely set me on my path.

I will try to get each dot to move individually, within its own orbit.. instead of all in unified movement.

This is perfect! thank you - thank you   