home *** CD-ROM | disk | FTP | other *** search
/ Atari FTP / ATARI_FTP_0693.zip / ATARI_FTP_0693 / Tex / texdr179.lzh / texdraw / linmacro.mf < prev    next >
Text File  |  1991-02-06  |  2KB  |  58 lines

  1. % Diese Datei wird bei der METAFONT-Uebersetzung von TeXdraw benoetigt.
  2. % Die Makros stammen von Lutz Birkhahn, dem dafuer grosser Dank gebuehrt.
  3. %
  4. % dash_length ist die Laenge der Striche sowie der Luecken bei gestrichelten
  5. % Linien
  6. dash_length := 9;
  7. %
  8. % dot_distance ist der Abstand der Punkte bei dot_line
  9. dot_distance := 5;
  10. %
  11. % arrowhead_length ist die Laenge der beiden Pfeilspitzen-Schenkel,
  12. % arrowhead_dir der Winkel zwischen Pfeilspitze und -Schaft.
  13. arrowhead_length := 10;
  14. arrowhead_dir := 20;
  15. %
  16. def dash_line(expr xa,ya,xb,yb) =
  17.  save p, p_length, delta;
  18.  path p;
  19.  numeric p_length, delta;
  20.  p = (xa,ya)--(xb,yb);
  21.  p_length = length((xa,ya) - (xb,yb));
  22.  delta = dash_length / p_length;
  23.  for i=0 step 2delta until 1:
  24.   draw point i of p -- point i+delta of p;
  25.  endfor
  26. enddef;
  27. %
  28. def dot_line(expr xa,ya,xb,yb) =
  29.  save p, delta;
  30.  path p;  numeric delta;
  31.  p = (xa,ya)--(xb,yb);
  32.  delta = dot_distance / length((xb,yb) - (xa,ya));
  33.  for i=0 step delta until 1:
  34.   drawdot point i of p;
  35.  endfor
  36. enddef;
  37. %
  38. % arrow:
  39. %                            .
  40. %                ***         .
  41. %                   ***      .
  42. %  arrowhead_dir -->   ***   .
  43. %        .................***<--(0,0).............
  44. %                      ***   .
  45. %                   ***      .
  46. %                ***         .
  47. %                            .
  48. path arrow;
  49. arrow =   arrowhead_length * dir(180-arrowhead_dir) -- (0,0)
  50.        -- arrowhead_length * dir(180+arrowhead_dir);
  51. %
  52. def vec_line(expr xa,ya,xb,yb) =
  53.  draw (xa,ya) -- (xb,yb);
  54.  draw arrow rotated angle ((xb,yb)-(xa,ya)) shifted (xb,yb);
  55. enddef;
  56. %
  57.  
  58.