Mach's doch so:
Delphi-Quellcode:
var sinus, cosinus: Double;
x: Integer;
begin
for x := 0 to Image1.Width do
begin
SinCos(x / Image1.Width * 4 * pi, sinus, cosinus);
if abs(cosinus) > 0.00001 then//0.00001 bei Bedarf ändern
begin
y := round( sinus/ cosinus);//sin(alpha)/cos(alpha)=tan(alpha)
LineTo(x, Image1.Height div 2 - y);
end;
end;
end;
Damit hast du auch solche Fälle überprüft, wo der Cosinus "beinahe" null ist und dürftest so auf der sicheren Seite sein.
MfG
Binärbaum