【Mathematica】绘制曲线曲率圆圆心的轨迹

时间:2024-10-24 05:29:46

1、假设曲线的参数方程是r[t],先求出曲线的【单位切向量】:qie[t_] := Evaluate[D[r[t], t]/Sqrt[D[r[t], t].D[r[t], t]] // FullSimplify]对参数方程求导,得到切向量,再归一化处理,才是单位切向量。

【Mathematica】绘制曲线曲率圆圆心的轨迹

2、再求曲线的单位法向量:对【单位切向量】求导,得到法向量;对法向量进行归一化处理,得到单位法向量。dr[t_] := Evaluate[D[qie[t], t]]fa[t_] := Evaluate[dr[t]/Sqrt[dr[t].dr[t]] // FullSimplify]注意,一定是对【单位切向量】求导才能得到法向量,而如果直接对r[t]的导数求导,得到的一般不是法向量。

【Mathematica】绘制曲线曲率圆圆心的轨迹

3、曲率半径是曲率的倒数:qulvr[t_] := 1/ArcCurvature[r[t], t]曲率中心,就是在法向量的方向上:qulvzx[t_] := Evaluate[r[t] + qulvr[t]*fa[t]]

【Mathematica】绘制曲线曲率圆圆心的轨迹

4、再把曲率圆画出来:Circle[qulvzx[tt], qulvr[t] /. t -> tt]这里要遵守一个求导原则:先求导,在赋值。否则机器会报错。

【Mathematica】绘制曲线曲率圆圆心的轨迹

5、然后把曲率圆圆心轨迹画出来。这个轨迹曲线的参数方程,恰恰就是qulvzx[t]。ParametricPlot[qulvzx[t], {t, 0, 2 Pi}, PlotStyle -> RGBColor[1, 0, 1]]而原曲线的参数方程是r[t_] := (Sin[2 t]) {Cos[t], Sin[t]}。

【Mathematica】绘制曲线曲率圆圆心的轨迹

6、更换原曲线的参数方程:r[t_] := (Sin[3 t]) {Cos[t], Sin[t]}这是一条三叶玫瑰线。

【Mathematica】绘制曲线曲率圆圆心的轨迹

7、三叶玫瑰线的极坐标方程,加上一个正数,会“膨胀”起来:r[t_] := (1/3 *(2 + Sin[3 t])) {Cos[t], Sin[t]}

【Mathematica】绘制曲线曲率圆圆心的轨迹

8、当曲率中心完全位于闭曲线内部,且曲线是简单曲线,那么这条曲线一定是凸曲线:r[t_] := (1/21 (20 + Sin[3 t])) {Cos[t], Sin[t]}

【Mathematica】绘制曲线曲率圆圆心的轨迹

9、再试试它:(1/51 (50 + Sin[5 t])) {Cos[t], Sin[t]}

【Mathematica】绘制曲线曲率圆圆心的轨迹

10、如果一条平面闭曲线,本身不是简单曲线,就一定不是凸曲线。(1/2 (1 + Sin[2 t])) {Cos[t], Sin[t]}

【Mathematica】绘制曲线曲率圆圆心的轨迹
© 手抄报圈