如何使用 Tikz 绘制 Frenet 框架?

如何使用 Tikz 绘制 Frenet 框架?

在此处输入图片描述

嗨,我是新手Tikz,但我已经绘制了 z 轴和 x 轴,但我不知道如何使用 Tikz 绘制曲线,如果整个图形需要时间,我只想要生成曲线的代码,然后我就可以继续。提前致谢。

答案1

用pgfmanual第13.5节描述的方法绘制这个并不难,只是比较麻烦。

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[>=stealth,pics/tang/.style={code={
    \draw[blue,->] (0,0) coordinate (M)-- (2,0) coordinate (v) node[pos=1.1]{$\vec v$}; 
    }}]
 \draw[->,teal] (0,0) coordinate (O) -- ++ (0,4) node[below left]{$z$};
 \draw[->,teal]  (O) -- ++ (4,0) node[above right,blue]{$x$};
 \draw[->,teal]  (O) -- ++ (0,1) node[below left]{$\vec\jmath$};
 \draw[->,teal]  (O) -- ++ (1,0) node[below left,blue]{$\vec\imath$};
 \draw[red,semithick] (0.2,3.6) to[bend left] 
  pic[pos=0.4,sloped]{tang} (3.8,1);
 \draw[densely dashed] (O) -- (M) node[circle,fill,inner sep=0.6pt,label={above:{$M$}}]{};
 \draw[green!60!black,->] (M) -- ($(M)!1cm!(O)$) coordinate[label={left:{$\vec n$}}] (n);
 \path ($ (n)!1cm!-90:(M) $) coordinate (aux1) (M)++(0,-1) coordinate (aux2)
  (intersection of n--aux1 and M--aux2) coordinate (a)
  ($(M)!(a)!(v)$) coordinate (tau);
 \draw[densely dashed] (n) -- (a) -- (tau);
 \draw[brown,->] (M)   -- (tau)node[pos=1.2,above]{$\vec \tau$};    
 \draw[purple,->] (M)   -- (a)node[below]{$\vec a$};    
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容