Rate of forward motion from rolling rectangle vs degrees turned

In summary, Tiny-Tim's problem is that he needs to find the coordinates of the centre of a rolling rectangle as it moves along a circle with a radius drawn from the centre to the corner.
  • #1
brimby
23
0

Homework Statement



I'm looking for a formula that relates the distance traveled by a 'rolling' rectangle compared to a given amount of degrees it has turned.

And while I have you, another problem I have with the rolling rectangle is that its center point would move up and then down with each 90 degree turn forward as it arches over its corner. What formula might describe this change in y-position of the rectangle's center as it 'rolls' forward?

Homework Equations


See my attempt.

The Attempt at a Solution


The best I can come up with for the rolling rectangle's forward motion is:
Δ (x position) = Δ (rotational position) [itex]\times[/itex] (b + (a-b)/2) where b is the new "bottom" side of the rectangle after a 90 degree roll, and a is the old "bottom" side. Although this seems like too linear of a formula to me. PI has got to work in there somewhere, right?

And for the Δy of the rectangle as it bobs along... the best I can discern from my sketches is Δy = Δrotational position [itex]\times[/itex] ((a-b)/2) for ascending segments and the inverse for the descending segments. Again, seems too linear.

Thanks for any insight. My first post here.
 
Physics news on Phys.org
  • #2
hi brimby! welcome to pf! :smile:
brimby said:
Δ (x position) = Δ (rotational position) [itex]\times[/itex] (b + (a-b)/2) where b is the new "bottom" side of the rectangle after a 90 degree roll, and a is the old "bottom" side. Although this seems like too linear of a formula to me. PI has got to work in there somewhere, right?

each time the rectangle rotates 90° (π/2) from being flat on one side to the next side, how far horizontally does the centre go? :wink:

(π will come in if you use radians rather than degrees)
And for the Δy of the rectangle as it bobs along... the best I can discern from my sketches is Δy = Δrotational position [itex]\times[/itex] ((a-b)/2) for ascending segments and the inverse for the descending segments. Again, seems too linear.

since one corner is fixed for a long time, won't all other points move along circles?
 
  • #3
Ok yes. So I guess it would be easier to think about the axis of rotation being centered on the corner rather than the center of the polygon. And in that case, for a given turning of degrees upon the corner, the center of the polygon would move along the circumference of a circle with a radius extending from center to corner.

I searched for a formula like this, and found tons of stuff about the section of the circumference being c = rΘ , which is nice, but I need to see the Δx and Δy separately. I did find this:

halfAngle.png


But it has a radius of 1. Would I simply multiply sinΘ or cosΘ by the radius for it to work on other sized shapes?

Thanks again.

