Animacja kontrolki w c# , przyśpieszenie , prędkość stała,h

Studentx
Użytkownik
Użytkownik
Posty: 10
Rejestracja: 24 sty 2010, o 16:12
Płeć: Mężczyzna
Lokalizacja: Brak
Podziękował: 1 raz

Animacja kontrolki w c# , przyśpieszenie , prędkość stała,h

Post autor: Studentx »

Witam

Piszę program w którym kwadratowa kontrolka o pozycji powiedzmy x,y przyśpiesza do pewnej prędkości potem porusza się tą prędkością przez określony czas i hamuje tak aby trafić do punktu docelowego.

mam więc:
- x,y początkowe - pozycja kontrolki w momencie gdy ma predkosc 0

- x,y końcowe - pozycja kontrolki gdy dojedzie na miejsce

- czas w jakim kontrolka powinna to wszystko zrobić.

- czas jaki minął od początku animacji

Zapewne potrzebne są też jakieś inne parametry.

Jak bym nie próbował tego robić to mi nie wychodzi , nie potrafię połączyć tych trzech wzorów z fizyki aby mi to jakoś wyszło.

Jak by ktoś mógł to jakoś napisać był bym wdzięczny.
Ostatnio zmieniony 1 cze 2010, o 19:35 przez miki999, łącznie zmieniany 1 raz.
Powód: Temat umieszczony w złym dziale.
Awatar użytkownika
miki999
Użytkownik
Użytkownik
Posty: 8691
Rejestracja: 28 lis 2007, o 18:10
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 36 razy
Pomógł: 1001 razy

Animacja kontrolki w c# , przyśpieszenie , prędkość stała,h

Post autor: miki999 »

A co chcesz wiedzieć? Jaką pozycję ma mieć ta kontrolka w danym momencie czy z jaką prędkością ma się poruszać? A może coś jeszcze innego?
Studentx
Użytkownik
Użytkownik
Posty: 10
Rejestracja: 24 sty 2010, o 16:12
Płeć: Mężczyzna
Lokalizacja: Brak
Podziękował: 1 raz

Animacja kontrolki w c# , przyśpieszenie , prędkość stała,h

Post autor: Studentx »

a tak , no więc chcę widzieć jaką ma mieć pozycję w danym czasie .
Awatar użytkownika
miki999
Użytkownik
Użytkownik
Posty: 8691
Rejestracja: 28 lis 2007, o 18:10
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 36 razy
Pomógł: 1001 razy

Animacja kontrolki w c# , przyśpieszenie , prędkość stała,h

Post autor: miki999 »

Jeżeli przyspiesza tylko do określonej prędkości i dalej porusza się jednostajnie, to jeżeli masz dany czas \(\displaystyle{ t}\), to będziesz musiał zrobić warunek (if, czy coś takiego), by sprawdzić czy dana prędkośc została osiągnięta. Jeżeli nie, to po prostu dzielisz przedział czasowy na \(\displaystyle{ 2}\) i liczysz:
\(\displaystyle{ \begin{cases} x(t)=x_0+ \frac{a t^2}{2} \quad dla\ t< \frac{t_k}{2} \\ x(t)=\left[x_0+ \frac{a \left(\frac{t_k}{2}\right)^2}{2} + \frac{(t- \frac{t_k}{2}) a\cdot t_k} {2} \right]- \frac{a\left(t- \frac{t_k}{2}\right) ^2}{2} \quad dla\ t \in \langle \frac{t_k}{2}, t_k\rangle \end{cases}}\)

2. równość da się uprościć. Dla ygrek będzie analogicznie. Jeżeli ma przyspieszać do pewnej predkości, później jednostajnie i spowalniać to problem może tkwić w doborze przyspieszenia.

Trzeba wyliczyć przyspieszenie (jeżeli \(\displaystyle{ x_k}\) jest końcowe):
\(\displaystyle{ x(t_k)=x_0+ \frac{a t_k^2}{8}- \frac{a\left(t-\frac{t_k}{2}\right) ^2}{2}+ \frac{\left(t- \frac{t_k}{2}\right) t_k }{2} =x_k}\)

Po chwili wyliczeń otrzymujemy:
\(\displaystyle{ a= \frac{8(x_k-x_0)}{t_k ^2}}\)
Należy to podstawić do \(\displaystyle{ a}\) do wzorów w układzie równań.
Dla ygrek sytuacja jest analogiczna.

Myślę, że nie zrobiłem błędu. Jakby ktoś coś zauważył, to proszę krzyczeć.



Pozdrawiam.
Studentx
Użytkownik
Użytkownik
Posty: 10
Rejestracja: 24 sty 2010, o 16:12
Płeć: Mężczyzna
Lokalizacja: Brak
Podziękował: 1 raz

Animacja kontrolki w c# , przyśpieszenie , prędkość stała,h

Post autor: Studentx »

Dzięki wielkie miki999.
ODPOWIEDZ