
Я хочу указать длину кривой S. Использовал алгоритм сглаживания таким же образом, но кривая не выглядит «гладкой»:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}
[
>=stealth,
cm={-1,-1,1,0,(0,0)},
x=3.85mm,
z=-1cm,
axis/.style={-, black},
vector/.style={-{Stealth[length=6,width=3]}, very thick, black}
]
\draw (0,0,0) node[left]{$O$};
\draw[axis] (0,0,0) -- (4,0,0) node[left]{$X$};
\draw[axis] (0,0,0) -- (0,4,0) node[right]{$Y$};
\draw[axis] (0,0,0) -- (0,0,4) node[left]{$Z$};
\draw[vector] (0,0,0) -- (1,1,2) node[circle,fill,inner sep=0.7pt,label=left:$ A $](){};
\draw (0.5,0.5,1) node[right]{$ \vec{r}_{0} $};
\draw[vector] (0,0,0) -- (2.5,4,2.5) node[circle,fill,inner sep=0.7pt,label=right:$ B $](){};
\draw (1.25,2,1.25) node[below]{$ \vec{r}(t) $};
\draw[vector] (1,1,2) -- (2.5,4,2.5);
\draw (1.75,2.25,2.25) node[below]{$ \Delta \vec{r} $};
\draw [thick] plot [smooth, tension=1] coordinates { (1,1,2) (1.75,2.5,2.5) (2.5,4,2.5)};
\draw [>=Bracket, <->] plot [smooth, tension=1] coordinates { (1,1,2.25) (1.75,2.5,2.75) (2.5,4,2.75)};
\draw (1.75,2.5,2.5) node[above]{$ s $};
\end{tikzpicture}
\end{document}
решение1
Итак, проблема не в координатах или чем-то еще, а в plot
спецификаторе пути, обрабатывающем кончики стрелок, это описано здесь:Параметр Smooth иногда приводит к появлению неправильных наконечников стрелок в PGFplots. Джейк предлагает решение для добавления наконечников стрелок в PGFplots, в частности.
Так как вы используете TikZ, это не сработает. Но у меня есть обходной путь. Во-первых, так как график с Brackets
такой же, как и ниже, вам следует использовать опцию shift
, которая делает рисунок более лаконичным. Хорошо, теперь, когда мы знаем, что проблема возникает, когда мы добавляем наконечники стрелок, мы просто нарисуем без наконечников и добавим их позже:
\draw[>={Bracket[]}, postaction={<->, tips=true}, shift={(0,0,.25)}] plot[smooth,...
Ключ tips=true
перезаписывает правила добавления наконечников стрелок, заставляя TikZ добавлять стрелки даже если нет рисунка. Результат:
МВЭ
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}
[
>=stealth,
cm={-1,-1,1,0,(0,0)},
x=3.85mm,
z=-1cm,
axis/.style={-, black},
vector/.style={-{Stealth[length=6,width=3]}, very thick, black}
]
\draw (0,0,0) node[left]{$O$};
\draw[axis] (0,0,0) -- (4,0,0) node[left]{$X$};
\draw[axis] (0,0,0) -- (0,4,0) node[right]{$Y$};
\draw[axis] (0,0,0) -- (0,0,4) node[left]{$Z$};
\draw[vector] (0,0,0) -- (1,1,2) node[circle,fill,inner sep=0.7pt,label=left:$ A $](){};
\draw (0.5,0.5,1) node[right]{$ \vec{r}_{0} $};
\draw[vector] (0,0,0) -- (2.5,4,2.5) node[circle,fill,inner sep=0.7pt,label=right:$ B $](){};
\draw (1.25,2,1.25) node[below]{$ \vec{r}(t) $};
\draw[vector] (1,1,2) -- (2.5,4,2.5);
\draw (1.75,2.25,2.25) node[below]{$ \Delta \vec{r} $};
\draw [thick] plot [smooth, tension=1] coordinates { (1,1,2) (1.75,2.5,2.5) (2.5,4,2.5)};
\draw [>={Bracket[]}, postaction={<->, tips=true}, shift={(0,0,.25)}] plot [smooth, tension=1] coordinates { (1,1,2) (1.75,2.5,2.5) (2.5,4,2.5) };
\draw (1.75,2.5,2.5) node[above]{$ s $};
\end{tikzpicture}
\end{document}