계산된 좌표와 \draw를 사용하여 PGFplots 축 환경에서 벡터 그리기를 도와주세요.

계산된 좌표와 \draw를 사용하여 PGFplots 축 환경에서 벡터 그리기를 도와주세요.

\draw 및 계산된 좌표를 사용하면 발사체 운동 그래프가 어떻게 생겼는지 따르지 않는 이유는 무엇입니까? 좌표의 수식을 사용하여 작동하는 코드에 대한 제안 사항이 있습니까? 교과서 줄거리 시도

\begin{tikzpicture}[scale=0.6, transform shape]  %projectile motion
\begin{axis}[
width=12cm, %set bigger width
height=6cm,
xmin=0,xmax=10,
ymin=0,ymax=10,
xlabel=$x$,
ylabel=$y$,
axis x line = bottom,
axis y line = left,
axis line style={->},
%axis on top,
ticks = none
]
%variable definitions
\def\g{-9.8} %gravity
\def\v{10} %velocity
\def\ang{51} %angle

\pgfmathsetmacro{\t}{0}
%flight path
\addplot[
dashed,
thick,
domain=0:10,
samples=100,]
{{\g*(x^2)/(2*\v^2*cos(\ang)^2)+x*tan(\ang)}}
node[above,pos=0.5]{$V_y=0$};

%vector at start
\coordinate (A) at ({\v*cos(\ang)*\t},{\v*\t*sin(\ang)+0.5*\g*(\t^2)});
\coordinate (B) at ({\v*cos(\ang)*\t+\v*cos(\ang)},{\v*\t*sin(\ang)+0.5*\g*\t^2+\v*sin(\ang)+\g*\t});
\coordinate (C) at ({\v*cos(\ang)*\t+\v*cos(\ang)}, {\v*\t*sin(\ang)+0.5*\g*\t^2});
\coordinate (D) at ({\v*cos(\ang)*\t},{\v*\t*sin(\ang) + 0.5*\g*(\t^2) + \v*sin(\ang) + \g*\t)});
\draw[very thick,->](A)--(B);
\draw[very thick,->](A)--(C);
\draw[very thick,->](A)--(D);

%vector at end
%\pgfmathsetmacro{\a}{1.5}
\pgfmathsetmacro{\a}{{-1*(2/\g)*\v*sin(\ang)}}
\coordinate (E) at ({\v*cos(\ang)*\a},{\v*\a*sin(\ang)+0.5*\g*(\a^2)});
\coordinate (F) at ({\v*cos(\ang)*\a+\v*cos(\ang)},{\v*\a*sin(\ang)+0.5*\g*\a^2+\v*sin(\ang)+\g*\a});
\coordinate (G) at ({\v*cos(\ang)*\a+\v*cos(\ang)}, {\v*\a*sin(\ang)+0.5*\g*\a^2});
\coordinate (H) at ({\v*cos(\ang)*\a},{\v*\a*sin(\ang) + 0.5*\g*(\a^2) + \v*sin(\ang) + \g*\a)});
\draw[very thick,->](E)--(F);
\draw[very thick,->](E)--(G);
\draw[very thick,->](E)--(H);

%vector 1/2 up
%\pgfmathsetmacro{\b}{0.3}
\pgfmathsetmacro{\b}{{(-1*(2/\g)*\v*sin(\ang))/4}}
\coordinate (H) at ({\v*cos(\ang)*\b},{\v*\b*sin(\ang)+0.5*\g*(\b^2)});
\coordinate (I) at ({\v*cos(\ang)*\b+\v*cos(\ang)},{\v*\b*sin(\ang)+0.5*\g*\b^2+\v*sin(\ang)+\g*\b});
\coordinate (J) at ({\v*cos(\ang)*\b+\v*cos(\ang)}, {\v*\b*sin(\ang)+0.5*\g*\b^2});
\coordinate (K) at ({\v*cos(\ang)*\b},{\v*\b*sin(\ang) + 0.5*\g*(\b^2) + \v*sin(\ang) + \g*\b)});
\draw[very thick,->](H)--(I);
\draw[very thick,->](H)--(J);
\draw[very thick,->](H)--(K);

