Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

All published worksheets from http://sagenb.org

Views: 168730
Image: ubuntu2004

This is the trajectory followed by a point on the surface of a disk while the disk rolls on the floor, without slipping, with a uniform linear velocity. The point is chosen at a distance 'r' from the center of the disk.

R = 4. r = 2. var('wt') parametric_plot(( r*sin(wt) + R*wt, r*cos(wt)), (wt, 0, 4*pi))

This is the trajectory of a point the lies on the perimeter of the disk as it rolls on a flat surface.

R = 4. r = 4. var('wt') parametric_plot(( r*sin(wt) + R*wt, r*cos(wt)), (wt, 0, 4*pi))

Spirograph: Inner perimeter

R = 100. r = 50. r_ = 40. n = 100 var('wt') parametric_plot( (R*cos(wt) + r_*cos((R+r)*wt/r) , R*sin(wt) - r_*sin((R+r)*wt/r)), (wt, -n*pi, n*pi))
R = 100. r = 70. r_ = 60. n = 100 var('wt') parametric_plot( (R*cos(wt) + r_*cos((R+r)*wt/r) , R*sin(wt) - r_*sin((R+r)*wt/r)), (wt, -n*pi, n*pi))
R = 100. r = 80. r_ = 50. n = 100 var('wt') parametric_plot( (R*cos(wt) + r_*cos((R+r)*wt/r) , R*sin(wt) - r_*sin((R+r)*wt/r)), (wt, -n*pi, n*pi))
R = 100. r = 70. r_ = 50. n = 200 var('wt') parametric_plot( (R*cos(wt) + r_*cos((R+r)*wt/r) , R*sin(wt) - r_*sin((R+r)*wt/r)), (wt, -n*pi, n*pi))
R = 100. r = 90. r_ = 20. n = 100 var('wt') parametric_plot( (R*cos(wt) + r_*cos((R+r)*wt/r) , R*sin(wt) - r_*sin((R+r)*wt/r)), (wt, -n*pi, n*pi))
R = 100. n = 10 @interact def f(r=(26..R/2), r_=(14..R/2)): var('wt,t') pt = parametric_plot( (R*cos(wt) + r_*cos((R+r)*wt/r) , R*sin(wt) - r_*sin((R+r)*wt/r)), (wt, -n*pi, n*pi)) + parametric_plot(((R+r)*cos(t), (R+r)*sin(t)), (t,0,2*pi), color='red') show(pt)

If the smaller circle (the one with radius = r) is made to 'roll' along the outer perimeter of the bigger circle (whose width is negligible in this case), the following differences are to be taken care of:

- the radius of the bigger circle now will be equal to R

- the radius of the circle traced by the smaller circle will be R+r

- both rotations are positive.

R = 500. @interact def f(r=(550..2*R), r_=(420..2*R), n=30): print("R="+str(R)) var('wt,t') pt = parametric_plot( ((R + r)*cos(wt) - r_*cos((R+r)*wt/r) , (R+r)*sin(wt) - r_*sin((R+r)*wt/r)), (wt, -n*pi, n*pi)) + parametric_plot((R*cos(t), R*sin(t)), (t,0,2*pi), color='red') show(pt)
r_ 
[removed]
[removed]
[removed]
[removed]
R = 500. @interact def f(r=(R/2..2*R), r_=(R/4..2*R), n=10): #r = 100; r_ = 100 var('wt') pt = parametric_plot( ((R + r)*cos(wt) - r_*cos((R+r)*wt/r) , (R+r)*sin(wt) - r_*sin((R+r)*wt/r)), (wt, -n*pi, n*pi)) + parametric_plot((R*cos(t), R*sin(t)), (t,0,2*pi), color='red') show(pt)