Wprowadzenie do MatLab (115)

Wprowadzenie do MatLab (115)



>> s = 'settb, ' 'Position' ', [.8*rand .9*rand .2 .1]) ' ; tworzy ciąg zawierający polecenie zmieniające położenie przycisku.

Powtórne wykonanie eva1(s)

przesunie przy cisk w przypadkowe położenie. Ostatecznie set(b,’Callback',s)

instaluje s jako działanie wywołania zwrotnego (' Callback '). Po każdym kliknięciu tego przycisku przesuwa się on w nowe położenie.

10.7. Animacje

MATLAB zapewnia kilka sposobów generowania grafiki w ruchu. Użycie własności eraseMode jest odpowiednie dla długich sekwencji prostych wykresów, w których zmiana od ramki do ramki jest minimalna. Oto przykład pokazujący symulację ruchów Browna. Zakłada się ilość punktów, jak na przykład

n = 20

i temperaturę lub prędkość jak s = .02

Najlepsze wartości tych dwóch parametrów zależą od prędkości komputera. Następnie generowane są przypadkowa punkty o współrzędnych (x,y) z przedziału od -1/2 do +1/2

x = rand(n,1)-0.5; y = rand(n,1)-0.5;

i wykreślane są punkty w kwadracie o bokach w -1 i +1. Dalej zapisuje się uchwyt wektora punktów i ustawia jego parametr EraseMode na xor, co mówi systemowi graficznemu MATLAB-a, aby nic przerysowywał całego wykresu, gdy współrzędne jednego punktu zostaną zmienione, ale zachował kolor tła w sąsiedztwie punktu za pomocą operacji „exelusive or”. h = plot(x,y,'.'); axis( [ -1 1 -1 1]) axis square grid off

set(h,'EraseMode','xor','MarkerSize',18)

Animacja jest realizowana w nieskończonej pętli while, którą można przerwać naciskając klawisze <ctrl>-+c. Za każdym razem obiegu pętli należy dodać niewielkie zaburzenie (szum o rozkładzie normalnym) do współrzędnych punktów. Następnie, zamiast tworzyć cały nowy wykres, po prostu zmieniane są własności Xdata i Ydata oryginalnego wykresu: while 1

x = x + s*randn(n,1); y = y + s*randn(n,1); set(h,'Xdata',x,'Ydata' , y)

end

117


Wyszukiwarka

Podobne podstrony:
Wprowadzenie do MatLab (106) katalogu bez przedrostka Konstruktor tworzy obiekty przez zainicjowanie
70408 Wprowadzenie do MatLab (72) Przy wykorzystaniu k jako indeksu po lewej stronie polecenia przyp
19872 Wprowadzenie do MatLab (106) katalogu bez przedrostka Konstruktor tworzy obiekty przez zainicj
10726 Wprowadzenie do MatLab (38) 3.5.2.    Instrukcja przełączania switch Instrukcja
Rozdział 1. Wprowadzenie do Matlaba 15 •    rand generuje macierz, której elementy są
11388 Wprowadzenie do MatLab (29) 3    -99    0.0001 9.6397238
12271 Wprowadzenie do MatLab (2) SPIS TREŚCI PRZEDMOWA
21647 Wprowadzenie do MatLab (108) Dla naszego próbnego wielomianu, double(p) daje taki wynik&n
22326 Wprowadzenie do MatLab (26) spowoduje utworzenie i wyświetlenie odpowiedzi systemu wektora t =
Wprowadzenie do MatLab (100) Zmienna s, wykorzystywana wewnątrz funkcji w funkcji, jak również zmien

więcej podobnych podstron