2013-04-08 4 views
7

Robię symulacji w python, który wymaga wizualizacji. Szukam najprostszej biblioteki graficznej Pythona. Czy jest coś, co pozwoli mi zrobić coś podobnego:prosta grafika dla Pythona

setWindow(10,10) 
setCube(0,0,1,1,1)#windowX, windowY, width, length, hight, 
updateList = simUpdate 
for update in updateList: 
    removeShape(0,0) 
    setCube(0,0,1,1,1) 

Czy jest coś tak prostego? 3d nie jest koniecznością, ale byłoby miło. Pracuję w Pythonie 3.3, a pigames nie został zaktualizowany do tego na Macu, o ile wiem. Pracowałem z tkinter, ale chciałbym coś łatwiejszego.

+0

Jeśli masz na myśli 'pygame', [działa on z wersją 3.x] (http://www.pygame.org/wiki/FarquitedAskedQuestions#Does%20Pygame%20work%20with%20Python%203?) I działa na komputerze Mac.(To nie pochodzi z binarnego instalatora, ale tak naprawdę, nie sądzę, żebyś chciał instalatorów binarnych.) IIRC, nie dają ci instalatorów dla 64-bitowego Pythona, lub Pythona firmy Apple, ani nawet najnowszego python.org 32-bitowy Python.) – abarnert

+0

O ile mi wiadomo, inne popularne alternatywy dla grafiki 3D to ['PyOpenGL'] (http://pyopengl.sourceforge.net) i [' pyglet'] (http: // /www.pyglet.org). Opierając się na moim nieco ograniczonym i przestarzałym doświadczeniu, ten pierwszy jest prawdopodobnie lepszy, jeśli lubisz myśleć w kategoriach GL; drugi, jeśli chcesz myśleć w kategoriach okien i widżetów i po prostu renderować do nich powierzchnie 3D. – abarnert

+0

Słyszałem o PyOpenGL, jak łatwo jest go podnieść, znowu szukam tak prostego jak to tylko możliwe, jak gra z legosem. – EasilyBaffled

Odpowiedz

8

Aby uzyskać prostą grafikę, można użyć graphics.py.

Nie jest dołączony do Pythona, więc powinieneś zapisać go jako plik Pythona (najlepiej o nazwie graphics.py), gdzie Python może go zobaczyć --- na twoim sys.path.

Jest to bardzo łatwe do nauczenia i ma różne kształty już wbudowane. Nie ma natywnej grafiki 3D (żadna tam nie jest), ale łatwo jest to zrobić: dla sześcianu narysuj jeden kwadrat i drugi na bok, i połącz jeden róg kwadratu z odpowiednim rogiem drugiego kwadratu.

Przykład wykorzystania graphics.py stworzyć Square:

from graphics import * 
win = GraphWin(width = 200, height = 200) # create a window 
win.setCoords(0, 0, 10, 10) # set the coordinates of the window; bottom left is (0, 0) and top right is (10, 10) 
mySquare = Rectangle(Point(1, 1), Point(9, 9)) # create a rectangle from (1, 1) to (9, 9) 
mySquare.draw(win) # draw it to the window 
win.getMouse() # pause before closing 
+2

Czy można go po prostu podłączyć? – EasilyBaffled

5

pygamerobiwork with 3.x oraz z Mac OS X. Nie ma żadnych binarne instalatorów dla dowolnej nowszej wersji Mac, ale to nie jest dużo strat, ponieważ binarni instalatorzy nigdy nie byli zbyt dobrzy. Zasadniczo będziesz musiał postępować zgodnie z instrukcjami instalacji systemu Unix i samemu dowiedzieć się, jak zainstalować wszystkie wymagania wstępne (jeśli używasz Homebrew to tylko brew install sdl sdl_ttf … jpeg libpng), a następnie dowiedz się, jak powiedzieć, jak znaleźć te wszystkie wymagania wstępne. Możesz spojrzeć na (lub może nawet użyć) this recipe, dostosowany do własnej instalacji Pythona.

O ile mi wiadomo, inne główne alternatywy dla grafiki 3D to PyOpenGL i pyglet. Ten pierwszy jest całkiem bezpośrednim otokiem wokół OpenGL, co jest świetne, jeśli myślisz w kategoriach GL. Ta ostatnia jest biblioteką wyższego poziomu, nieco podobną do pygame, ale zbudowaną bezpośrednio na natywnym OpenGL i rodzimych oknach na każdej platformie, zamiast na SDL.

Możesz również sprawdzić numer Python 3D Software Collection, który jest obsługiwany przez głównego autora PyOpenGL. Nie mam pojęcia, jak to jest aktualne, ale wciąż łączy się z nim z witryną i dokumentami PyOpenGL.

Jeśli szukasz czegoś matematycznie zorientowanego, możesz przyjrzeć się matplotlib, mplot3d i znajomym. Jeśli ostatecznie próbujesz wykreślić złożone kształty geometryczne i transformować/przecinać/etc. oni, to jest twój przyjaciel. Jeśli próbujesz zbudować prostą grę lub program quasi-CAD, to nie jest.

3

wizualna Python, od www.vpython.org

Zaprojektowany dla ludzi, którzy nie są OpenGL hakerów. Ma raczej zachowany model wykresu sceny, niż natychmiastowy, a niektóre wbudowane w sterowanie, a wiele przykładów symulacji naukowych/inżynierskich pojawia się w Internecie.