[fizyka] ruch po okręgu

Odpowiedz Nowy wątek
2006-09-08 20:38
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 kożystam z x=cos(th)r+x0 y=sin(th)r+y0 to niby działa ale to robi tak odcinkami zamiast jednym ciągiem...


>>HI! I'm a .sygnature ViRuS... Copy me into your *.sygnature to help me spread.

Pozostało 580 znaków

2006-09-08 20:48
0

Powinno dzialac - co znaczy 'rysuje odcinkami'?

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-09-08 20:56
0

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


Piszę programy w językach: C, C++, Java, Python, Bash, PHP, SQL.
Przyjmuję zlecenia

Pozostało 580 znaków

2006-09-08 21:39
0

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

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-09-08 22:42
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.


Pozostało 580 znaków

2006-09-08 22:49
0

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

Pozostało 580 znaków

2006-09-09 12:27
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


>>HI! I'm a .sygnature ViRuS... Copy me into your *.sygnature to help me spread.

Pozostało 580 znaków

2006-09-09 12:42
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


Piszę programy w językach: C, C++, Java, Python, Bash, PHP, SQL.
Przyjmuję zlecenia

Pozostało 580 znaków

2006-09-09 13:27
0

dzięki


>>HI! I'm a .sygnature ViRuS... Copy me into your *.sygnature to help me spread.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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