home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
pc
/
0500
/
CCE_0500.ZIP
/
CCE_0500.PD
/
LINMACRO.MF
< prev
next >
Wrap
Text File
|
1993-04-10
|
2KB
|
62 lines
% Diese Datei wird bei der METAFONT-Uebersetzung von TeXdraw benoetigt.
% Die Makros stammen von Lutz Birkhahn, dem dafuer grosser Dank gebuehrt.
%
% dash_length ist die Laenge der Striche sowie der Luecken bei gestrichelten
% Linien
dash_length := 9;
%
% dot_distance ist der Abstand der Punkte bei dot_line
dot_distance := 5;
%
% arrowhead_length ist die Laenge der beiden Pfeilspitzen-Schenkel,
% arrowhead_dir der Winkel zwischen Pfeilspitze und -Schaft.
arrowhead_length := 10;
arrowhead_dir := 20;
%
def dash_line(expr xa,ya,xb,yb) =
save p, p_length, delta;
path p;
numeric p_length, delta;
p = (xa,ya)--(xb,yb);
p_length = length((xa,ya) - (xb,yb));
delta = dash_length / p_length;
for i=0 step 2delta until 1:
draw point i of p -- point i+delta of p;
endfor
enddef;
%
def dot_line(expr xa,ya,xb,yb) =
save p, delta;
path p; numeric delta;
p = (xa,ya)--(xb,yb);
delta = dot_distance / length((xb,yb) - (xa,ya));
for i=0 step delta until 1:
drawdot point i of p;
endfor
enddef;
%
% arrow:
% .
% *** .
% *** .
% arrowhead_dir --> *** .
% .................***<--(0,0).............
% *** .
% *** .
% *** .
% .
path arrow;
arrow = arrowhead_length * dir(180-arrowhead_dir) -- (0,0)
-- arrowhead_length * dir(180+arrowhead_dir);
%
def arrowhead(expr xa,ya,xb,yb) =
draw arrow rotated angle ((xb,yb)-(xa,ya)) shifted (xb,yb);
enddef;
%
def vec_line(expr xa,ya,xb,yb) =
draw (xa,ya) -- (xb,yb);
arrowhead(xa,ya,xb,yb);
enddef;
%