%vector halfway
%\pgfmathsetmacro{\c}{0.8}
\pgfmathsetmacro{\c}{{(-1*(2/\g)*\v*sin(\ang))/2}}
\coordinate (L) at ({\v*cos(\ang)*\c},{\v*\c*sin(\ang)+0.5*\g*(\c^2)});
\coordinate (M) at ({\v*cos(\ang)*\c+\v*cos(\ang)},{\v*\c*sin(\ang)+0.5*\g*\c^2+\v*sin(\ang)+\g*\c});
\coordinate (N) at ({\v*cos(\ang)*\c+\v*cos(\ang)}, {\v*\c*sin(\ang)+0.5*\g*\c^2});
\coordinate (O) at ({\v*cos(\ang)*\c},{\v*\c*sin(\ang) + 0.5*\g*(\c^2) + \v*sin(\ang) + \g*\c)});
\draw[very thick,->](L)--(M);
\draw[very thick,->](L)--(N);
\draw[very thick,->](L)--(O);

%vector 1/2 down
%\pgfmathsetmacro{\d}{1.2}
\pgfmathsetmacro{\d}{{(-1*(2/\g)*\v*sin(\ang))*0.75}}
\coordinate (P) at ({\v*cos(\ang)*\d},{\v*\d*sin(\ang)+0.5*\g*(\d^2)});
\coordinate (Q) at ({\v*cos(\ang)*\d+\v*cos(\ang)},{\v*\d*sin(\ang)+0.5*\g*\d^2+\v*sin(\ang)+\g*\d});
\coordinate (R) at ({\v*cos(\ang)*\d+\v*cos(\ang)}, {\v*\d*sin(\ang)+0.5*\g*\d^2});
\coordinate (S) at ({\v*cos(\ang)*\d},{\v*\d*sin(\ang) + 0.5*\g*(\d^2) + \v*sin(\ang) + \g*\d)});
\draw[very thick,->](P)--(Q);
\draw[very thick,->](P)--(R);
\draw[very thick,->](P)--(S);

\end{axis}

답변1

이는 OP 코드를 조사한 후 제안된 솔루션입니다.

  1. axis cs:x,ypgfplotstikz 명령을 사용할 때 구문을 사용해야 합니다 .
  2. 이 솔루션은 더 나은 프레젠테이션을 위해 배율 인수를 추가 \s하고 이를 0.2로 설정합니다. 1로 설정하면 \sOP의 원래 값이 됩니다.
  3. v_x벡터 드로잉의 경우 좌표 기술을 사용하여 및를 v_y그릴 수 있으므로 두 개의 점만 필요합니다 orthogonal.

여기에 이미지 설명을 입력하세요

암호

\documentclass[11pt]{article}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}[scale=0.6, transform shape]  %projectile motion
\begin{axis}[
width=12cm, %set bigger width
height=6cm,
xmin=0,xmax=10,
ymin=0,ymax=10,
xlabel=$x$,
ylabel=$y$,
axis x line = bottom,
axis y line = left,
axis line style={->},
%axis on top,
ticks = none,clip=false,
]
%variable definitions
\def\g{-9.8} %gravity
\def\v{10} %velocity
\def\ang{51} %angle
\def\s{0.2}
\pgfmathsetmacro{\t}{0}
%flight path
\addplot[
dashed,
thick,
domain=0:10,
samples=100,]
{{\g*(x^2)/(2*\v^2*cos(\ang)^2)+x*tan(\ang)}}
node[above,pos=0.5]{$V_y=0$};

%vector at start
\coordinate (A) at (axis cs: {\v*cos(\ang)*\t}, {\v*\t*sin(\ang)+0.5*\g*(\t^2)});
\coordinate (B) at (axis cs: {\v*cos(\ang)*\t+\s*\v*cos(\ang)}, {\v*\t*sin(\ang)+0.5*\g*\t^2+\s*(\v*sin(\ang)+\g*\t)});
%\node (C) at (axis cs: {\v*cos(\ang)*\t+\v*cos(\ang)}, {\v*\t*sin(\ang)+0.5*\g*\t^2}){c};
%\node (D) at (axis cs: {\v*cos(\ang)*\t}, {\v*\t*sin(\ang) + 0.5*\g*(\t^2) + \v*sin(\ang) + \g*\t}){d};
\draw[very thick,->](A)--(B);
\draw[very thick,->](A)--(B|-A);
\draw[very thick,->](A)--(B-|A);

