pro plotline,k_in,centre,linestyle=linestyle,color=color, $
device=device,normal=normal,data=data,clip=clip,noclip=noclip, $
thick=thick

;	Plots a straight line through a point given having
;	an inclination required.

if N_elements(linestyle) le 0 then linestyle=0
if N_elements(color) le 0 then color=!p.color
if N_elements(thick) le 0 then thick=!p.thick

Xb=float(!x.window)*!d.x_vsize
Yb=float(!y.window)*!d.y_vsize

	CASE 1 OF

keyword_set(noclip):		cl= $
	transpose([[0,!d.x_vsize], [0,!d.y_vsize]])

(N_elements(clip) le 0):	cl= $
	transpose([[Xb],[Yb]])

ELSE:	cl=(convert_coord(clip([[0,1],[2,3]]), $
  device=device, data=data, normal=normal, /to_dev))([0,1],*)

	ENDCASE

Xb=cl([0,2])	&	Yb=cl([1,3])

cen=(convert_coord(centre,device=device,data=data, $
	normal=normal, /to_dev))([0,1])


	CASE 1 OF

keyword_set(device):	k1=1.
keyword_set(normal):	k1=float(!d.y_vsize)/!d.x_vsize
		ELSE:	k1=(Yb(1)-Yb(0))/(Xb(1)-Xb(0))

	ENDCASE

k=(k_in+(k_in eq 0)*1e-7)*k1
B=cen(1)-k*cen(0)

X0=(Yb(1)-B)/k < (Yb(0)-B)/k > Xb(0) < Xb(1)
X1=(Yb(1)-B)/k > (Yb(0)-B)/k < Xb(1) > Xb(0)

Y0=k*X0+B > Yb(0) < Yb(1)
Y1=k*X1+B < Yb(1) > Yb(0)

	CASE 1 OF

abs(k) gt 1.e+3:	Z=[[X0,X0],[Yb]]
abs(k) lt 1.e-3: 	Z=[[Xb],[Y0,Y0]]
ELSE:			Z=[[X0,X1],[Y0,Y1]]

	ENDCASE

plots,transpose(Z),/dev,linestyle=linestyle,col=color,thick=thick

end