假设曲线的参数方程是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]}
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!