Location on a circle at time t.

  • Thread starter Thread starter NCGrimbo
  • Start date Start date
  • Tags Tags
    Circle Time
AI Thread Summary
The discussion focuses on calculating the position of an object moving in a circular path given its radius, starting coordinates, and velocity. The user initially struggles with the formulas for determining the final x and y coordinates after a set time. A key point is the need to adjust the formulas to account for a center point that is not at the origin, which was resolved with updated equations. The user successfully implements the corrected formulas in their code, allowing for accurate position tracking of the object around the specified center. The conversation highlights the importance of proper coordinate adjustments in circular motion calculations.
NCGrimbo
Messages
4
Reaction score
0
Hi all. I'm doing a little program for my own fun and I'm having troubles with the physics. I need to be able to calculate where an object is on a circle after an amount of time has passed. I know the radius (R) of the circle, the starting x (Sx) and y (Sy) positions, and the velocity (v). I'd like to be able to generated the finishing x (Fx) and y (Fy) positions. The velocity and radius are constant for each object, but I have several objects rotating around a central point. It's similar to planets orbiting the sun, but I don't need to have any gravitational interaction between the objects. I also know the mass of the objects (m) if I need that for calculating.

Can anyone give me a formula or set of formulas to solve for Fx,Fy?

Thanks!
 
Physics news on Phys.org
In terms of the variables given it should be:

<br /> \begin{align*}<br /> F_x &amp;= S_x\cos(vt/R) - S_y\sin(vt/R) \\<br /> F_y &amp;= S_x\sin(vt/R) + S_y\cos(vt/R) <br /> \end{align*}<br />
 
That's what I was looking for. Thanks Peeter.
 
I seem to be having problems converting the formulas into my code. Here's the code I've created:

Code:
'Starting values
    nRadius = 30
    StartX = 130
    StartY = 100
    CenterX = 100
    CenterY = 100
    nVelocity = 1

    'Set the current XY to be the starting XY
    CurX = StartX
    CurY = StartY

    'Draw a line from 0,0 to the starting point
    DrawPoint(0, 0, CurX, CurY)

    'Save the point data to a file for analysis (currentX, CurrentY, Distance from "center" to XY, Distance from 0,0 to XY)
    fStream.WriteLine(CurX.ToString + "," + CurY.ToString + "," + Sqrt(((CurX - CenterX) * (CurX - CenterX)) + ((CurY - CenterY) * (CurY - CenterY))).ToString + "," + Sqrt(((CurX) * (CurX)) + ((CurY) * (CurY))).ToString)

    'Loop 360 times to form the circle
    For nTime = 1 To 360
      'Set the new CurX
      CurX = StartX * (Cos((nVelocity * nTime) / nRadius)) - StartY * (Sin((nVelocity * nTime) / nRadius))
      'Set the new CurY
      CurY = StartX * (Sin((nVelocity * nTime) / nRadius)) + StartY * (Cos((nVelocity * nTime) / nRadius))

      'Save the point data to a file for analysis (currentX, CurrentY, Distance from "center" to XY, Distance from 0,0 to XY)
      fStream.WriteLine(CurX.ToString + "," + CurY.ToString + "," + Sqrt(((CurX - CenterX) * (CurX - CenterX)) + ((CurY - CenterY) * (CurY - CenterY))).ToString + "," + Sqrt(((CurX) * (CurX)) + ((CurY) * (CurY))).ToString)

      'Draw a line from 0,0 to the calculated point
      DrawPoint(0, 0, CurX, CurY)

    Next

This code draws a cicle centered on 0,0 that is 164 pixels long. Since my value for nRadius is 30, what I was expecting is a circle centered on 100,100 that is 30 pixels long. Here's a few of the data points that get generated:

Code:
X Coord         Y Coord         Distance from 100,100    Distance from 0,0
130             100             30                       164.0121947
126.5950684     104.2769805     26.936782                164.0121947
123.0494886     108.4381084     24.5454802               164.0121947
119.3671998     112.4787607     23.03926859              164.0121947
115.5522931     116.3944481     22.59760498              164.0121947
111.6090068     120.1808204     23.28163551              164.0121947
107.541722      123.8336708     24.99842864              164.0121947
103.3549575     127.3489409     27.55395272              164.0121947
99.05336477     130.7227254     30.73730588              164.0121947
94.64172292     133.9512758     34.37150361              164.0121947
90.12493334     137.0310052     38.32508694              164.0121947

Is there some sort of shifting I need to do in the formula to account for the fact that my center is not 0,0?

Thanks,
NCGrimbo
 
Yes, those points were relative to the center at the origin.

<br /> \begin{align*}<br /> F_x &amp;= C_x + (S_x-C_x)\cos(vt/R) - (S_y-C_y)\sin(vt/R) \\<br /> F_y &amp;= C_y + (S_x-C_x)\sin(vt/R) + (S_y-C_y)\cos(vt/R) <br /> \end{align*}<br />
 
Peeter said:
Yes, those points were relative to the center at the origin.

<br /> \begin{align*}<br /> F_x &amp;= C_x + (S_x-C_x)\cos(vt/R) - (S_y-C_y)\sin(vt/R) \\<br /> F_y &amp;= C_y + (S_x-C_x)\sin(vt/R) + (S_y-C_y)\cos(vt/R) <br /> \end{align*}<br />

That fixed it. Thanks again Peeter!
 
Hello! Let's say I have a cavity resonant at 10 GHz with a Q factor of 1000. Given the Lorentzian shape of the cavity, I can also drive the cavity at, say 100 MHz. Of course the response will be very very weak, but non-zero given that the Loretzian shape never really reaches zero. I am trying to understand how are the magnetic and electric field distributions of the field at 100 MHz relative to the ones at 10 GHz? In particular, if inside the cavity I have some structure, such as 2 plates...
Back
Top