Poprawa płynnosci animacji

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
seyu
Posty: 5
Rejestracja: 31 maja 2012 20:37
Wersja środowiska: LabVIEW 2011

Poprawa płynnosci animacji

Post autor: seyu »

Witam wszystkich,
mam za zadanie stworzyć w LabView symulator działania windy. Chcę zrobić animację polegającą na przesuwaniu kabiny i przeciwwagi w pionie (property node>position top +dla drzwi left) i adekwatnej zmianie długości pasów (property node>button size height). Dodatkowo przy jeździe w górę/w dół czy postoju silnik obraca się w prawo/lewo lub stoi, ale to już booleanowskie zmienne załatwiają widzialność odpowiednich gifów. Narazie nie robie sterowania, bo chcę usprawnić całą animację.

W związku z tym, że jestem w temacie raczej żółtodziobem, miałem trochę problemów ale ze stworzeniem samej animacji sobie poradziłem (także przy pomocy tego forum :) ). Ale teraz pojawił się problem poważniejszy. Mianowicie elementy windy poruszają się przez powiązania "Property node" do odpowiednich zmiennych, ale nie odbywa się to płynnie. Narazie tak na próbę ustawiłem dwa suwaki z odpowiednimi wartościami aby manipulować windą i otwieraniem drzwi i wszystko działa, ale "klatkowo". Wszystkie elementy uzależnione są od tych dwóch zmiennych prostymi zaleznościami matematycznymi (dodawanie, mnożenie), a pomimo tego winda podskakuje zamiast jechać (tylko rozsuwanie drzwi działa płynnie). Dodam, że elementów ruchomych jest tu 6 (kabina, 2x drzwi, przeciwwaga, pas windy i pas przeciwwagi) i mozliwe że powinienem zostawić tylko konieczne czyli kabinę i drzwi, ale nawet wtedy animacja nie działa płynnie, bo próbowałem. Czy może mi ktoś pomóc w usprawnieniu pracy tego programu? Poniżej linki do obrazków z interfejsem użytkownika i programem.

interfejs użytkownika
http://www.picshot.pl/public/view/full/123105
schemat blokowy
http://www.picshot.pl/public/view/full/123106

Pozdrawiam
seyu
Awatar użytkownika
darkon
Posty: 26
Rejestracja: 13 lut 2011 14:21
Wersja środowiska: Nie mam LabVIEW
Lokalizacja: Krk

Poprawa płynnosci animacji

Post autor: darkon »

W przykładach na Notifier jest winda zrobiona. Tam działa to dość płynnie z tego co pamiętam.
Pomogłem?... pochwal mnie :)
Awatar użytkownika
smiga
Administrator
Posty: 823
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2019
Lokalizacja: Słupsk

Re: Poprawa płynnosci animacji

Post autor: smiga »

Z tego co widać w Twoim kodzie to pętla wykonuje się 10 razy na s ... więc trudno tu mówić o płynności.
Może wrzuć swój kod - zobaczymy co zmienić.
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Pomogłem ... postaw kawę: https://buycoffee.to/smiga
seyu
Posty: 5
Rejestracja: 31 maja 2012 20:37
Wersja środowiska: LabVIEW 2011

Poprawa płynnosci animacji

Post autor: seyu »

przed ustawieniem wykonywania się pętli 10 razy na sekundę było identycznie. Problemem jest to, że jak poruszam windą w górę lub w dół, to np. najpierw jadą drzwi, potem je goni kabina itp. Nie miałem czasu przez ostatnie dni ale spróbuje zrobić coś z Notifierem jeszcze, może coś pomoże.

Czy jest możliwe to mój komputer jest za słaby do wykonywania takiego programu i przez to "tnie"? Procesor AMD Athlon II x64 4x2.6Ghz, RAM 4GB, Dys1,5TB. Bo jeśli tak to nie mam co z tym iść na uczelnię, bo tam na pewno będzie problem...

Poniżej link do VI z moją windą:
http://chomikuj.pl/seyu/labview+winda/w ... 0563098.vi

Pozdrawiam
MicMac89
Posty: 122
Rejestracja: 05 wrz 2011 20:40
Wersja środowiska: LabVIEW 2011

Poprawa płynnosci animacji

Post autor: MicMac89 »

Komputer na pewno nie jest za słaby:) Moim zdaniem problem leży w tym, że zadajesz skokowe zmiany położenia dwóch różnych kontrolek, a przecież nie masz wpływu na to, która odświeży się wcześniej na panelu czołowym. Moje propozycje są następujące:
1. Wyeliminować skokową zmianę położenia poprzez zastosowanie funkcji rampy do zadawania zmian, wówczas te rozbieżności będą mniejsze i winda będzie jechać płynniej, aczkolwiek tego rozsunięcia się nie wyeliminuje. Współrzędne są liczbami całkowitymi dlatego nie uniknie się takiego efektu.
2. Scalić windę jako jedną kontrolkę, tak by w czasie jazdy winda przemieszczała się jako całość. W sytuacji gdy winda się zatrzymuje to podmieniasz tę kontrolkę trzema kontrolkami: kabina, drzwi lewe i drzwi prawe, tak by uzyskać móc rozsunięcie drzwi.
3. Skorzystać z Defer Panel Updates. Mam tutaj na myśli wyłączenie odświeżania panelu czołowego, zmiana współrzędnych jak w punkcie 2, włączenie odświeżania panelu czołowego. Nie próbowałem tego aczkolwiek jest to jakiś pomysł. Więcej na: http://zone.ni.com/reference/en-XX/help ... pnl_updts/
Wówczas dokonasz zmian i całość odświeży się w tym samym momencie.
4. Skorzystanie z struktury Producent/Konsument ze zdarzeniami bez względu na wszystko. W pętli producenta wykrywanie zmian położenia i przekazywanie ich do pętli konsumenta by zostało dokonane ustawienie nowych współrzędnych.
5. To akurat uwaga ogólna, jeśli możesz to zamieszczaj pliki na serwerze forum poprzez opcję "Dodaj załącznik", wówczas każdy zarejestrowany użytkownik ma do tego łatwy dostęp.

Mam nadzieję, że jakoś pomogłem.
Certified LabVIEW Associate Developer
Awatar użytkownika
smiga
Administrator
Posty: 823
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2019
Lokalizacja: Słupsk

Re: Poprawa płynnosci animacji

Post autor: smiga »

Wrzuć VI'a tu na forum (dodaj załącznik). Jakoś nie wyobrażam sobie, żeby ktoś, chcący Ci pomóc, płacił za ściągania "chomika".
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Pomogłem ... postaw kawę: https://buycoffee.to/smiga
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: Poprawa płynnosci animacji

Post autor: PiDi »

Nowa polityka na forum, smiga, teraz jak chcesz dostać pochwałę to musisz 2 zł zapłacić :D
ObrazekObrazekObrazekObrazek
Awatar użytkownika
smiga
Administrator
Posty: 823
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2019
Lokalizacja: Słupsk

Re: Poprawa płynnosci animacji

Post autor: smiga »

No to już nie chcę ... wystarczy mi tych, które już "zachomikowałem" na swoim koncie ;)
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
Pomogłem ... postaw kawę: https://buycoffee.to/smiga
ODPOWIEDZ