使用 Tikz 的矢量图

使用 Tikz 的矢量图

如何使用 TikZ 制作以下矢量图?

矢量图

答案1

这是一种可能性;由于问题中没有提供任何信息,我假设“I”和“J”是任意放置的:

在此处输入图片描述

代码:

\documentclass[border=3pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}

\begin{tikzpicture}[>=latex]
\coordinate (O) at (0,0);
\coordinate (I) at ([shift={(30:2cm)}]O);
\coordinate (J) at ([shift={(120:5cm)}]O);
\coordinate (F) at ( $(I)+(J)$ );
% the circles (ellipses)
\draw
  let
  \p1=(I),
  \p2=(J)
  in
  (0,\y1) ellipse [x radius=\x1,y radius=0.2cm]
  (0,\y2) ellipse [x radius=\x2,y radius=0.2cm];
% the vector lines
\foreach \Valor in {I,J,F}
  \draw[->] (O) -- (\Valor);
% the dashed lines
\draw[dashed] 
  (J) -- (F) -- (I);
% the labels
\foreach \Valor/\Pos in {O/below,I/right,J/left,F/above}
  \node[\Pos] at (\Valor) {$\Valor$};    
% axis lines (optional)
\draw[gray!20] 
  (O) -- ++(0pt,6cm);  
\draw[gray!20] 
  ([xshift=-3cm]O) -- ([xshift=3cm]O);  
\end{tikzpicture}

\end{document}

如果圆(椭圆)的半径相同,则代码会更短:

\documentclass[border=3pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}

\begin{tikzpicture}[>=latex]
\def\PosCirci{1}
\def\PosCircii{5}
\def\radius{2cm}
\coordinate (O) at (0,0);
\draw 
  (0,\PosCirci) ellipse [x radius=\radius,y radius=0.2cm]
  (0,\PosCircii) ellipse [x radius=\radius,y radius=0.2cm];
\coordinate (I) at (\radius,\PosCirci);
\coordinate (J) at (-\radius,\PosCircii);
\coordinate (F) at ( $(I)+(J)$ );
% the vactor lines
\foreach \Valor in {I,J,F}
  \draw[->] (O) -- (\Valor);
% the dashed lines
\draw[dashed] 
  (J) -- (F) -- (I);
% the labels
\foreach \Valor/\Pos in {O/below,I/right,J/left,F/above}
  \node[\Pos] at (\Valor) {$\Valor$};    
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容