{
}
program rotation;
{
	Compile with "gpc rotation.pas" and run "a.out" to table of
	errors in image position with bearing for a particular pivot-ccd
	distance and offset of pivot point from normal running through
	the ccd center.
}

const
	fsd=4;{field dize decimals}
	fsr=1;{field size real}
	a=10;

var 	
	x,h,alpha,theta,d:real;
	i,j:integer;
	
begin
	for i:=-17 to +17 do begin
		h:=i/10;
		write(h:fsr:fsd,' ');
		for j:=0 to 10 do begin
			d:=j/10;
			theta:=arctan(d/a);
			alpha:=arctan(h/a);
			x:=h*cos(theta)+h*sin(theta)*sin(theta+alpha)/cos(theta+alpha);
			write(x-h:fsr:fsd,' ');
		end;
		writeln
	end;
end.