Mam taki o to kod:
function KatPrzeciecia(A1, A2, B1, B2: TPoint):Extended;
var k1,k2:extended;
begin // 2
k1:=ArcTan((A1.y-A2.y)/(A1.x-A2.x));
k2:=ArcTan((B1.y-B2.y)/(B1.x-B2.x));
result:=k2-k1;
end;
i
procedure TPoligon.MouseMove(Shift: TShiftState; X, Y: Integer);
var nkat:Extended;
p:TPoint;
begin
if mdObrot then
begin
if not SKatE then
begin
p:=POINT(Po.x,Po.y+10);
// 1
skat:=KatPrzeciecia(POINT(X,Y),Po,Po,p);
SKatE:=true;
end;
// [...]
end;
W punkcie 1 wartość zmiennej p wynosi np. (13,17), jednak w punkcie 2 parametr B2 zachowuje się tak jakby nie był zainicjowany (wartość losowa), a powinien być (13,17). Pierwsze 3 parametry zachowują się w porządku (są takie jakie miały być). Dodam jeszcze, że te dwie funkcje są w różnych unitach (chociaż to nie powinno mieć wpływu). Co robię źle?