2013-04-08 77 views
7

我正在python中進行需要可視化的模擬。我正在尋找Python最簡單的圖形庫。有什麼可以讓我做一些事情:python的簡單圖形

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) 

有什麼簡單的嗎? 3D不是必須的,但它會很好。 我正在python 3.3中工作,並且pygames還沒有在mac上更新過,據我所知。我一直在與tkinter合作,但希望更容易一些。

+0

如果您的意思是'pygame',[它可以與3.x一起使用](http://www.pygame.org/wiki/FrequentlyAskedQuestions#Does%20Pygame%20work%20with%20Python%203?),它可以工作在Mac上。(它沒有提供二進制安裝程序,但實際上,我認爲你不需要二進制安裝程序。IIRC,它們不會爲您提供64位Python或Apple Python的安裝程序,甚至是最新的python.org 32位Python。) – abarnert 2013-04-08 18:44:07

+0

據我所知,其他常見的三維圖形替代品是['PyOpenGL'](http://pyopengl.sourceforge.net)和['pyglet'](http: /www.pyglet.org)。根據我有限和過時的經驗,如果你喜歡用GL來思考,前者可能會更好;後者如果你想用窗口和小部件來思考,只是渲染3D表面。 – abarnert 2013-04-08 18:52:25

+0

我聽說過PyOpenGL,它有多容易拾取,我又在尋找儘可能簡單的東西,比如玩樂託。 – EasilyBaffled 2013-04-08 18:59:40

回答

8

對於簡單圖形,您可以使用graphics.py

它不包含在Python中,所以您應該將它保存爲Python文件(最好命名爲graphics.py),Python可以在其中看到它---在您的sys.path上。

這是很容易學習,並已內置各種形狀。沒有原生的3D圖形(沒有任何內容),但很容易這樣做:對於一個立方體,繪製一個正方形和另一個正方形,並將正方形的一個角連接到另一個正方形的對應角落。

使用graphics.py創建一個方形例:

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

它可以只是在點子? – EasilyBaffled 2013-04-08 18:58:55

5

pygame確實work with 3.x,並與Mac OS X有任何最新的Mac版本沒有二進制安裝程序,但是這不是太大的損失,因爲二進制安裝程序從來都不是很好。你基本上必須遵循Unix的安裝指導,自己弄清楚如何安裝所有的先決條件(如果你使用Homebrew這只是brew install sdl sdl_ttf … jpeg libpng),然後找出如何告訴安裝程序如何找到所有這些先決條件。您可能希望查看(或者甚至可以使用)this recipe,以適應您自己的特定Python安裝。

據我所知,3D圖形的其他主要替代品是PyOpenGLpyglet。前者是圍繞OpenGL的一個非常直接的包裝,如果你用GL的話來說,這很好。後者是一個更高級別的庫,與pygame有些類似,但直接在每個平臺上的本機OpenGL和本機窗口上構建,而不是在SDL上構建。

你也可以看看Python 3D Software Collection,這是由主要作者PyOpenGL維護。我不知道最新情況如何,但他仍然鏈接到PyOpenGL網站和文檔。

如果你正在尋找數學導向的東西,你可能想看看matplotlibmplot3d和朋友。如果你最終試圖繪製複雜的幾何形狀和變換/相交/等。他們,這是你的朋友。如果你正在嘗試構建一個簡單的遊戲或準CAD程序,那不是。

3

視覺的Python,從www.vpython.org

專爲人們誰不OpenGL的黑客。它有一個保留的場景圖模型,而不是直接的,一些內置控件,並且在互聯網上有很多科學/工程仿真例子。