Задача №2.6 ( Шпак Мария, 202 группа, 2011/12 уч.гг.)

Круг радиуса a катится по прямой без скольжения. Точка A жестко связана с кругом и находится на расстоянии d от центра. Визуализировать движение точки A и ее траекторию в зависимости от времени и параметра d, задаваемых динамически. Вывести уравнения полученных кривых (циклоид).

Text[Style["Запараметризуем нашу кривую. Для начала рассмотрим чертеж.",Blue,20]]

Show[
Graphics[{
Circle[{0,1},1], Circle[{3*Pi/4- Sin[3*Pi/4]+Cos[Pi/4], 1},1],
Text [Style["2a",Bold,12],{-0.2, 2.1}],
Text[Style["A",Bold,14],{-0.2,0.2}],
Text[Style["Ā(A)",Bold,14],{3*Pi/4- Sin[3*Pi/4]-0.1, 1.9}],
Text [Style["y",Bold,12],{-0.1, 1.7}],
Text [Style["x",Bold,12],{1.7, -0.1}],
Text [Style["B",Bold,12],{2.35, -0.15}],
{LightMagenta,Disk[{3*Pi/4- Sin[3*Pi/4]+Cos[Pi/4], 1},0.4, {3*Pi/4, 3*Pi/2}]},
Text[Style["t",Bold,14],{3*Pi/4- Sin[3*Pi/4]+Cos[Pi/4]-0.1,0.9}],
Line[{{3*Pi/4- Sin[3*Pi/4],1 - Cos[3*Pi/4]},{3*Pi/4- Sin[3*Pi/4]+Cos[Pi/4], 1}}],
Line[{{3*Pi/4- Sin[3*Pi/4]+Cos[Pi/4],0},{3*Pi/4- Sin[3*Pi/4]+Cos[Pi/4], 1}}],
Line[{{3*Pi/4- Sin[3*Pi/4],1 - Cos[3*Pi/4]},{3*Pi/4- Sin[3*Pi/4],1}}],
Line[{{3*Pi/4- Sin[3*Pi/4],1},{3*Pi/4- Sin[3*Pi/4]+Cos[Pi/4], 1}}],
{Dashed, Line[{{3*Pi/4- Sin[3*Pi/4],1},{3*Pi/4- Sin[3*Pi/4],0}}]},
{Dashed, Line[{{0,1 - Cos[3*Pi/4]},{3*Pi/4- Sin[3*Pi/4],1 - Cos[3*Pi/4]}}]},
{PointSize[Large],Point[{3*Pi/4- Sin[3*Pi/4]+Cos[Pi/4], 1}]},
{PointSize[Large],Point[{0,1}]},
Red,
Arrow[{{0,0},{3*Pi/4- Sin[3*Pi/4],1 - Cos[3*Pi/4]}}],
{PointSize[Large],Point[{0,0}]},
{PointSize[Large],Point[{3*Pi/4- Sin[3*Pi/4],1 - Cos[3*Pi/4]}]}
}],
ParametricPlot[{t-Sin[t],1 - Cos[t]},{t,0,3*Pi/4}],
 Axes -> True,Ticks -> None, AxesStyle -> Arrowheads[0.05]
]

Text[Style["Так как круг крутится без скольжения, то длина дуги BĀ равна отрезку AB. Если угол, отмеченный на рисунке равен t, то длина дуги равна ta, где, напомним, а - радиус круга. Отсюда получим зависимость координат от t: ",Blue, 20]]

Text[Style["y = ta - t cos(t - \!\(\*FractionBox[\(\(π\)\(\\ \)\), \(2\)]\)) ≡ ta - tsint ,",Red, 20]]

Text[Style["x = a + a sin(t - \!\(\*FractionBox[\(\(π\)\(\\ \)\), \(2\)]\)) ≡ a - acost .", Red, 20]]

Text[Style["Теперь, если мы возьмем точку внутри круга или снаружи, то практически ничего не поменяется, просто будем отнимать меньшее(большее) расстояние в координатах. Таким образом получим:",Blue, 20]]

Text[Style["x = ta - dcos(t - \!\(\*FractionBox[\(\(π\)\(\\ \)\), \(2\)]\)) ≡ ta - dsint ,", Red, 20]]

Text[Style["y = a + dsin(t - \!\(\*FractionBox[\(\(π\)\(\\ \)\), \(2\)]\)) ≡ a - dcost .", Red, 20]]

Text[Style["Теперь, к примеру, начальное положение точки у нас не на оси Oy. Тогда пройденное расстояние(длина дуги) останется прежним, но будем иметь поворот на постоянный угол ϕ. И окончательный вариант параметризации:",Blue, 20]]

Text[Style["x = ta - dcos(t - \!\(\*FractionBox[\(\(π\)\(\\ \)\), \(2\)]\) + ϕ) = ta - dsin(t + ϕ) ,", Red, 20]]

Text[Style["y = a + dsin(t - \!\(\*FractionBox[\(\(π\)\(\\ \)\), \(2\)]\) + ϕ) = a - dcos(t + ϕ) .", Red, 20]]

Text[Style["Траектория точки A, жёстко связанной с кругом и находящейся на расстоянии d от его центра (циклоида):",Blue, 20]]

Manipulate[
Show[
ParametricPlot[
{t*a - k*a*Sin[t + ϕ],a - k*a*Cos[t +  ϕ] },{t, 0.001, t1},
  Axes -> True,
 Ticks -> Automatic,
PlotRange-> {{-10,100},{-10,40}},
AspectRatio-> Automatic,
ColorFunction-> "Rainbow" ],

  ParametricPlot[{a*Cos[u]+a*t1,a*Sin[u]+a},{u,0,2Pi},PlotStyle->Blue],(*круг*)


   Graphics[{  

               Line[ {{a*t1, a}, {t1*a - k*a*Sin[t1 + ϕ],a - k*a*Cos[t1 +  ϕ]}}],

                 {PointSize[0.006],Black,Point[{a*t1,a}  ] }
                           }],



Graphics[
{Red,PointSize[Medium], Point[{t1*a - k*a*Sin[t1 + ϕ],a - k*a*Cos[t1 +  ϕ]}],Text[Style["Α", 20],{t1*a - k*a*Sin[t1 + ϕ]+ 2,a- k*a*Cos[t1 +  ϕ]}]}
],

AxesLabel -> {x,y},AxesStyle -> Arrowheads[0.03],AxesOrigin -> {0,0}, ImageSize ->800
],
{{k, 1, "Расстояние от центра до точки A"},0.01,2}, 
{{a, 4,"Радиус(от 0.01 до 10)"}, 0.01, 7},
{{ϕ, 0, "Угол отклонения точки от оси ординат(от 0 до 2π)"}, 0, 2Pi},
{{t1,0.01, "Время (от 0.01 до 100)"}, 0.01, 100}
]