Update: I just tried it (I'm programming a game for class), and it didn't work. When I multiplied by the radius, it moved wild and crazy. When I didn't multiply by the radius, it was small and jerky.

Any further clues for me? I tried the stackexchange forum sites, but those guys are so picky and uptight that my question got shut down on the math, physics and game development sites for who knows what reason. I'm done with those guys, so you're my best hope at this point.
 
Last edited:
  • #4
As tiny-tim indicates, a good start is to consider only multiples of pi/2, but that just gives the θ(a+b)/π formula you already had. For intermediate angles, you'll need to break it into two cases; the function will depend on whether it's rotating from lying on the short side to lying on the long side or vice versa. It might help to sketch the path of the rectangle's centre for a rotation of π.
 
  • Like
Likes 1 person
  • #5
hi brimby! :smile:
brimby said:
… for a given turning of degrees upon the corner, the center of the polygon would move along the circumference of a circle with a radius extending from center to corner.

yes

and the angle of the arc will be the external angle of the polygon (ie 180° minus the internal angle … for a rectangle, obviously they're the same: 90°)
But it has a radius of 1. Would I simply multiply sinΘ or cosΘ by the radius for it to work on other sized shapes?

you'll need to find the two angles between the line from the centre to the corner and the two sides at the corner let's call them φ and ψ (for a rectangle, ψ = 90° - φ)

then the centre of the rectangle will go from angle φ to angle 90° + φ

at angle φ, its coordinates are (rcosφ, rsinφ) where r is the distance to the centre from the corner

the rest i'll leave to you :wink:
 
  • Like
Likes 1 person
  • #6
Edit: I just posted this without seeing your recent reply. I'm reading your reply now and applying what you have said.

Ok so I figured out that I must have my rotation in radians when applying sin or cos to them for proper calculation... and now my x movement works!

and then I discovered this formula:

yP2=yP1−r(1−cosθ)

which I believe would be

Δy=−r(1−cosθ) when talking about change.

But something still isn't right with the y movement. I'm going to tinker around with it for a while and then rephrase my question. Thanks for the help!
 
  • #7
brimby said:
... and now my x movement works!
For any angle or just up to π/2? Could you post your formula?
 
  • Like
Likes 1 person
  • #8
hi brimby! :smile:

(just got up :zzz:)
brimby said:
Ok so I figured out that I must have my rotation in radians when applying sin or cos to them for proper calculation... and now my x movement works!

he he! :biggrin:
Δy=−r(1−cosθ) when talking about change.

no, that should be ∆y = r∆(cosθ) (or r∆(sinθ): I'm not sure what your θ is)

since in the case of a rectangle your "other" θ is 90° - θ, that's:

r(cosθ - sinθ) :wink:

(where θ is the angle from the vertical)
 
  • Like
Likes 1 person
  • #9
O man I'm getting really confused now. I'm getting lost on all the ψ stuff, internal/external angle stuff, and the cosΘ - sinΘ stuff. Maybe I need to take a step back and revisit a geometry book. Or do you have any good links for me? I hate to make you walk me through the whole process.

I'm picturing the movement better now though. For a rectangle the center point would make a series of linked McDonald's-type (rounded) M's. I think.

One specific question though: am I going to need different formulas depending on which side the rectangle is currently sitting on (it's rotation status)? I'm starting to get the picture that there isn't one equation that governs the movement through the whole 360°.

@Haruspex: the formula I used that I'm perceiving as possibly working for x is Δx = r(sin(ΔΘ)). The dimensions of my testing rectangle are 210x and 150y. I have really only tested it for the first push onto its side, so yes, I believe that's π/2. And after hearing all this new information, I'm sure it probably falls apart after the first push.:uhh:
 
  • #10
brimby said:
One specific question though: am I going to need different formulas depending on which side the rectangle is currently sitting on (it's rotation status)? I'm starting to get the picture that there isn't one equation that governs the movement through the whole 360°.

yes

in clock terms, one arc will be from 10 o'clock to 1 o'clock (which is higher), then from 11 o'clock (mirror image of 1 o'clock) to 2 o'clock (mirror image of 10 o'clock), then start from 10 o'clock again …

so that's two different equations, and then you have to repeat :smile:
 
  • Like
Likes 1 person
  • #11
I don't understand why the external/internal angle matters. Since I'm working with Δposition, don't I also need to use ΔΘ? Wouldn't the change in angle be the same no matter where I measured it from?
 
  • #12
the external/internal angle tells you the general shape

Θ gives you the actual coordinates

you have to measure Θ from the centre of the circle (the corner of the rectangle), or your cosΘ and sinΘ formulas won't work
 
  • Like
Likes 1 person
  • #13
brimby said:
For a rectangle the center point would make a series of linked McDonald's-type (rounded) M's.
Yes.
For the purposes of getting the y-motion, it might help to represent the problem a little differently. Rotating the rectangle through π/2 moves the centre through the first half of the M. The second half of the M is the mirror image in the x direction, so for the y direction it's the same as just rotating it back to the start position.
Can you think of a way to write the angle of the (initial) base in this reciprocating model in terms of the angle in the original model?
 
  • Like
Likes 1 person
  • #14
I drew some sketches, and maybe I'll put them on here when I get home, but the first one was an upright ellipse. On it I tracked the segment that would be traversed across π/2, which would start a little above the x-axis in the second quadrant (not on the axis because it's the center point), and travel up past the y-axis a little ways into the first quadrant. I then tracked the next π/2 segment on the same ellipse, which began a little before the y-axis on quad 2 and ended a little before the x-axis in quad 1.

So then I realized that I needed to rotate my ellipse. Since my rectangle is at 0 rotation when it is lying on its side, and since I am tracking the center point, the true x-axis should go from the non-rotated rectangle's corner up through the rectangle's middle point. So what I drew was two ellipses. One skewed a bit to the left, and one a bit to the right.

And I finally see what the deal is with the external/internal angles. In the first π/2 rotation (coming from the far left, x-axis, second quad), the height of the point is within the angle of the rotation, but in the second segment of the rotation (first quad) to find the height of the point I would need to look at the 90 - Θ angle.

Next step is looking into how the radius changes around an ellipse, and exactly which trig functions I need to calculate the sides of the triangles in the angles.

Getting close! I think...

Thanks for the help, both of you.
 
  • #15
brimby said:
Next step is looking into how the radius changes around an ellipse
Why would the radius change? Isn't it half a diagonal of the rectangle?
 
  • Like
Likes 1 person
  • #16
Hmmm... for some reason I was thinking I was dealing with an ellipse since it's a rectangle rather than a square. But I guess not, huh?

Well that will make things a lot simpler!
 
  • #17
How does this math look for the first π/2 rotation?

And I understand what you mean now about φ and ψ, tiny-tim. You're saying I have to account for the fact that the center point does not sit on the axis when beginning the rotation, and goes past the next axis at the end of each quarter rotation.
 

Attachments

  • circleMath.jpg
    circleMath.jpg
    35.3 KB · Views: 378
Last edited:
  • #18
hi brimby! :smile:
brimby said:
How does this math look for the first π/2 rotation?

yes, that's right … you've chosen your coordinates with the origin (0,0) at one end of the diameter of that circle, so the coordinates of the centre of the rectangle are x = r(1 - cosθ) and y = rsinθ

but can you see that you're making things difficult for yourself in the future? …

when you plot the position of the rectangle, you instantly know where the corners of the rectangle are going to be (x = 0, a, a+b, 2a+b, 2a+2b, …), sooo it's easiest to plot the centre of the rectangle relative to the positions of those corners!

in other words: you really want your x and y in your diagram to be measured from the centre of the circle (not the end of the diameter): that will be x = rcosθ, y = rsinθ :wink:
And I understand what you mean now about φ and ψ, tiny-tim. You're saying I have to account for the fact that the center point does not sit on the axis when beginning the rotation, and goes past the next axis at the end of each quarter rotation.

yes :smile:
 
  • Like
Likes 1 person
  • #19
Yeah I definitely don't want my coordinates to have an origin at the edge of the circle. But wouldn't my version work in terms of Δx? My example rectangle is lying horizontally at the start, and rolling to the right. So that x at the edge of the circle would be a qualifying Δx as it moves right, right? In that situation x = rcos(Θ) would describe the movement left to go until it completes it's 90° turn, which isn't what I want.

One of the big errors I think I have been making is using sin(ΔΘ) and cos(ΔΘ), but I looked back on your post and I think you suggested Δsin(Θ) and Δcos(Θ). I'll have to wait until I get off work before I can go test it though. I think at first I assumed it was the same, but just thinking about it right now... yeah, they are completely different. :wink:

Sorry for always switching between x and Δx. Δx is truly what I want, as it makes more sense in terms of running my program.

So as it stands right now, I think my equations for the first quarter turn are:

Δx = r(1 - Δcosθ)
Δy = r(Δsinθ)

But if that isn't right, just tell me I'm wrong again. I'll believe you :wink:
 
Last edited:
  • #20
hi brimby! :smile:
brimby said:
Yeah I definitely don't want my coordinates to have an origin at the edge of the circle. But wouldn't my version work in terms of Δx? My example rectangle is lying horizontally at the start, and rolling to the right. So that x at the edge of the circle would be a qualifying Δx as it moves right, right? In that situation x = rcos(Θ) would describe the movement left to go until it completes it's 90° turn, which isn't what I want.

sorry, I'm not followng what you're trying to measure :confused:

(nor what ∆x is)
One of the big errors I think I have been making is using sin(ΔΘ) and cos(ΔΘ), but I looked back on your post and I think you suggested Δsin(Θ) and Δcos(Θ). I'll have to wait until I get off work before I can go test it though. I think at first I assumed it was the same, but just thinking about it right now... yeah, they are completely different. :wink:

yeah! :biggrin:
 
  • #21
∆x is the x position of the center of the rectangle minus the previous x position of the center of the rectangle. My rectangle isn't going to have the luxury of sitting at (0,0) in my game. It could be anywhere on the coordinate system, which is why I opt to use ∆x so I don't have to figure out where it is vs. where it was between each refresh... I just have to add or subtract the change between refreshes.

Does that make it more clear? So the reason I made ∆x be the little piece at the edge of the circle is because x1 (the tip of the radius on the x axis) is where the point was previously, and x2 (the corner of the triangle at x = rcosΘ) is where it currently is in its rotation. And I want to know the change, so I can add it to whatever the rectangle's previous x position was.

Hmmm. But I guess in that case, x1 isn't always going to be the tip of the radius on the x axis... Guess I'll have to ponder that one.
 
  • #22
Yeah I thought about it for 2 seconds and you're right. Change in x equals the change in cosΘ. I'm a goof. Thanks though.
 
  • #23
It only seemed that way to me because in that specific case where x1 is the very first point in the turn the change in r(1-cosΘ) is the same as the change in rcosΘ because x1 = r. Or something like that. Oops.
 
  • #24
brimby said:
It only seemed that way to me because in that specific case where x1 is the very first point in the turn the change in r(1-cosΘ) is the same as the change in rcosΘ because x1 = r. Or something like that. Oops.

I urge you to solve the y direction first. There's a fairly simple closed form for that (if you allow the modulus function). From there, there's a simple expression for dx/dθ (but the integral cannot be written very neatly).
 
  • #25
O jeez. I didn't realize there is a calculus component that I hadn't even made it to yet.

So you're telling me a that it's much more complex than just:

Δx = r(Δcosθ)
Δy = r(Δsinθ)

for the first quarter turn??
 
  • #26
brimby said:
So you're telling me a that it's much more complex than just:

Δx = r(Δcosθ)
Δy = r(Δsinθ)

for the first quarter turn??

no, that is correct :smile:

(and you won't need any calculus)
 
  • #27
tiny-tim said:
no, that is correct :smile:

(and you won't need any calculus)

Ok great!

And I'm going out on a limb right now because I feel like I might be on a roll (wait, am I on a limb or a roll??), but for the second quarter turn is it:

Δx = r(Δcos(π/2-θ))
Δy = r(Δsin(π/2-θ))

??
 
Last edited:
  • #28
brimby said:
… for the second quarter turn is it:

Δx = r(Δcos(90-θ))
Δy = r(Δsin(90-θ))

??

i think you're losing the plot slightly

the θ formula is the same for every corner, except

i] the "odd" corners have different limits for θ than the "even" corners

ii] for each corner, although you can use the same y that the previous corner finished at, your x has to have either a or b added to it before you can start the θ formula again (because teh centre of the circle has moved horizontally but not vertically)
 
  • #29
I understand your second point clearly.

Your first one I'm still pondering.

Are you trying to say that I should do π - Θ rather than π/2 - Θ for the "evens"?
 
  • #30
brimby said:
Your first one I'm still pondering.

Are you trying to say that I should do π - Θ rather than π/2 - Θ for the "evens"?

(as a matter of interest, why are you using capital Θ instead of little θ ?)

no, I'm saying that the θ formula goes from a low angle to a high angle at
one corner, but from a high angle to a low angle for the next corner …

same formula, different limits :wink:

(btw, i think it would be easier if you measured θ from the vertical instead of from the horizontal, since that would keep all angles below 90°)
 
  • #31
O ok!

In the first corner, Δx is positive as x shrinks from r to 0 and as θ increases from 0 to π/2, and in the second corner Δx is positive as x grows from 0 to r and as θ shrinks from π/2 - 0 to π/2 - π/2!

I'll have to think about the implications of this on my formula...

And the reason I was using capital Θ is negligence. I'm kind of reentering the world of math via programming, and that means I bumble around a bit.
 
Last edited:
  • #32
brimby said:
O jeez. I didn't realize there is a calculus component that I hadn't even made it to yet.

So you're telling me a that it's much more complex than just:

Δx = r(Δcosθ)
Δy = r(Δsinθ)

for the first quarter turn??
No, the first quarter turn is easy. I'm saying there is a general formula, not too complicated, for the y movement; once you have that you can write down an integral for the general x movement, but since the integrand contains the modulus function it is not integrable into a closed form. Still worth getting to, though, because it will show you what the general x movement looks like.
I've attached graphs of x and y against theta for phi = pi/12
 

Attachments

  • rolling rectangle.jpg
    rolling rectangle.jpg
    13.8 KB · Views: 371
  • #33
brimby said:
In the first corner, Δx is positive as x shrinks from r to 0 and as θ increases from 0 to π/2, and in the second corner Δx is positive as x grows from 0 to r and as θ shrinks from π/2 - 0 to π/2 - π/2!

i think you're using θ to mean the total angle through which the rectangle has turned

i'm using θ to mean the angle from one diagonal's position to the next, eg on the first turn from θ = φ to θ = φ + π/2

that means i can use rcosθ and rsinθ

you would have to use rcos(θ + φ) and rsin(θ + φ)
 
  • #34
No I think we're doing the same. I'm just considering [itex]\varphi[/itex] to be 0 and therefore θ = 0. I'm just setting the axis to go through the center diagonal of the rectangle. Is that okay?

Hmmm... maybe not. Cuz then it wouldn't be sitting flat at the end of the turn, and that would cause further problems...
 
  • #35
Ok I think I have the φ issue squared away. I think I really just have one last hurdle here, and it has to do with making things easier for programming.

Generally I am working with Δvalue because it's way easier for me to program things to change an amount from where they're at, rather than figure out where they are, where they need to be, and subtract. So I directly manipulate the Δvalue, and the new position is a product of the calculation. For example, if I am pressing the right arrow on the keyboard, the game character's xVelocity (variable) becomes 5, and after every refresh, the program is instructed to add the xVelocity to the xPosition, creating movement for the character over time.

But in the case of Δcosθ, it's all backward. I am directly affecting cosθ (well, mostly directly. By way of θ, at least) and then Δcosθ would need to be calculated out of that. What I really need is the relationship between Δθ and Δcosθ, so I can say "(cosThetaVelocity (Δcosθ)) = (rotationalVelocity (Δθ) altered by some constant), or put another way, "as the angle of θ changes, the value cosθ changes by some amount."

I feel like I should be able to get this part on my own, but I must be burnt out or something because I'm just going in circles and disorienting myself with trying to straighten out this seemingly simple relationship.

Hmmm... something just occurred to me. Maybe I should just turn the whole thing around and have the Δcos/Δsin values directly affected by the player's actions rather than Δθ. That would put it more in the direction I'm used to working. I'm still interested in what you have to say about how I framed it first though, because for all I know at this point, doing it that way would reverse some other thing that would screw me over.

Thanks a billion for all the help. I know this knowledge is going to help me over and over as I make games.
 

Similar threads

  • Classical Physics
4
Replies
116
Views
10K
Replies
23
Views
978
Replies
2
Views
1K
Replies
1
Views
8K
  • Special and General Relativity
2
Replies
40
Views
2K
  • Introductory Physics Homework Help
Replies
19
Views
3K
  • Introductory Physics Homework Help
Replies
3
Views
9K
  • Precalculus Mathematics Homework Help
Replies
4
Views
1K
  • Precalculus Mathematics Homework Help
Replies
3
Views
4K
  • Introductory Physics Homework Help
Replies
2
Views
6K
Back
Top