[fizyka] ruch po okręgu

0

Jaki jest wzór na pozycję ciała w ruchu po okręgu? Ale taki żeby były współrzędne i było to "kreślenie kółka", bo jak korzystam z x=cos(th)*r+x0 y=sin(th)*r+y0 to niby działa ale to robi tak odcinkami zamiast jednym ciągiem...

0

Powinno dzialac - co znaczy 'rysuje odcinkami'?

pozdrawiam
johny

0

1.przyrost kąta jest za duży
2.któraś zmienna jest całkowita zamiast zmiennoprzecinkowej

0

Aha, jeszcze moze byc, ze sin i cos przyjmuja argumenty w radianach, a ty podajesz np. w stopniach, to czesty blad.

pozdrawiam
johny

0

albo rysujesz pixele zamiast linie o początku w punkcie n-1 a końcu w punkcie n :) Rysując linie niee musisz mieć tak małego kroku (przyrostu kąta) jak przy pixelach.

0

dokladniejsze jest radiussin(kątpi/180); podajesz kat w stopniach
ale ogolnie z kola kwadratu nie zrobisz

0

tzn. ja zrobiłem tak że mam środek koła w x0 i y0 a Theta (kąt) jest 0 i liczę z tamtych współrzędne i tak w "kółko" pętlą 360 razy zwiększając Thetę

to jest w timerze:

// ...
  Canvas.Pixels[oX, oY]:=clRed;
  Theta:=sbTimeSpan.Position;
  posX1:=Cos(Theta)*R1+oX;
  posY1:=Sin(Theta)*R1+oY;
  Canvas.Pixels[Round(posX1), Round(posY1)]:=clBlack;
  (*Canvas.LineTo(Round(posX1), Round(posY1));
  Canvas.MoveTo(Round(posX1), Round(posY1));*)
  lblTimeSpan.Caption:=FloatToStr(Theta);
//...

sbTimeSpan to ScrollBar z max = 360
potem inkrementuję sbTimeSpan.Position

i to rysuje takie kropkowane kółko, potem po całym obiegu robi kropkę obok każdej kropki itd aż się połączą zamiast w jednym ciągu... bo chciałbym w ten sposób poruszać np. TShape'em albo TImage'em a to bezczelnie skacze

0
FALCO napisał(a)

i to rysuje takie kropkowane kółko, potem po całym obiegu robi kropkę obok każdej kropki itd aż się połączą zamiast w jednym ciągu...

czyli podajesz stopnie zamiast radianów. u Ciebie funkcja sin/cos dostaje liczby o różnicy 1 zamiast 0,01745(3), czyli masz ~57 kółek zamiast 1.
DegToRad

0

dzięki

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