N=20;
xmin=-1;
xmax=1;
ymin=-1;
ymax=1;

Setwindow([-1.2,1.2], [-1.2,1.2]);

// lattice
CL=list();
for i=0:N
  for j=0:N
    x=xmin+(xmax-xmin)/N*i;
    y=ymin+(ymax-ymin)/N*j;
    CL($+1)=Circledata([x,y], 0.02);
  end
end

//Windisp(CL);

function fx=fx(X,Y); fx=-Y; endfunction
function fy=fy(X,Y); fy=-X; endfunction

Openfile('tex/vector_field_sample.tex');
Beginpicture('3cm');
Setax(6, ' ');

R=12; // ratio
for i=0:N
  for j=0:N
    x0=xmin+(xmax-xmin)/N*i;  // 格子
    y0=ymin+(ymax-ymin)/N*j;  //
    L=norm([fx(x0,y0),fy(x0,y0)]);  //ベクトル場のノルム
    
    if L==0 then  //ベクトル場のノルムが0のときは除外する
      continue;
    else
      x1=x0-fx(x0,y0)/R;  // 矢印の終点
      y1=y0-fy(x0,y0)/R;  // 
      x2=x0+fx(x0,y0)/R;  // 矢印の始点
      y2=y0+fy(x0,y0)/R;  //
      Arrowline([x1,y1], [x2,y2], 0.5, 30, 1, 1, 'l');
    end
  end
end

Endpicture(1);
Closefile();
