【Mathematica】绘制曲线曲率圆圆心的轨迹
的有关信息介绍如下:
本文,用Mathematica来挥之给定了参数方程的平面曲线,曲率圆圆心的轨迹。
并以此来重温微分几何的一些知识。
尤其是,前段时间,有网友提问,怎么求曲线的法向量。本文一起解答。
假设曲线的参数方程是r[t],先求出曲线的【单位切向量】:
qie[t_] := Evaluate[D[r[t], t]/Sqrt[D[r[t], t].D[r[t], t]] // FullSimplify]
对参数方程求导,得到切向量,再归一化处理,才是单位切向量。
再求曲线的单位法向量:
对【单位切向量】求导,得到法向量;
对法向量进行归一化处理,得到单位法向量。
dr[t_] := Evaluate[D[qie[t], t]]
fa[t_] := Evaluate[dr[t]/Sqrt[dr[t].dr[t]] // FullSimplify]
注意,一定是对【单位切向量】求导才能得到法向量,而如果直接对r[t]的导数求导,得到的一般不是法向量。
曲率半径是曲率的倒数:
qulvr[t_] := 1/ArcCurvature[r[t], t]
曲率中心,就是在法向量的方向上:
qulvzx[t_] := Evaluate[r[t] + qulvr[t]*fa[t]]
再把曲率圆画出来:
Circle[qulvzx[tt], qulvr[t] /. t -> tt]
这里要遵守一个求导原则:先求导,在赋值。
否则机器会报错。
然后把曲率圆圆心轨迹画出来。
这个轨迹曲线的参数方程,恰恰就是qulvzx[t]。
ParametricPlot[qulvzx[t], {t, 0, 2 Pi}, PlotStyle -> RGBColor[1, 0, 1]]
而原曲线的参数方程是r[t_] := (Sin[2 t]) {Cos[t], Sin[t]}。
更换原曲线的参数方程:
r[t_] := (Sin[3 t]) {Cos[t], Sin[t]}
这是一条三叶玫瑰线。
三叶玫瑰线的极坐标方程,加上一个正数,会“膨胀”起来:
r[t_] := (1/3 *(2 + Sin[3 t])) {Cos[t], Sin[t]}
当曲率中心完全位于闭曲线内部,且曲线是简单曲线,那么这条曲线一定是凸曲线:
r[t_] := (1/21 (20 + Sin[3 t])) {Cos[t], Sin[t]}
再试试它:
(1/51 (50 + Sin[5 t])) {Cos[t], Sin[t]}
如果一条平面闭曲线,本身不是简单曲线,就一定不是凸曲线。
(1/2 (1 + Sin[2 t])) {Cos[t], Sin[t]}



