私はtkizを使って点と矢印をつなげようとしています。矢印で動きを示しながら、時間の関数として何かの動きを示そうとしています。x座標のリストを用意して\foreachを使って描画するだけで、必要な場所に点を配置できます。検索してみましたが、やりたいことに関するものは見つかりませんでした。矢印を描くためのコードは次のとおりです。
\foreach \x in {0,1.2,2.4,3.6,4,4.4,4.8,6.8,8.8}
\draw[->] (\x,0.5) -- (\x+1,0.5);
しかし、これは次の座標に移動するのではなく、座標に長さ 1 の矢印を描くだけです。
ご協力いただければ幸いです。
答え1
ここでは 2 つの異なるアプローチを紹介します。
動議 1
点だけを表示してみませんか?すでに動きを視覚化しています。そのためには、ループ\node[dot] at (\x,.5) {};
内に空のテキストのノードを配置するだけです。\foreach
モーション2
モーション 1 から開始し、リストの最初のポイントを除いた矢印付きの小さな線だけを描きます。注:
- ドットの半径を4ptに設定
minimum size=4pt,inner sep=0
- 矢印を見やすくするために少しシフトを導入する
\draw[<-,colr,xshift=-2pt] (\x,-.5) -- +(-2pt,0);
- 両方のパラメータ(ここでは4ptと2pt)のバランスを取り、ポイントの位置も考慮します。
\documentclass[10pt,border=3mm,tikz]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[
dot/.style={fill=black,circle,minimum size=4pt,inner sep=0},
>={Stealth},
colr/.style={red!50},
]
% ~~~ help grid ~~~~~~~~~~~~~~~~~~~~~~~~~~
\draw[teal!50] (0,-1) grid (9,2);
% ~~~ motion 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\draw[gray] (0,.5) -- (8.8,.5);
\foreach \x in {0,1.2,2.4,3.6,4,4.4,4.8,6.8,8.8}
\node[dot] at (\x,.5) {};
% ~~~ motion 2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\draw[colr] (0,-.5) -- (8.8,-.5);
\foreach \x in {0,1.2,2.4,3.6,4,4.4,4.8,6.8,8.8}
\node[dot] at (\x,-.5) {};
\foreach \x in { 1.2,2.4,3.6,4,4.4,4.8,6.8,8.8}
\draw[<-,colr,xshift=-2pt] (\x,-.5) -- +(-2pt,0);
\end{tikzpicture}
\end{document}