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

Podobne dokumenty