TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to sketch this figure.. if you guide me to draw one of this arrows with direction i would be grateful..

some directed arrows

share|improve this question
up vote 5 down vote accepted

You could use the tikz package and the arrows and decorations library to achieve something similar to your drawing.

  photon/.style={decorate,decoration={snake,post length=1mm}}
  \draw[gray,thick] (-2,0) -- (2,0);
  \draw[->] (135:2) -- node[below left,pos=.2] {$P$} (0,0);
  \draw[->] (0,0) -- node[below right] {$P$} (45:2);
  \draw[->] (0,0) -- node[above right] {$P$} (-45:2);
  \draw[->,photon] (0,0) -- node[above left] {$SV$} (60:2);
  \draw[->,photon] (0,0) -- node[below left] {$SV$} (-60:2);

enter image description here

share|improve this answer
tnx a lot for your attention and help... – hamed Jul 27 '14 at 22:11

This is a starting point. First define a style (LL here) for snake lines. Then draw a line via

\draw[options] (x1,y1) --(x2,y2)node[position]{label};       % Euclid coordi
\draw[options] (0,0) --(alpha:radius)node[position]{label};  % polar coordi

Options: thick, very thick, color, arrow type,...,LL]

enter image description here




  decoration={snake, segment length=3mm, amplitude=1mm,post length=2mm}



\draw[very thick] (-2,0) --(2,0);
\path[LL,thick,->,>=latex]      (0,0) -- (1,1) node[above]{SV};
\draw[LL,->,>=latex,thick,black](0,0) -- (1,-1)node[below]{SV};
\draw[->,>=latex,thick,black]   (-1,1) --(0,0) node[below]{P};

\draw[->,>=latex,thick,black] (0,0) -- (25:2)  node[below]{P};
\draw[->,>=latex,thick,black] (0,0) -- (-25:2) node[below]{P};

share|improve this answer

Here's a Metapost approach.

enter image description here

There are no path morphing "decorations" defined in plain MP, so I've supplied a function called sinuous that returns a sine-wavy copy of a given path. It should work nicely on curved paths too.

prologues := 3;
outputtemplate := "%j%c.eps";

s_lambda = 6; % the length of the waves
s_amplitude = 2; % their height

vardef sinuous expr p = 
  save psc;
  path psc; 
  psc = ((-2.74, -0.390885) for x=-2.64 step .1 until 2.74: -- (x,sind(57.29578x)) endfor) xscaled 0.159155 s_lambda yscaled s_amplitude ;
  point 0 of p { direction 0 of p } 
    for i=2 upto -2+floor(arclength p/s_lambda):
      .. psc rotated angle direction (arctime i*s_lambda of p) of p 
             shifted           point (arctime i*s_lambda of p) of p 
  .. {direction infinity of p} point infinity of p


z1 = -z2 = 80 right;
z3 = z1 rotated 45;
z4 = z1 rotated 80;
z5 = z1 rotated 140;
z6 = z1 rotated -20;
z7 = z1 rotated -40;

draw z1--z2 withpen pencircle scaled 2 withcolor .7 white;

drawarrow z5 -- origin cutafter fullcircle scaled 4bp;
drawarrow origin -- z3;
drawarrow origin -- z6;

drawarrow sinuous origin -- z4;
drawarrow sinuous origin -- z7;

fill fullcircle scaled 3 withcolor .67 red;

label.rt (btex $P$ etex, z3);
label.lft(btex $P$ etex, z5);
label.rt (btex $P$ etex, z6);
label.lft(btex $SV$ etex, z4);
label.bot(btex $SV$ etex, z7);

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.