%vector at end
\pgfmathsetmacro{\a}{1.5}
\pgfmathsetmacro{\a}{{-1*(2/\g)*\v*sin(\ang)}}
\coordinate (E) at (axis cs:{\v*cos(\ang)*\a},{\v*\a*sin(\ang)+0.5*\g*(\a^2)}){};
\coordinate (F) at (axis cs:{\v*cos(\ang)*\a+\s*\v*cos(\ang))}, {\v*\a*sin(\ang)+0.5*\g*\a^2+\s*(\v*sin(\ang)+\g*\a)});
%\coordinate (G) at (axis cs:{\v*cos(\ang)*\a+\v*cos(\ang))}, {\v*\a*sin(\ang)+0.5*\g*\a^2)});
%\coordinate (H) at (axis cs:{\v*cos(\ang)*\a}, {(\v*\a*sin(\ang) + 0.5*\g*(\a^2) + \v*sin(\ang) + \g*\a))});
\draw[very thick,->](E)--(F);
\draw[very thick,->](E)--(F |- E);
\draw[very thick,->](E)--(F-| E);
%
%vector 1/2 up
%\pgfmathsetmacro{\b}{0.3}
\pgfmathsetmacro{\b}{{(-1*(2/\g)*\v*sin(\ang))/4}}
\coordinate (H) at (axis cs:{\v*cos(\ang)*\b},{\v*\b*sin(\ang)+0.5*\g*(\b^2)});
\coordinate (I) at (axis cs: {\v*cos(\ang)*\b+\s*\v*cos(\ang)},{\v*\b*sin(\ang)+0.5*\g*\b^2+\s*(\v*sin(\ang)+\g*\b)});
%\coordinate (J) at (axis cs:{\v*cos(\ang)*\b+\v*cos(\ang)}, {\v*\b*sin(\ang)+0.5*\g*\b^2});
%\coordinate (K) at (axis cs:{\v*cos(\ang)*\b},{\v*\b*sin(\ang) + 0.5*\g*(\b^2) + \v*sin(\ang) + \g*\b)});
\draw[very thick,->](H)--(I);
\draw[very thick,->](H)--(I-|H);
\draw[very thick,->](H)--(I|-H);
%
%vector halfway
%\pgfmathsetmacro{\c}{0.8}
\pgfmathsetmacro{\c}{{(-1*(2/\g)*\v*sin(\ang))/2}}
\coordinate (L) at (axis cs:{\v*cos(\ang)*\c},{\v*\c*sin(\ang)+0.5*\g*(\c^2)});
\coordinate (M) at (axis cs:{\v*cos(\ang)*\c+\s*\v*cos(\ang))},{\v*\c*sin(\ang)+0.5*\g*\c^2+\s*(\v*sin(\ang)+\g*\c)});
%\coordinate (N) at (axis cs:{\v*cos(\ang)*\c+\v*cos(\ang)}, {\v*\c*sin(\ang)+0.5*\g*\c^2});
%\coordinate (O) at (axis cs:{\v*cos(\ang)*\c},{\v*\c*sin(\ang) + 0.5*\g*(\c^2) + \v*sin(\ang) + \g*\c)});
\draw[very thick,->](L)--(M);
\draw[very thick,->](L)--(M|-L);
\draw[very thick,->](L)--(M-|L);

%vector 1/2 down
%\pgfmathsetmacro{\d}{1.2}
\pgfmathsetmacro{\d}{{(-1*(2/\g)*\v*sin(\ang))*0.75}}
\coordinate (P) at (axis cs:{\v*cos(\ang)*\d},{\v*\d*sin(\ang)+0.5*\g*(\d^2)});
\coordinate (Q) at (axis cs:{(\v*cos(\ang)*\d+\s*\v*cos(\ang))},{\v*\d*sin(\ang)+0.5*\g*\d^2+\s*(\v*sin(\ang)+\g*\d)});
%\coordinate (R) at (axis cs:{\v*cos(\ang)*\d+\v*cos(\ang)}, {\v*\d*sin(\ang)+0.5*\g*\d^2});
%\coordinate (S) at (axis cs:{\v*cos(\ang)*\d},{\v*\d*sin(\ang) + 0.5*\g*(\d^2) + \v*sin(\ang) + \g*\d)});
\draw[very thick,->](P)--(Q);
\draw[very thick,->](P)--(Q|-P);
\draw[very thick,->](P)--(Q-|P);
\end{axis}
\end{tikzpicture}
\end{document}

관련 정보