Kąty i Canvas.

0

Mam taką prockę:

procedure TfrmZegar.RysujKreske(promien, kat, x, y: integer;
  Canvas: TCanvas);
var
  xs,ys : integer;
begin
  xs := round(promien * Sin(kat) + x);
  ys := round(promien * Cos(kat) + y);
  Canvas.MoveTo(xs, ys);
  Canvas.LineTo(x, y);
end;

a tak ryzuję kąt:

  RysujKreske(200, 0, 250, 250, Canvas);
  RysujKreske(200, (StrToInt(Edit1.Text) - 1) * 44, 250, 250, Canvas);

Jak zrobić żeby otrzymać dokładnie taki kąt jaki chcę? Bo to co się tam pokazuje to są jakieś hejrezje ;-)

Sam znalazłem rozwiązanie i się nim podzielę, bo może ktoś też z tego skorzysta.

zmodyfikowałem procke:

procedure TfrmZegar.RysujKreske(promien, x, y: integer; kat: Extended;
  Canvas: TCanvas);
var
  xs,ys : integer;
begin
  xs := round(promien * Sin(kat) + x);
  ys := round(promien * Cos(kat) + y);
  Canvas.MoveTo(xs, ys);
  Canvas.LineTo(x, y);
end;

oraz jej wywołanie:

procedure TfrmZegar.Button1Click(Sender: TObject);
begin
  RysujKreske(200, 250, 250, 0, Canvas);
  RysujKreske(200, 250, 250, DegToRad(StrToFloat(Edit1.Text)), Canvas);
end;

Chodzi o to że trzeba podać kąt w radianach!

0

Dlaczego moja poprawna odpowiedź została skasowana i zastąpiona przez pq jednym zdaniem i zmienionym kodem na koncu pierwszego posta?????

1 użytkowników online, w tym zalogowanych: 0, gości: 1