2013-04-08 96 views
7

Tôi đang tạo mô phỏng trong python cần trực quan hóa. Tôi đang tìm các python thư viện đồ họa đơn giản nhất có. Có điều gì có thể cho phép tôi làm điều gì đó dọc theo các dòng:đồ họa đơn giản cho 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) 

Có điều gì đơn giản không? 3d không phải là phải nhưng nó sẽ được tốt đẹp. Tôi đang làm việc trong python 3.3 và pygames đã không được cập nhật cho điều đó trên một mac như xa như tôi có thể nói. Tôi đã làm việc với tkinter nhưng muốn một cái gì đó dễ dàng hơn một chút.

+0

Nếu bạn có nghĩa là 'pygame', [nó hoạt động với 3.x] (http://www.pygame.org/wiki/FrequentlyAskedQuestions#Does%20Pygame%20work%20with%20Python%203?) Và nó hoạt động trên máy Mac.(Nó không đi kèm với một trình cài đặt nhị phân, nhưng thực sự, tôi không nghĩ rằng bạn muốn trình cài đặt nhị phân anyway. IIRC, họ không cung cấp cho bạn trình cài đặt cho Python 64-bit, hoặc Python của Apple, hoặc thậm chí gần đây nhất python.org 32-bit Python.) – abarnert

+0

Theo như tôi biết, các lựa chọn thay thế phổ biến khác cho đồ họa 3D là ['PyOpenGL'] (http://pyopengl.sourceforge.net) và [' pyglet'] (http://www.pyglet.org). Dựa trên kinh nghiệm hơi hạn chế và lỗi thời của tôi, trước đây có lẽ tốt hơn nếu bạn thích suy nghĩ về GL; sau này nếu bạn muốn suy nghĩ về các cửa sổ và các vật dụng và chỉ hiển thị các bề mặt 3D cho chúng. – abarnert

+0

Tôi nghe nói về PyOpenGL, dễ dàng như thế nào để nhận, một lần nữa tôi đang tìm kiếm càng đơn giản càng tốt, giống như chơi với legos. – EasilyBaffled

Trả lời

8

Đối với đồ họa đơn giản, bạn có thể sử dụng graphics.py.

Nó không được bao gồm trong Python, vì vậy bạn nên lưu nó dưới dạng tệp Python (tốt nhất là tên graphics.py) trong đó Python có thể thấy nó --- trên sys.path của bạn.

Rất dễ dàng để tìm hiểu và có nhiều hình dạng khác nhau đã được tích hợp sẵn. Không có đồ họa 3D nguyên bản (không có trong đó) nhưng dễ làm như vậy: cho một hình lập phương, vẽ một hình vuông và một hình khác sang một bên, và nối một góc của hình vuông với góc tương ứng trong ô vuông khác.

Ví dụ sử dụng graphics.py để tạo ra một hình vuông:

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

nó có thể là pip-ed không? – EasilyBaffled

5

pygamekhôngwork with 3.x, và với Mac OS X. Không có cài đặt nhị phân cho bất kỳ phiên bản mới Mac, nhưng đó không phải là nhiều của một sự mất mát, vì trình cài đặt nhị phân không bao giờ tốt lắm. Về cơ bản, bạn phải tuân theo hướng dẫn cài đặt Unix và tìm hiểu cách cài đặt tất cả các điều kiện tiên quyết (nếu bạn sử dụng Homebrew chỉ là brew install sdl sdl_ttf … jpeg libpng), hãy tìm hiểu cách thiết lập cách tìm tất cả các điều kiện tiên quyết đó. Bạn có thể muốn xem (hoặc thậm chí có thể sử dụng) this recipe, thích nghi với cài đặt Python cụ thể của riêng bạn.

Theo như tôi biết, các lựa chọn thay thế chính khác cho đồ họa 3D là PyOpenGLpyglet. Trước đây là một wrapper khá trực tiếp xung quanh OpenGL, đó là tuyệt vời nếu bạn nghĩ rằng trong GL điều khoản. Sau này là một thư viện cấp cao hơn, tương tự như pygame nhưng được xây dựng trực tiếp trên OpenGL gốc và các cửa sổ gốc trên mỗi nền tảng, thay vì trên SDL.

Bạn cũng có thể muốn xem Python 3D Software Collection, được duy trì bởi tác giả chính của PyOpenGL. Tôi không có ý tưởng làm thế nào up-to-date nó được, nhưng anh vẫn liên kết với nó từ các trang web và tài liệu PyOpenGL.

Nếu bạn đang tìm kiếm thứ gì đó theo định hướng toán học, bạn có thể muốn xem matplotlib, mplot3d và bạn bè. Nếu bạn đang cố gắng để vẽ đồ thị các hình dạng hình học phức tạp và chuyển đổi/giao nhau/vv. họ, đây là bạn của bạn. Nếu bạn đang cố gắng để xây dựng một trò chơi đơn giản hoặc chương trình bán CAD, nó không phải.

3

trực quan Python, từ www.vpython.org

Được thiết kế cho những người không phải là hacker OpenGL. Nó có một mô hình biểu đồ cảnh được giữ lại thay vì ngay lập tức, một số điều khiển được tích hợp sẵn và có khá nhiều ví dụ mô phỏng khoa học/kỹ thuật trôi nổi trên Internet.

Các vấn đề liên quan