Zadania 2
Transkrypt
Zadania 2
Programowanie w Językach Skryptowych Zadanie 2: Visual Python Instalacja 1. Zainstaluj Pythona 2.7, jeśli jeszcze nie ma go na lokalnym komputerze (w katalogu C:\Python27) http://www.python.org/ftp/python/2.7.1/python-2.7.1.msi 2. Sprawdź, czy jest zainstalowana biblioteka Visual Python. Jeśli biblioteka jest zainstalowana, powinien być dostępny katalog z przykładowymi programami: C:\Python27\Lib\site-packages\visual\examples Jeśli biblioteki nie ma, zainstaluj ją: http://www.vpython.org/contents/download/VPython-Win-Py2.7-5.60.exe 3. Sprawdź, czy uruchamiają się przykładowe programy Przejdź do katalogu C:\Python27\Lib\site-packages\visual\examples\ i uruchom dowolny program, dwukrotnie klikając jego ikonę. Np. uruchomienie programu bounce.py powinno wyświetlić czerwoną trójwymiarową odbijającą się kulę. 4. Jeśli przykłady nie działają, należy zaktualizować sterownik karty graficznej Na komputerach w laboratorium zainstalowane są karty Radeon 9200. Pobierz i zainstaluj sterowniki z adresu: https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/6-11-pre-r300_xp2k_dd_ccc_wdm_38185.exe (można wykonać instalację „Express Installation”). Jeśli na lokalnym komputerze brakuje miejsca na przeprowadzenie instalacji, spróbuj uzyskać ok. kilkuset MB wolnej przestrzeni na dysku, np. usuwając zawartość katalogu C:\Documents and Settings\admin\Pobieranie\ 5. Sprawdź ponownie działanie przykładowych programów (punkt 3). Podstawy Napisz następujący program, importujący bibliotekę Visual oraz tworzący dwa obiekty box oraz sphere: from visual import * redbox = box(pos=vector(4,2,3), size=(8,4,6), color=color.red) ball = sphere(pos=vector(4,7,3), radius=2, color=color.green) Uruchomienie tego prostego programu powinno wyświetlić zieloną kulę oraz czerwony prostopadłościan. Wypróbuj możliwość zmiany kąta patrzenia na utworzone obiekty (prawy przycisk myszy) oraz przybliżania/oddalania (środkowy przycisk). Wypróbuj zmianę położenia, rozmiaru oraz koloru obiektów, wprowadzając zmiany w kodzie. Numeracja osi układu współrzędnych została przedstawiona na rysunku. Wypróbuj możliwość zmiany wartości atrybutów istniejących obiektów, np.: redbox.pos = (-5, 5, 5) redbox.opacity = 0.5 oraz aktualizację atrybutów obiektów w pętli (tworzenie animacji), np.: Programowanie w Językach Skryptowych while True: rate(100) redbox.pos += (0.03, 0, 0) redbox.rotate(angle=pi/100) Powyższy kod powoduje płynne przesuwanie prostopadłościanu oraz jego obracanie wokół własnej osi (wywołanie funkcji rate służy wprowadzeniu opóźnienia w wykonywaniu pętli oraz nadaniu animacji właściwej szybkości). Biblioteka Visual Python oferuje możliwość łatwego tworzenia różnych brył geometrycznych oraz manipulację ich własnościami z poziomu programu lub w wyniku interakcji z użytkownikiem. Niektóre obiekty geometryczne oferowane przez bibliotekę zostały zaprezentowane na rysunku poniżej. Dalsze informacje Zapoznaj się z następującymi materiałami: Krótkie wprowadzenia do Visual Python: http://www.vpython.org/contents/docs/visual/VisualIntro.html http://www.vpython.org/contents/docs/visual/VPython_Intro.pdf Filmy instruktażowe na Youtube: http://www.youtube.com/vpythonvideos Pełna dokumentacja Visual Python: http://vpython.org/contents/docs/visual/index.html Zwróć szczególną uwagę na następujące zagadnienia: Tworzenie brył geometrycznych różnych typów: stożki, strzałki, krzywe, punkty, tekst Zapoznaj się z atrybutami tych obiektów Interakcja z obiektami, np. przesuwanie obiektów za pomocą myszy, zmiana stanu obiektów po naciśnięciu klawisza etc. Tworzenie elementów interfejsu użytkownika (suwaki) Programowanie w Językach Skryptowych Zadanie do wykonania Za pomocą biblioteki Visual Python należy stworzyć model oraz wizualizację dowolnego rzeczywistego zjawiska fizycznego, sztucznego układu dynamicznego albo dowolną inną symulację. Przykładowa tematyka zadań projektowych: 1. Zasada zachowania pędu, np. wystrzał kuli armatniej, uwzględnienie oporu powietrza, wiatru etc. 2. Interferencja fal poprzecznych albo podłużnych 3. Ruch namagnesowanych obiektów w polu magnetycznym i grawitacyjnym 4. Wahadło odwrotne (ze sterowaniem ręcznym albo automatycznym) 5. Unikanie kolizji 6. Generowanie drzew 3D (rekurencja, L-System) 7. Automat komórkowy 8. Rysowanie losowego labiryntu, szukanie drogi wyjścia 9. Symulacja wyprzedzania pojazdów na drodze dwukierunkowej albo na skrzyżowaniu 10. Gra „Tron” 11. Stół bilardowy 12. Zadanie kinematyki odwrotnej (2D) 13. Optymalizacja funkcji dwóch zmiennych metodą heurystyczną (wizualizacja) 14. Wizualizacja działania sieci neuronowej 15. Propagacja fali akustycznej w pomieszczeniu (2D) 16. Symulacja zachowań kolektywnych (np. lot stada ptaków) Mile widziane są własne ciekawe propozycje 1. Wybór tematu oraz szczegóły realizacji muszą być skonsultowane z prowadzącym. Nie jest akceptowany wybór tematu, mającego swoją gotową realizację w przykładowych programach biblioteki Visual Python. Mile widziana jest możliwość interakcji z symulacją. Preferowane jest wykorzystanie technik programowania zorientowanego obiektowo oraz elementów programowania funkcyjnego (generatory, iteratory, wyrażenia lambda etc), oferowanych przez język Python. Galeria najciekawszych programów zostanie opublikowana na stronie laboratorium. 1 Dużo innych inspirujących zagadnień można znaleźć w książce Iwo Białynicki-Birula „Modelowanie rzeczywistości, jak w komputerze przegląda się świat”, WNT 2006