Animation

\(\(g = 9.8; 
kyug = 1; \ \ 
kyur = 1; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 

    loopr = 5; 
shamenrad = Pi/3; 
startx = 0; 
starty = 12.5; 

    startsp = 0; 
komakazu = 30; 
timeend = 7; 

dispzanzou = 1; 

    zanzoukazu = 4; 

dt = timeend/komakazu; 

    shamenlx = startx - \((kyur/Sin[shamenrad])\); 
shamenly = starty; 

    shamenry = loopr - \((loopr*Cos[shamenrad])\); 

    shamenrx = \((\((starty - shamenry)\)/Tan[shamenrad])\) + shamenlx; 

    loopcenterx = shamenrx + \((loopr*Sin[shamenrad])\); 

    loopcentery = loopr; 
groundlx = loopcenterx; 
groundly = 0; 			

    groundrx = loopcenterx + \((2*loopr)\); 
groundry = 0; 
    												

    options = {AspectRatio -> Automatic
					\ \ \ \ \ \ \ \ , 
        PlotRange -> {{shamenlx - 1, groundrx + 1}

            				\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ , {groundry - 1, shamenly + kyur + 1}}

        			\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }; 
					

    kaimaxspx = 
      FindRoot[
							
        kyug*g*starty == \((1/2)\)*kyug*groundv*groundv

        							, {groundv, 5, 0, 50}]; 

    maxspx = N[groundv\  /. \ First[kaimaxspx]]; 


    kaiendshtime = 
      FindRoot[
						
        \((1/2)\)*g*Sin[shamenrad]*Cos[shamenrad]*t0*t0 == 
          \((
\ \ \ \ \ \ \ \ shamenrx + \((kyur*Sin[shamenrad])\) - startx)
            \)
							, {t0, 2, 0, timeend}]; 

    endshtime = N[t0\  /. \ First[kaiendshtime]]; 

    endshv = \((g*Sin[shamenrad]*endshtime)\) + startsp; 
						

    kaishamenx = 
      NDSolve[
						{
          \(\(shamenx'\)'\)[t1] == g*Sin[shamenrad]*Cos[shamenrad]

          					, shamenx[0.0] == startx
					, 
          \(shamenx'\)[0.0] == 0}
					, shamenx

        					, {t1, 0, timeend}]; 

    funcshamenx = shamenx\  /. \ First[kaishamenx]; 
							

    kailooprad = 
      NDSolve[
		\ \ \ \ \ \ \ \ \ {
          \((loopr - kyur)\)*\(\(looprad'\)'\)[t2] == 
            \(-1\)*kyug*g*Sin[looprad[t2]]
					\ , 
          looprad[endshtime] == \(-1\)*shamenrad
					\ , 
          \(looprad'\)[endshtime] == endshv/loopr}
			\ \ \ \ \ \ , 
        looprad
			\ \ \ \ \ \ , {t2, endshtime, timeend}

        	\ \ \ \ \ \ \ \ \ \ \ \ ]; 

    funclooprad = looprad\  /. \ First[kailooprad]; 
		

    kaigroundx = 
      NDSolve[
				\ \ \ \ \ {\(groundx'\)[t3] == maxspx
					, 
          groundx[endlptime] == loopcenterx}
				\ \ \ , groundx

        				\ \ \ , {t3, endlptime, timeend}]; 

    funcgroundx = groundx\  /. \ First[kaigroundx]; 


    kaiendlptime = 
      FindRoot[funclooprad[t4] == 2*Pi
				\ \ \ , {t4, 5}]; 

    endlptime = N[t4\  /. First[kaiendlptime]]; 			
					

    kyux[t5_] = 
      Which[0 <= t5; t5 <= endshtime
		\ \ \ \ \ \ \ , 
        locatex = funcshamenx[t5] + startx
		\ \ \ \ \ \ \ , 
        endshtime < t5; t5 <= endlptime
		\ \ \ \ \ \ \ , 
        locatex = 
          loopcenterx + \((\((loopr - kyur)\)*Sin[funclooprad[t5]])\)

        		\ \ \ \ \ \ \ , endlptime < t5; t5 <= timeend

        		\ \ \ \ \ \ \ , locatex = funcgroundx[t5]]; 


    kyuy[t6_] = 
      Which[0 <= t6; t6 <= endshtime
		\ \ \ \ \ \ \ , 
        locatey = starty - \((funcshamenx[t6]*Tan[shamenrad])\)

        		\ \ \ \ \ \ \ , endshtime < t6; t6 <= endlptime

        		\ \ \ \ \ \ \ , 
        locatey = 
          loopcentery - \((\((loopr - kyur)\)*Cos[funclooprad[t6]])\)

        		\ \ \ \ \ \ \ , endlptime < t6; t6 <= timeend

        		\ \ \ \ \ \ \ , locatey = kyur]; 	
										

    set = {Line[{{shamenlx, shamenly}, \ {shamenrx, shamenry}}]
					, 
        Line[{{groundlx, groundly}, \ {groundrx, groundry}}]
					, 
        Circle[{loopcenterx, loopcentery}, loopr]}; 

    kyu[t7_] := {GrayLevel[0.0], Disk[{kyux[t7], kyuy[t7]}, kyur]}; 

    zanzou[t8_, znum1_] := {
		\ \ \ \ \ \ \ \ \ 
        GrayLevel[\((\((N[8/zanzoukazu])\)*znum1)\)/10]
		\ \ \ \ \ \ , 
        Disk[{kyux[t8 - \((znum1*dt)\)]

            				\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ , 
            kyuy[t8 - \((znum1*dt)\)]}

          			\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ , kyur]}; 


    zanzoulist[t9_] := 
      Which[zanzoukazu > \((t9/dt)\) - 1
		\ \ \ \ \ \ , 
        Table[zanzou[t9, znum2 + 1], {znum2, 0, \((t9/dt)\) - 1, 1}]

        		\ \ \ \ \ \ , zanzoukazu <= \((t9/dt)\) - 1
		\ \ \ \ \ \ , 
        Table[zanzou[t9, znum3], {znum3, 1, zanzoukazu, 1}]]; 


    figures = 
      Which[dispzanzou == 1
		\ \ \ \ \ \ , 
        figure1 = {set, kyu[t], zanzoulist[t]}
		
		\ \ \ \ \ \ , 
        dispzanzou == 0
		\ \ \ \ \ \ , figure1 = {set, kyu[t]}]; 


    Do[
	\ \ \ \ 
      Show[
		\ \ \ \ \ \ \ \ \ \ \ \ \ 
        Graphics[figures

          			\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ , 
          options]
		\ \ \ ]
	\ \ \ \ \ , {t, 0, timeend, dt}
	]\ 
    \)\)