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
여기에 두 가지 접근 방식이 있습니다.
모션 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}